The supplied project is prepared for RidaCode/cpp-tree, branch main. No remote
repository or release is created just by extracting these files. If you choose a
different owner/name, update the repository URLs in README.md, pyproject.toml,
and the default in install.sh before publishing.
- Review the MIT license and copyright line in
LICENSE, the third-party attribution inNOTICE.md, and the project's conduct and security policies. - Run the checks below. Inspect the files you are about to stage; no progress, personal notes, credentials, or temporary development files belong in the repo.
- Create an empty public GitHub repository named
cpp-tree, without initializing a second README, license, or.gitignore. - Commit and push the project. From this extracted project folder, using an installed/authenticated GitHub CLI, the commands are:
git init -b main
git add .
git commit -m "Prepare C++ Talent Tree for open-source use"
gh repo create RidaCode/cpp-tree --public --source=. --remote=origin --pushAlternatively create the empty repository on GitHub, then add its remote and push:
git remote add origin https://github.com/RidaCode/cpp-tree.git
git push -u origin mainThe public installation URL becomes usable only after main/install.sh and the
source files exist in that repository. Test the exact README command in a temporary
account/directory after the first push; local archive tests do not prove public
hosting or network downloads work.
Before announcing the project:
- Enable private vulnerability reporting under repository security settings. Confirm that Security → Report a vulnerability is visible.
- Check that the conduct-reporting route in
CODE_OF_CONDUCT.mdis available; add a private project contact later if you want a direct maintainer reporting channel. - Let the
CIworkflow finish on Linux and macOS. Add a branch rule requiring its checks before merging; use the actual check names shown by GitHub. - Set the description to “An offline, Vim-friendly talent tree for tracking your
LearnCpp progress.” Suggested topics:
cpp,learncpp,terminal,tui,python,learning,vim.
Do not imply a support SLA you cannot maintain. Use issues for ordinary support, keep decisions public where appropriate, and credit contributors.
python3 -m unittest discover -s tests -v
ruff check .
ruff format --check .
python3 scripts/build.py
python3 dist/cpp-tree.pyz --demo --summaryInstall the optional linter with the setup in CONTRIBUTING.md. For changes to
packaging, also build a wheel (python3 -m pip wheel --no-deps . -w dist) and test
it in an empty virtual environment. Source-checkout imports must not mask missing
package resources.
- Keep
cpp_tree/__init__.pyas the version source. Update it and the changelog. - Run all checks and wait for required GitHub checks to pass.
- Tag the tested commit, for example
v1.2.0, and push that tag. - Run the Build release artifacts workflow on that tag. Download the artifact,
inspect it, and create a GitHub release attaching
cpp-tree.pyzandSHA256SUMS. This workflow only builds artifacts; it does not publish a release automatically. - In release notes, state any changes to saves, dependencies, installer behavior, or the outline. Verify the public install/update/uninstall path again.
The README install command tracks main. To install a particular published tag,
fetch install.sh from that same tag and set CPP_TREE_REF to it. For forks, set
CPP_TREE_REPO to the chosen owner/repository as well.
The launch structure follows Starting an Open Source Project and Best Practices for Maintainers: explain what the project does, document setup and contributions, choose a license, state behavioral expectations, and make routine checks repeatable.