<RT-article>
<RT-title
author="Thomas Walker Lynch"
- date="2026-03-10"
+ date="2026-06-24"
title="How to release a project">
</RT-title>
<h1>Prerequisites</h1>
<p>
- A developer works in the developer branch of the project, and makes use of the <RT-code>build</RT-code> and <RT-code>promote</RT> tools to stage release candidates into the <RT-code>$REPO_HOME/consumer</RT-code> directory. The <RT-code>tester</RT-code> then validates the release candidate. This constitutes a cycle of work, developing, promoting candidates, testing, and then further developing. Once the project manager agrees this cycle is complete, the release flow moves to the next step.
+ A developer works in the developer branch of the project, and makes use of the <RT-code>build</RT-code> and <RT-code>promote</RT-code> tools to stage release candidates into the <RT-code>$REPO_HOME/consumer</RT-code> directory. The <RT-code>tester</RT-code> then validates the release candidate. This constitutes a cycle of work, developing, promoting candidates, testing, and then further developing. Once the project manager agrees this cycle is complete, the release flow moves to the next step.
</p>
- <h1>Create the release branch</h1>
+ <h1>Make the release branch</h1>
<p>
The <RT-term>administrator</RT-term> executes the release. Open a terminal. Enter the project workspace.
</p>
Switch to the core development branch. Ensure the local repository is current.
</p>
<RT-code>
- > git checkout core_developer_branch
+ > git checkout core-developer_branch
> git pull
</RT-code>
<p>
- Create a new branch for the release. Use the major version number.
+ Make a new branch for the release. Use the major version number.
</p>
<RT-code>
> git checkout -b release_v<major>
2. Safely extracts a clean copy of all Git-tracked files using an archive stream.
3. Renames the boilerplate 0pus_Harmony anchor file to reflect the new project.
4. Injects an initial version tracking entry into the shared configuration space.
- 5. Initializes a fresh Git repository bound to the core_developer_branch.
+ 5. Initializes a fresh Git repository bound to the core-developer_branch.
6. Stages and commits the pristine skeleton infrastructure as a baseline.
7. Maps any upstream remote network targets passed via CLI parameters.
"""
return "1970-01-01"
def work(project_name: str ,remotes: list[str]) -> int:
- """Orchestrates the structural assembly of the new skeleton instance."""
+ """Orchestrates the assembly of the new skeleton instance."""
repo_home = os.environ.get("REPO_HOME")
if not repo_home:
print("Error: REPO_HOME is not set. A person must run this from within a sourced role environment." ,file=sys.stderr)
if opus_src.exists():
opus_src.rename(opus_dst)
- # Record the structural lineage in the shared version history
+ # Record the lineage in the shared version history
version_file = dest_path / "shared" / "tool" / "version"
date_str = get_Z_date()
version_line = f"echo \"{dest_path.name} v0.1 {date_str}\"\n"
# Initialize the pristine Git environment tracking system
print("Initializing git repository...")
- subprocess.run(["git" ,"init" ,"-b" ,"core_developer_branch"] ,cwd=str(dest_path) ,check=True)
+ subprocess.run(["git" ,"init" ,"-b" ,"core-developer_branch"] ,cwd=str(dest_path) ,check=True)
subprocess.run(["git" ,"add" ,"."] ,cwd=str(dest_path) ,check=True)
subprocess.run(["git" ,"commit" ,"-m" ,f"Initial commit of {dest_path.name} from Harmony skeleton"] ,cwd=str(dest_path) ,check=True)
- # Configure structural tracking addresses for upstreams
+ # Configure tracking addresses for upstreams
for idx ,remote_url in enumerate(remotes):
remote_name = f"remote_{idx}"
if "github.com" in remote_url: