Skip to content

Rename the Go module to github.com/pelican/wings - #209

Merged
parkervcp merged 1 commit into
mainfrom
chore/wings-module-path
Aug 16, 2026
Merged

Rename the Go module to github.com/pelican/wings#209
parkervcp merged 1 commit into
mainfrom
chore/wings-module-path

Conversation

@lancepioch

@lancepioch lancepioch commented Aug 14, 2026

Copy link
Copy Markdown
Member

This is safe to merge right now and doesn't have to wait on anything, because Go never looks a module path up over the network when it's the main module — go build just maps it straight to this directory — which is why CI is already green on it.

This is the module path half of #208, pulled out so it can go in on its own rather than waiting.

It renames the module to github.com/pelican/wings and updates the 236 import lines across 88 files that follow from it. The reason this can land early is that nothing outside this repo imports wings, so the imports are self-referential and Go resolves them against go.mod regardless of where the repo is actually hosted. It builds exactly the same before and after, which is also why this is a big diff but not a risky one.

The version stamping has to agree with the module path or the build quietly stops setting system.Version, so SRC_PATH in push.yaml, the -ldflags in release.yaml, the Dockerfile and the Makefile all move in the same commit. Those are all local build targets, nothing fetches over the network, so they're fine ahead of anything else.

Deliberately not in here, because these are live values rather than module paths and would actually point somewhere useless if they went in now:

  • the --repo-owner default in cmd/selfupdate.go
  • the CODEOWNERS team
  • the GHCR image in docker-compose.example.yml
  • the README, SECURITY and CHANGELOG links

Those stay in #208, which shrinks to about eight lines once this merges.

go mod tidy is clean, go build ./... and go test ./... pass, and I ran the release build command with the new ldflags to confirm version stamping still resolves. go.sum is untouched. Nothing tells people to go install this, which is the one case where the module path would need to match the repo location over the network.

Nothing outside this repo imports wings, so the imports are all
self-referential and this builds the same either way; the point is just
to have the module path match where the code lives.

The version stamping has to agree with the module path or it silently
stops working, so SRC_PATH, the release ldflags, the Dockerfile and the
Makefile move in the same commit.
@lancepioch
lancepioch requested a review from a team as a code owner August 14, 2026 03:06
@coderabbitai

coderabbitai Bot commented Aug 14, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 2d6dacab-f41f-423c-a96c-ad9dba04834d

📥 Commits

Reviewing files that changed from the base of the PR and between 364df24 and 33f2247.

📒 Files selected for processing (93)
  • .github/workflows/push.yaml
  • .github/workflows/release.yaml
  • Dockerfile
  • Makefile
  • cmd/configure.go
  • cmd/diagnostics.go
  • cmd/root.go
  • cmd/selfupdate.go
  • config/config.go
  • environment/allocations.go
  • environment/docker.go
  • environment/docker/api.go
  • environment/docker/container.go
  • environment/docker/environment.go
  • environment/docker/power.go
  • environment/docker/stats.go
  • environment/environment.go
  • environment/settings.go
  • events/events.go
  • go.mod
  • internal/cron/activity_cron.go
  • internal/cron/cron.go
  • internal/cron/sftp_cron.go
  • internal/database/database.go
  • internal/diagnostics/logs.go
  • internal/progress/progress.go
  • internal/progress/progress_test.go
  • internal/ufs/fs_platform_test.go
  • internal/ufs/fs_unix_test.go
  • loggers/cli/cli.go
  • parser/parser.go
  • remote/http.go
  • remote/servers.go
  • remote/types.go
  • router/downloader/downloader.go
  • router/middleware.go
  • router/middleware/middleware.go
  • router/middleware/request_error.go
  • router/router.go
  • router/router_download.go
  • router/router_server.go
  • router/router_server_backup.go
  • router/router_server_backup_test.go
  • router/router_server_files.go
  • router/router_server_files_search.go
  • router/router_server_transfer.go
  • router/router_server_ws.go
  • router/router_system.go
  • router/router_transfer.go
  • router/tokens/parser.go
  • router/websocket/listeners.go
  • router/websocket/websocket.go
  • server/activity.go
  • server/backup.go
  • server/backup/backup.go
  • server/backup/backup_local.go
  • server/backup/backup_s3.go
  • server/backup/backup_test.go
  • server/config_parser.go
  • server/configuration.go
  • server/connections.go
  • server/console.go
  • server/crash.go
  • server/events.go
  • server/filesystem/archive.go
  • server/filesystem/compress.go
  • server/filesystem/disk_space.go
  • server/filesystem/errors.go
  • server/filesystem/filesystem.go
  • server/filesystem/filesystem_test.go
  • server/filesystem/path_test.go
  • server/filesystem/quota_file.go
  • server/filesystem/quotas/exfs.go
  • server/filesystem/quotas/functions.go
  • server/filesystem/stat.go
  • server/install.go
  • server/installer/installer.go
  • server/listeners.go
  • server/manager.go
  • server/mounts.go
  • server/power.go
  • server/power_test.go
  • server/resources.go
  • server/server.go
  • server/transfer/archive.go
  • server/transfer/source.go
  • server/transfer/transfer.go
  • server/update.go
  • sftp/event.go
  • sftp/handler.go
  • sftp/handler_test.go
  • sftp/server.go
  • wings.go
