Skip to content

fix(release): keep .hydra out of the package - #197

Merged
rubenvdlinde merged 1 commit into
mainfrom
fix/exclude-dev-symlinks
Aug 6, 2026
Merged

fix(release): keep .hydra out of the package#197
rubenvdlinde merged 1 commit into
mainfrom
fix/exclude-dev-symlinks

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

openregister ships a symlink to an absolute path on one developer's machine in every release:

openregister/.hydra -> /home/rubenlinde/nextcloud-docker-dev/workspace/server/apps-extra/hydra

It was committed before .gitignore covered it, so ignoring it now doesn't untrack it, and rsync copies it into the tarball.

Any extractor guarding against path traversal refuses the whole archive. Nextcloud's does — installing openregister through App Versions fails with Out-of-path file extraction and nothing installs. The archive is otherwise valid, which is why tar tzf and GNU tar are perfectly happy and the problem only shows at install time.

.hydra is developer tooling with no business in a release, so it joins .claude, .cursor and .vscode in the excludes across all three release workflows.

openregister still needs the tracked symlink removed (separate PR); this stops any app shipping one by accident.

openregister ships a symlink in every release:

  openregister/.hydra -> /home/rubenlinde/nextcloud-docker-dev/workspace/
                         server/apps-extra/hydra

An absolute path on one developer's machine, committed to the repo before
.gitignore covered it, so ignoring it now does not untrack it and rsync
happily copies it into the tarball.

Any extractor that guards against path traversal then refuses the whole
archive. Nextcloud's own does: installing openregister through the App
Versions app fails with

  Out-of-path file extraction {…/openregister/.hydra --> /home/rubenlinde/…}

and nothing is installed. The archive is otherwise valid, which is why
`tar tzf` and GNU tar are perfectly happy with it and the problem only
appears at install time.

.hydra is developer tooling and has no business in a release anyway, so
it joins .claude, .cursor and .vscode in the excludes for all three
release workflows. openregister still needs the tracked symlink removed;
this stops any app shipping one by accident.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant