Repository navigation
feat(build)!: build into the local registry, publish with --publish-to - #671
Merged
Merged
Conversation
This was referenced Nov 4, 2026
karhu
force-pushed
the
tnet-157/18-build-publish
branch
2 times, most recently
from
November 5, 2026 07:27
58998a5 to
d4951ad
Compare
karhu
force-pushed
the
tnet-157/18-build-publish
branch
from
November 5, 2026 08:16
d4951ad to
a72348c
Compare
karhu
force-pushed
the
tnet-157/18-build-publish
branch
from
November 5, 2026 10:57
a72348c to
f3e549b
Compare
TimoStoff
approved these changes
Nov 7, 2026
TimoStoff
left a comment
Contributor
There was a problem hiding this comment.
OK ....thats it for today I think 😓
karhu
force-pushed
the
tnet-157/18-build-publish
branch
from
November 7, 2026 17:40
0e6ea4e to
8e1c0a6
Compare
karhu
force-pushed
the
tnet-157/18-build-publish
branch
from
November 7, 2026 20:26
8e1c0a6 to
ce3ea14
Compare
karhu
force-pushed
the
tnet-157/18-build-publish
branch
from
November 7, 2026 22:40
ce3ea14 to
57e94d9
Compare
karhu
force-pushed
the
tnet-157/18-build-publish
branch
from
November 9, 2026 13:56
57e94d9 to
042ad49
Compare
karhu
force-pushed
the
tnet-157/18-build-publish
branch
from
November 9, 2026 16:18
042ad49 to
0293b99
Compare
karhu
force-pushed
the
tnet-157/18-build-publish
branch
from
November 10, 2026 14:39
0293b99 to
e204350
Compare
karhu
force-pushed
the
tnet-157/18-build-publish
branch
from
November 10, 2026 15:50
e204350 to
deb03f9
Compare
karhu
force-pushed
the
tnet-157/18-build-publish
branch
from
November 10, 2026 16:24
deb03f9 to
efe5771
Compare
There was a problem hiding this comment.
Code review found no new issues
No new issues were found in this update; 1 finding from earlier reviews is still open above.
1 optional suggestion (a nit or a note on pre-existing code) was found and not posted.
Still open from earlier reviews (1):
- 🔴
packages/timenet-connectors/src/timenet_connectors/builder/cli.py:131—Publishing a child dataset to a private registry that already holds its parent can now rebuild that parent locally. The…
If you have decided not to act on one of these findings, resolve its thread (a reply alone leaves it open) and the next review stops counting it. To review this commit again now, use Re-run on its "Claude Code Review" check.
timenet-build build had its own flags for where a build lands and where its parents come from: --out, --fetch-from and --build-parents. The other entry points take the default list of sources instead, so the same build could need other inputs on the command line than in Python. The build now always lands in the local registry. Missing parents and payload sources come from the default list: the remote registry, then the installed connectors. --local-registry, --remote-registry and --auto-build/--no-auto-build set that list for one command. --publish-to URL|PATH publishes the release after the build with timenet.publish(), which gets the exact release and so reads no manifest to find it. The destination is not a source of parents. An empty --publish-to is an error, not the current directory. The command shows its plan on stderr before the first step, as a tree. --dry-run prints the tree to stdout and stops. It copies, builds and publishes nothing. --quiet hides the plan. The command plans with the same internal planner and the same whole list of sources as timenet.build(), so the dry run shows the plan that a run runs. The hints and the tests name the new flags. BREAKING CHANGE: timenet-build build drops --out, --fetch-from and --build-parents. The build lands in the local registry, and missing parents come from the default list. --publish-to publishes the release afterwards. --force with a --publish-to that holds the version rebuilds into the local registry, and the publish refuses other files. Part of TNET-157.
Shorter docstrings for the code that this change adds or changes. Part of TNET-157.
Drop tests that cannot fail or repeat other tests, and sharpen the rest. Part of TNET-157.
karhu
force-pushed
the
tnet-157/18-build-publish
branch
from
November 10, 2026 17:41
efe5771 to
f17c8ae
Compare
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.
The Stack
This stack covers refactoring the internal logic of how releases are resolved during read, download & build, in particular also in the context of parent releases / parent datasets. On top of that it refactors the public TimeNet APIs and CLI interfaces around these actions, to streamline the behavior across them.
This PR
timenet-build buildalways builds into the store, takes its parents from the default list of sources, and publishes with--publish-to. It prints its plan first and stops after the plan with--dry-run.Details
timenet-build buildhad its own flags for where a build lands and where its parents come from:--out,--fetch-fromand--build-parents. The other entry points take the default list of sources instead. So the same build needs other inputs on the command line than in Python.--local-registry,--remote-registryand--auto-build/--no-auto-buildset that list for one command. The connector of the requested dataset builds it also with--no-auto-build.--publish-to URLpublishes the release after the build withtimenet.publish(), and the command prints the version.plan_release_build()of the coordinator, runs the plan, and prints the release directory.--quiethides the plan.--dry-runprints the tree to stdout and stops. It copies, builds and publishes nothing, and it makes no store directory.timenet downloador a forced rebuild. If the command got--local-registryor--remote-registry, the hint repeats them.--dry-runshare one code path in the command, so they read best together.Design decisions
--dry-runprints the exact plan and copies, builds and publishes nothing.--publish-to. A registry reads the settings when it opens. Otherwise an invalid variable shows as an invalid value of--publish-to.--force, the release builds again in the store only, and the publish copies nothing for the same release. The publish refuses other files or another card.--publish-to, or one that names no registry, raisesTimeNetRegistryErrorbefore any build. It never means the current directory.Breaking changes
timenet-build builddrops--out,--fetch-fromand--build-parents.--publish-tois no source of parents.--forcewith a--publish-tothat holds the version rebuilds into the store, and the publish refuses other files.Stack
Changes later in the stack:
Merge message