📜 Recent review details
⏰ Context from checks skipped due to timeout. (5)
  • GitHub Check: Build and Test (ubuntu-22.04, 1.26.5, linux, amd64)
  • GitHub Check: Analyze (go)
  • GitHub Check: Test macOS (1.26.5)
  • GitHub Check: Build and Test (ubuntu-22.04, 1.25.12, linux, amd64)
  • GitHub Check: Test macOS (1.25.12)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2026-03-02T13:53:08.995Z
Learnt from: parkervcp
Repo: pelican-dev/wings PR: 171
File: server/power.go:190-203
Timestamp: 2026-03-02T13:53:08.995Z
Learning: In the server package, when quotas are enabled via config.Get().System.Quotas.Enabled, the disk space check using used >= s.DiskSpace() does not require a special guard for unlimited-disk scenarios (DiskSpace() <= 0). The filesystem handles such cases, so the existing check is sufficient. Apply this pattern to similar quota-related disk checks in the server package and ensure tests/docs reflect that unlimited-disk behavior is governed by the filesystem, not by an extra guard in code.

Applied to files:

  • server/backup/backup_test.go
  • server/resources.go
  • server/power_test.go
  • server/filesystem/errors.go
  • server/installer/installer.go
  • server/update.go
  • server/events.go
  • server/transfer/archive.go
  • server/configuration.go
  • server/filesystem/archive.go
  • server/filesystem/quota_file.go
  • server/connections.go
  • server/console.go
  • server/install.go
  • server/filesystem/quotas/functions.go
  • server/filesystem/disk_space.go
  • server/filesystem/quotas/exfs.go
  • server/listeners.go
  • server/filesystem/path_test.go
  • server/config_parser.go
  • server/mounts.go
  • server/filesystem/filesystem.go
  • server/backup.go
  • server/power.go
  • server/backup/backup_s3.go
  • server/server.go
  • server/backup/backup_local.go
  • server/manager.go
  • server/activity.go
  • server/crash.go
  • server/backup/backup.go
  • server/transfer/transfer.go
  • server/filesystem/compress.go
  • server/filesystem/filesystem_test.go
  • server/filesystem/stat.go
  • server/transfer/source.go
🔇 Additional comments (93)
go.mod (1)

1-1: LGTM!

.github/workflows/push.yaml (1)

45-45: LGTM!

Also applies to: 107-107

.github/workflows/release.yaml (1)

30-32: LGTM!

Dockerfile (1)

11-11: LGTM!

Makefile (1)

11-17: LGTM!

internal/cron/sftp_cron.go (1)

10-13: LGTM!

internal/database/database.go (1)

12-14: LGTM!

server/filesystem/quota_file.go (1)

8-8: LGTM!

server/filesystem/stat.go (1)

11-11: LGTM!

server/power_test.go (1)

8-8: LGTM!

sftp/event.go (1)

7-8: LGTM!

cmd/configure.go (1)

16-16: LGTM!

config/config.go (1)

27-27: LGTM!

environment/allocations.go (1)

9-9: LGTM!

environment/docker.go (1)

14-14: LGTM!

environment/docker/api.go (1)

19-19: LGTM!

environment/docker/container.go (1)

22-24: LGTM!

environment/docker/power.go (1)

14-15: LGTM!

environment/docker/stats.go (1)

14-14: LGTM!

internal/diagnostics/logs.go (1)

17-19: LGTM!

parser/parser.go (1)

23-24: LGTM!

router/tokens/parser.go (1)

8-8: LGTM!

server/manager.go (1)

17-22: LGTM!

cmd/diagnostics.go (1)

17-18: LGTM!

cmd/root.go (1)

25-40: LGTM!

internal/cron/activity_cron.go (1)

9-12: LGTM!

