Repository navigation
Publish the snode list and translations to every repo that consumes them - #68
Merged
Merged
Conversation
submodules.bump clones only .gitmodules, moves the gitlink with update-index and publishes it through publish.pull_request, so the same branch rules apply: rebuilt from the base, not pushed when unchanged, retired when the base is already there.
…ywhere snode-list now asks the seed nodes itself, as session-desktop-dynamic-assets' populate_cache.ts did, and publishes the result in one run: a commit onto dynamic-assets' main, a pull request bumping Desktop's dynamic_assets submodule to it, and the iOS copy. iOS no longer gets a list up to 13 hours old. The Discord summary lists each repo's result, its links in <> so Discord shows no preview.
crowdin-sync now opens an update-localization pull request in session-desktop, session-app, session-website, session-appium and session-playwright, moving each one's submodule to the commit it just pushed to session-localization.
PUBLISHABLE in shared/github.py lists each repo's branches the jobs write, as a bot branch (force-pushed) or a direct one (fast-forward only). Repo.push checks the clone's own origin against it, ensure_pull and retire_branch check their branch, a token is minted only for listed repos, and publish_session refuses every API call publishing does not make, merging and reviewing included.
mpretty-cyro
approved these changes
Oct 6, 2026
hamzajazib
pushed a commit
to hamzajazib/session-desktop
that referenced
this pull request
Oct 6, 2026
session-ops opens the same update-dynamic-assets and update-localization pull requests right after publishing to each submodule's repo (session-foundation/session-shared-scripts#68), rather than on a separate daily schedule.
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.
After a weekday queue run, every repo that bundles the service node list or the
translations is at most one pull request away from current.
snode-list
populate_cache.ts; output checked byte-for-byte against today's file): at least 20 nodes, every field present, sorted bypubkey_ed25519.session-desktop-dynamic-assets/main, then opens or updatesupdate-dynamic-assetson session-desktop moving thedynamic_assetssubmodule to that commit, and the iOS copy as before.<>so Discord shows no preview.crowdin-sync
After pushing to session-localization, opens or updates
update-localizationmoving the submodule in:devts/localizationmainpackages/localization/src/localization-srcmainlib/app_localizationmainrun/localizer/libmaintests/localization/libBumps clone only
.gitmodulesand move the gitlink; they follow the existing bot-branch rules. Each repo is its own target, and a bump is skipped (and alerted) when the commit it would point at did not publish.Only the branches we allow
PUBLISHABLEinshared/github.pylists every branch the App may write per repo: bot branches (force-pushed) and the two directmains (fast-forward only), plus theirrehearsal/forms. Every push is checked against the clone's own origin, a token is minted only for listed repos, and the publishing API session refuses any call the jobs do not make (merge, review, settings, other repos). Tests cover each refusal; the job tests run through the guard.Before and after merging
populate_and_pr.yml,populate_cache.ts,staleness_check.yml(their Telegram notices go;session-ops-silencecovers staleness)update-dynamic-assets.yml,update-localization.ymlTesting
python -m unittest discover -s tests -t .: 748 OK; ruff clean.snode-list --dry-runon angus against the live seeds: 1163 nodes, would push dynamic-assets and open the Desktop and iOS pull requests.