Repository navigation
feat!: release 2.0, because upgrading from 1.x now needs a step - #652
Merged
Merged
Conversation
…and proxied copies Adds the What's new in 2.0 page with an upgrade and rollback section, a 2.0 block in the README and the docs home, a 2.0 entry in UPGRADING.md, and moves the CasaOS and Runtipi packages to 2.0.0.
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 50 seconds. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #652 +/- ##
=======================================
Coverage 93.96% 93.97%
=======================================
Files 74 74
Lines 15687 15687
=======================================
+ Hits 14741 14742 +1
+ Misses 946 945 -1 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Over the last two weeks, releases 1.62 to 1.73 changed what the worker can do on a host, how far an earner can reach into the LAN, and how many IPs one box can earn on. Several of them need a step from the person upgrading: a new compose file, a one-shot volume migration, or a button press to turn on the fence. Nothing in the version number says so. Moving the compose pins from 1.73 to 2.0 makes that explicit, and the docs now explain the whole set in one place.
What this PR does
docs/whats-new-2.0.md, a new page in the nav under Get started: why to upgrade (what each older version leaves open), security (socket proxy, owner isolation, LAN fence, gVisor, identity backups), proxied copies and their limits, the other highlights since 1.62, the Desktop 1.0 and Android 1.0 companion apps, and a step-by-step upgrade: backups, the compose file, what the one-shot migrator does and how long it takes, what you see when it is done, what works differently afterwards, and rollback. It is written to be true for main plus the batch of fixes that cuts v2.0.0 (fix(proxies): retry a copy the cap reset could not start, so an offline box does not keep it stopped #630 fix(proxies): keep the running copy when a redeploy's tunnel cannot start #632-fix(migrate): keep confirmed identity backups confirmed through the owner migration #643 fix(migrate): keep pre-worker earners visible to the worker after the owner migration #646 fix(update): stop sending deployer-run stacks to a compose path that is not on the host #648 fix(proxies): let tunnels on the isolated bridge resolve names like the earners beside them #649 docs(faq): stop telling readers their earners can reach the LAN by default #650), so it mentions the Podman, update-helper, backup-confirmation and proxy-cap fixes from that batch. Each claim links to the page that covers it. The service counts on the page come from the catalog: the file is added toCOUNTED_FILESinscripts/generate_readme_tables.py.versionand release notes, Runtipiversion,tipi_version3 to 4,updated_at). Those tags only exist once the release is built, so the packages point at a missing image for the few minutes between this merge and the images being pushed.Desktop needs no follow-up: nothing under
services/, the deploy route or the guides changes.How 2.0 gets cut
release.ymlbumps the major version on atype!:subject or aBREAKING CHANGE:footer anywhere in the commits since the last tag. It only runs on pushes that touchapp/,services/,Dockerfile*,entrypoint.sh,tunnel/,pyproject.tomloruv.lock, and this PR touches none of those. So merging it alone cuts no release. The next push that touches one of those paths cuts v2.0.0, and then opens the pin PR that moves the compose files to2.0.Checks run
scripts/generate_readme_tables.py --check: up to date. Positive control: a wrong count in the new page made it fail with "Out of date with the catalog: docs/whats-new-2.0.md".pytest tests/test_app_store_templates.py tests/test_readme_generation.py tests/test_docs_*.py: 312 passed, 8 skipped.python -m zensical build --clean --strictwithzensical==0.1.0: no issues.site-check.py site: 87 pages, 0 errors. Negative control: a broken page link and a broken anchor added to the new page made the strict build abort.Release body for v2.0.0
The release step uses
generate_release_notes: true, which only lists PRs. After v2.0.0 is cut, replace its body with this:Docker Hub
.github/workflows/dockerhub-description.ymlalready syncs README.md to bothdrumsergio/cashpilotanddrumsergio/cashpilot-workeron every push to main that touches it. This merge triggers that sync, so there is nothing to do by hand. After the merge I check that the run passed and that the Hub page shows the "New in 2.0" block.BREAKING CHANGE: 2.0 moves the compose pins from 1.73 to 2.0, so
docker compose pulland the in-app Update button stay on 1.x until you take the new compose file or change the image tags to 2.0. 2.0 uses the same database as 1.73. Coming from before 1.73, the upgrade runs the one-shotcashpilot-migrate, which copies the worker's volumes onto labelled ones (cashpilot_worker_data_owned,cashpilot_fleet_owned, each earner volume backed up as<volume>-pre-isolation) and deletes nothing. After it, the in-app update no longer updates the dashboard on a host it shares with a worker, and earners started by hand no longer show in the dashboard. Coming from a worker that mounts the Docker socket, the new compose file adds the socket proxy, and the proxy refuses to recreate a CashPilot service with a GPU.