loggers/cli/cli.go (1)

93-101: LGTM!

server/config_parser.go (1)

11-11: LGTM!

server/filesystem/errors.go (1)

10-10: LGTM!

server/filesystem/path_test.go (1)

12-12: LGTM!

server/filesystem/quotas/exfs.go (1)

15-15: LGTM!

server/filesystem/quotas/functions.go (1)

13-13: LGTM!

server/install.go (1)

25-28: LGTM!

server/power.go (1)

11-13: LGTM!

server/resources.go (1)

8-11: LGTM!

cmd/selfupdate.go (1)

15-15: LGTM!

remote/servers.go (1)

9-9: LGTM!

router/middleware.go (1)

6-7: LGTM!

router/middleware/middleware.go (1)

15-18: LGTM!

router/middleware/request_error.go (1)

13-14: LGTM!

router/router_download.go (1)

13-15: LGTM!

router/router_server_backup.go (1)

20-23: LGTM!

router/router_server_transfer.go (1)

12-16: LGTM!

router/router_server_ws.go (1)

12-14: LGTM!

router/router_system.go (1)

14-20: LGTM!

router/router_transfer.go (1)

21-26: LGTM!

wings.go (1)

7-7: LGTM!

environment/docker/environment.go (1)

14-17: LGTM!

environment/environment.go (1)

7-7: LGTM!

environment/settings.go (1)

13-13: LGTM!

events/events.go (1)

9-9: LGTM!

server/connections.go (1)

4-4: LGTM!

server/events.go (1)

4-5: LGTM!

server/filesystem/compress.go (1)

19-20: LGTM!

server/filesystem/disk_space.go (1)

15-15: LGTM!

server/listeners.go (1)

13-17: LGTM!

server/mounts.go (1)

10-11: LGTM!

server/server.go (1)

20-27: LGTM!

internal/cron/cron.go (1)

11-13: LGTM!

router/router.go (1)

9-12: LGTM!

router/router_server_backup_test.go (1)

16-21: LGTM!

router/websocket/listeners.go (1)

11-14: LGTM!

router/websocket/websocket.go (1)

19-26: LGTM!

server/activity.go (1)

9-10: LGTM!

server/filesystem/filesystem.go (1)

20-21: LGTM!

server/filesystem/filesystem_test.go (1)

16-18: LGTM!

server/installer/installer.go (1)

8-9: LGTM!

server/transfer/transfer.go (1)

10-11: LGTM!

sftp/handler_test.go (1)

10-10: LGTM!

sftp/server.go (1)

22-24: LGTM!

internal/progress/progress.go (1)

8-8: LGTM!

internal/progress/progress_test.go (1)

9-9: LGTM!

internal/ufs/fs_platform_test.go (1)

12-12: LGTM!

internal/ufs/fs_unix_test.go (1)

18-18: LGTM!

remote/http.go (1)

13-20: LGTM!

remote/types.go (1)

11-11: LGTM!

router/downloader/downloader.go (1)

20-21: LGTM!

router/router_server.go (1)

14-21: LGTM!

server/transfer/archive.go (1)

15-17: LGTM!

server/transfer/source.go (1)

14-14: LGTM!

server/update.go (1)

6-8: LGTM!

router/router_server_files.go (1)

21-28: LGTM!

router/router_server_files_search.go (1)

10-14: LGTM!

server/backup.go (1)

13-15: LGTM!

server/backup/backup.go (1)

19-21: LGTM!

server/backup/backup_local.go (1)

13-15: LGTM!

server/backup/backup_s3.go (1)

18-20: LGTM!

server/backup/backup_test.go (1)

11-12: LGTM!

server/configuration.go (1)

7-7: LGTM!

server/console.go (1)

10-11: LGTM!

server/crash.go (1)

12-14: LGTM!

server/filesystem/archive.go (1)

19-21: LGTM!

sftp/handler.go (1)

15-17: LGTM!


📝 Walkthrough

Walkthrough

The PR changes the Go module path from github.com/pelican-dev/wings to github.com/pelican/wings. It updates source imports, tests, diagnostics examples, and build linker paths to match.

Changes

Module Path Migration

Layer / File(s) Summary
Module declaration and build paths
.github/workflows/*, Dockerfile, Makefile, go.mod
The module identifier and build-time version linker paths now use github.com/pelican/wings.
Application package imports
cmd/*, config/*, environment/*, events/*, internal/*, parser/*, remote/*, router/*, loggers/cli/*, wings.go
Application imports and example stacktrace paths now use the new module path.
Server and storage package imports
server/*, sftp/*
Server, backup, filesystem, transfer, installer, SFTP, and test imports now use the new module path.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to 33f22

This change renames the Go module and updates its self-referential imports and local build metadata without changing runtime behavior; the stated build, test, dependency, and release-stamping checks pass, so no actionable merge-blocking risk remains.

Poem

I hop through imports, neat and bright,
From old paths into new moonlight.
Build flags follow, tests agree,
pelican/wings now grows free.
No logic changed beneath the spring.
— A pleased rabbit 🐇

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the primary change: renaming the Go module to github.com/pelican/wings.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/wings-module-path

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@parkervcp
parkervcp merged commit 5bd4d7e into main Aug 16, 2026
9 checks passed
engels74 added a commit to engels74/wings-vpn that referenced this pull request Aug 18, 2026
## Upstream sync: `upstream/main@090841d`

| Field | Value |
| --- | --- |
| Commits merged | 2 |
| Files changed | 98 (+254 / -254) |
| Conflicts | 1 (1 auto-resolved, 0 manual) |
| Status | Ready for review |

### Summary

This sync brings in two upstream commits that finish the wings
organization rename, including the Go module path change to
github.com/pelican/wings. It touches 98 files with 254 insertions and
254 deletions, and one conflicted file was resolved automatically.

### Conflict resolution

| File | Type | Resolution |
| --- | --- | --- |
| `README.md` | both modified | Combined fork title and documentation
with upstream's updated GitHub Issues URL. |

<details>
<summary>Per-file detail</summary>

**`README.md`** — both modified
- Upstream: Upstream updated the GitHub Issues link from
github.com/pelican-dev/wings to github.com/pelican/wings.
- Fork: The fork changed the README title to include a wings-vpn fork
label and added an About this fork section documenting container network
mode.
- Resolution: Combined fork title and documentation with upstream's
updated GitHub Issues URL.

</details>

<details>
<summary>Merged commits (2)</summary>

- `090841d` Finish the wings org rename (the part pelican#208 missed) (pelican#212)
- `5bd4d7e` Rename the Go module to github.com/pelican/wings (pelican#209)

</details>

<details>
<summary>Changed files (98)</summary>

````
 .github/CODEOWNERS                    |  2 +-
 .github/workflows/push.yaml           |  4 ++--
 .github/workflows/release.yaml        |  4 ++--
 CHANGELOG.md                          |  4 ++--
 Dockerfile                            |  2 +-
 Makefile                              |  4 ++--
 README.md                             |  2 +-
 SECURITY.md                           |  4 ++--
 cmd/configure.go                      |  2 +-
 cmd/diagnostics.go                    |  4 ++--
 cmd/root.go                           | 22 +++++++++++-----------
 cmd/selfupdate.go                     |  4 ++--
 config/config.go                      |  2 +-
 docker-compose.example.yml            |  2 +-
 environment/allocations.go            |  2 +-
 environment/docker.go                 |  2 +-
 environment/docker/api.go             |  2 +-
 environment/docker/container.go       |  6 +++---
 environment/docker/environment.go     |  8 ++++----
 environment/docker/power.go           |  4 ++--
 environment/docker/stats.go           |  2 +-
 environment/environment.go            |  2 +-
 environment/settings.go               |  2 +-
 events/events.go                      |  2 +-
 go.mod                                |  2 +-
 internal/cron/activity_cron.go        |  8 ++++----
 internal/cron/cron.go                 |  6 +++---
 internal/cron/sftp_cron.go            |  8 ++++----
 internal/database/database.go         |  6 +++---
 internal/diagnostics/logs.go          |  6 +++---
 internal/progress/progress.go         |  2 +-
 internal/progress/progress_test.go    |  2 +-
 internal/ufs/fs_platform_test.go      |  2 +-
 internal/ufs/fs_unix_test.go          |  2 +-
 loggers/cli/cli.go                    |  8 ++++----
 parser/parser.go                      |  4 ++--
 remote/http.go                        |  4 ++--
 remote/servers.go                     |  2 +-
 remote/types.go                       |  2 +-
 router/downloader/downloader.go       |  4 ++--
 router/middleware.go                  |  4 ++--
 router/middleware/middleware.go       |  8 ++++----
 router/middleware/request_error.go    |  4 ++--
 router/router.go                      |  8 ++++----
 router/router_download.go             |  6 +++---
 router/router_server.go               | 16 ++++++++--------
 router/router_server_backup.go        |  8 ++++----
 router/router_server_backup_test.go   | 12 ++++++------
 router/router_server_files.go         | 16 ++++++++--------
 router/router_server_files_search.go  | 10 +++++-----
 router/router_server_transfer.go      | 10 +++++-----
 router/router_server_ws.go            |  6 +++---
 router/router_system.go               | 14 +++++++-------
 router/router_transfer.go             | 12 ++++++------
 router/tokens/parser.go               |  2 +-
 router/websocket/listeners.go         |  6 +++---
 router/websocket/websocket.go         | 16 ++++++++--------
 server/activity.go                    |  4 ++--
 server/backup.go                      |  6 +++---
 server/backup/backup.go               |  6 +++---
 server/backup/backup_local.go         |  6 +++---
 server/backup/backup_s3.go            |  6 +++---
 server/backup/backup_test.go          |  4 ++--
 server/config_parser.go               |  2 +-
 server/configuration.go               |  2 +-
 server/connections.go                 |  2 +-
 server/console.go                     |  4 ++--
 server/crash.go                       |  6 +++---
 server/events.go                      |  4 ++--
 server/filesystem/archive.go          |  6 +++---
 server/filesystem/compress.go         |  4 ++--
 server/filesystem/disk_space.go       |  2 +-
 server/filesystem/errors.go           |  2 +-
 server/filesystem/filesystem.go       |  4 ++--
 server/filesystem/filesystem_test.go  |  4 ++--
 server/filesystem/path_test.go        |  2 +-
 server/filesystem/quota_file.go       |  2 +-
 server/filesystem/quotas/exfs.go      |  2 +-
 server/filesystem/quotas/functions.go |  2 +-
 server/filesystem/stat.go             |  2 +-
 server/install.go                     |  8 ++++----
 server/installer/installer.go         |  4 ++--
 server/listeners.go                   |  8 ++++----
 server/manager.go                     | 12 ++++++------
 server/mounts.go                      |  4 ++--
 server/power.go                       |  6 +++---
 server/power_test.go                  |  2 +-
 server/resources.go                   |  8 ++++----
 server/server.go                      | 16 ++++++++--------
 server/transfer/archive.go            |  6 +++---
 server/transfer/source.go             |  2 +-
 server/transfer/transfer.go           |  4 ++--
 server/update.go                      |  4 ++--
 sftp/event.go                         |  4 ++--
 sftp/handler.go                       |  6 +++---
 sftp/handler_test.go                  |  2 +-
 sftp/server.go                        |  6 +++---
 wings.go                              |  2 +-
 98 files changed, 254 insertions(+), 254 deletions(-)
````

</details>

### Review checklist

- [ ] Conflict resolutions preserve fork-specific behaviour
- [ ] `make build` and `make test` pass

<!-- greptile_comment -->

<details><summary><h3>Greptile Summary</h3></summary>

This PR completes the upstream Pelican organization and Go module rename
while preserving the fork-specific README content.
- Renames the module and internal imports from
`github.com/pelican-dev/wings` to `github.com/pelican/wings`.
- Updates build workflows, linker paths, release links, image
references, and self-update defaults to the new organization.
- Keeps the fork issue tracker and container-network-mode documentation
in `README.md`.
</details>

<details><summary><h3>Confidence Score: 5/5</h3></summary>

The PR appears safe to merge, with no changed-code-triggered defects
identified.

The module declaration, source imports, build targets, linker flags,
release configuration, and organization references are consistently
renamed, while the fork-specific README resolution is preserved.
</details>

<details><summary><h3>Important Files Changed</h3></summary>

| Filename | Overview |
|----------|----------|
| go.mod | Renames the Go module to `github.com/pelican/wings`,
consistently matching the updated imports and build configuration. |
| cmd/selfupdate.go | Updates the default upstream release owner to
`pelican`; artifact naming remains aligned with the release workflow. |
| .github/workflows/push.yaml | Updates build package and linker-symbol
paths to the renamed Go module. |
| .github/workflows/release.yaml | Updates release build and version
linker paths while retaining the existing Linux artifact contract. |
| Dockerfile | Updates the version linker target to the renamed module
path. |
| docker-compose.example.yml | Updates the existing upstream container
image reference to the renamed Pelican organization. |
| README.md | Preserves fork-specific documentation and adds the renamed
upstream issue tracker. |

</details>

<sub>Reviews (1): Last reviewed commit: ["sync
upstream/main"](098a3c1)
| [Re-trigger
Greptile](https://app.greptile.com/api/retrigger?id=53900332)</sub>

<!-- /greptile_comment -->
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.

2 participants