Skip to content

Migrate to urfave v3 #34510

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 29 commits into from
Jun 10, 2025
Merged

Migrate to urfave v3 #34510

merged 29 commits into from
Jun 10, 2025

Conversation

TheFox0x7
Copy link
Contributor

@TheFox0x7 TheFox0x7 commented May 20, 2025

migrate cli to urfave v3

add more cli tests

@GiteaBot GiteaBot added the lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. label May 20, 2025
@github-actions github-actions bot added modifies/go Pull requests that update Go code modifies/cli PR changes something on the CLI, i.e. gitea doctor or gitea admin modifies/internal modifies/dependencies labels May 20, 2025
update copyright date and remove traceline
@wxiaoguang wxiaoguang force-pushed the migrate-to-urfave-v3 branch 2 times, most recently from 171eab9 to d4a27cb Compare June 10, 2025 02:07
@wxiaoguang
Copy link
Contributor

Made some changes by accident. Reset to your latest change by force push.

I think we need to make more changes like this, proposed a PR to your fork (or could I update this PR?)

Don't call newAuthService in init stage
@TheFox0x7
Copy link
Contributor Author

I think we need to make more changes like this, proposed a PR to your fork (or could I update this PR?)

At this stage I won't mind if you do it directly. It's more of a draft thing I guess.
I got annoyed before as I had some changes that I have not committed which I would need to merge with yours which at the time seemed like it will take me a while (it did not). Though in retrospect it's good that you did it because you accidentally stopped me from overscoping this PR into a refactor.
So thanks :)

@GiteaBot GiteaBot added lgtm/done This PR has enough approvals to get merged. There are no important open reservations anymore. and removed lgtm/need 1 This PR needs approval from one additional maintainer to be merged. labels Jun 10, 2025
@wxiaoguang
Copy link
Contributor

At this stage I won't mind if you do it directly. It's more of a draft thing I guess.

Maybe we can utilize the GitHub's "allow maintainer to edit" checkbox. If you would like to keep the PR WIP and don't want others to edit, uncheck it. When it is ready for review and accepts edits, check it. 🤔

@wxiaoguang wxiaoguang enabled auto-merge (squash) June 10, 2025 12:11
@TheFox0x7
Copy link
Contributor Author

Maybe we can utilize the GitHub's "allow maintainer to edit" checkbox. If you would like to keep the PR WIP and don't want others to edit, uncheck it. When it is ready for review and accepts edits, check it. 🤔

That... would be smart... Noted.

@wxiaoguang wxiaoguang merged commit e9f5105 into go-gitea:main Jun 10, 2025
26 checks passed
zjjhot added a commit to zjjhot/gitea that referenced this pull request Jun 11, 2025
* giteaofficial/main:
  Fix pull requests API convert panic when head repository is deleted. (go-gitea#34685)
  [skip ci] Updated translations via Crowdin
  Hide href attribute of a tag if there is no target_url (go-gitea#34556)
  Fix commit message rendering and some UI problems (go-gitea#34680)
  Migrate to urfave v3 (go-gitea#34510)
@wxiaoguang
Copy link
Contributor

Maybe a changed behavior?

./gitea any-thing

will start the web server.

Maybe it reported an error in v2? (Can't remember clearly ...)

@TheFox0x7
Copy link
Contributor Author

it complained about no help topic (No help topic for 'l'). So it's a slight regression in that area... how urgent would you say this is?
Because I'm working on the refactor for cli, but it's still early on1 so I could file a fix separately once I figure it out.

Footnotes

  1. Right now I'm starting to think you might've been correct about Required being a "meh" idea. It works nicely but I think it's designed with each command having it's own flags in mind and between having two sets of flags for commands and one common I'd rather have a common one as well. Having a function param to toggle required/not-required depending on command was a nice idea at first but it just looked wrong.
    But removing custom help and making the cli less scattered is still on the table.

@wxiaoguang
Copy link
Contributor

how urgent would you say this is?

IMO not that urgent since 1.25 is still at early stage. I could also take a look when I get some time. 🙏

DennisRasey pushed a commit to DennisRasey/forgejo that referenced this pull request Jun 17, 2025
## Checklist

- [x] go to the last cherry-pick PR (forgejo/forgejo#8040) to figure out how far it went: [gitea@d5bbaee64e](go-gitea/gitea@d5bbaee)
- [x] cherry-pick and open PR (forgejo/forgejo#8198)
- [ ] have the PR pass the CI
- end-to-end (specially important if there are actions related changes)
  - [ ] add `run-end-to-end` label
  - [ ] check the result
- [ ] write release notes
- [ ] assign reviewers
- [ ] 48h later, last call
- merge 1 hour after the last call

## Legend

- ❓ - No decision about the commit has been made.
- 🍒 - The commit has been cherry picked.
- ⏩ - The commit has been skipped.
- 💡 - The commit has been skipped, but should be ported to Forgejo.
- ✍️ - The commit has been skipped, and a port to Forgejo already exists.

## Commits

- 🍒 [`gitea`](go-gitea/gitea@17cfae8) -> [`forgejo`](https://codeberg.org/forgejo/forgejo/commit/6397da88d30de0a470dabadb8e27fbb202d75458) Hide href attribute of a tag if there is no target_url ([gitea#34556](go-gitea/gitea#34556))
- 🍒 [`gitea`](go-gitea/gitea@b408bf2) -> [`forgejo`](https://codeberg.org/forgejo/forgejo/commit/46bc899d57515fc5349e9113e92da2e4b0d93c75) Fix: skip paths check on tag push events in workflows ([gitea#34602](go-gitea/gitea#34602))
- 🍒 [`gitea`](go-gitea/gitea@9165ea8) -> [`forgejo`](https://codeberg.org/forgejo/forgejo/commit/04332f31bfd8a1c0e8676e4764d44e087f1ccc30) Only activity tab needs heatmap data loading ([gitea#34652](go-gitea/gitea#34652))
- 🍒 [`gitea`](go-gitea/gitea@3f7dbbd) -> [`forgejo`](https://codeberg.org/forgejo/forgejo/commit/2a9019fd0491684cdeab6d50a16e5cffaef5508b) Small fix in Pull Requests page ([gitea#34612](go-gitea/gitea#34612))
- 🍒 [`gitea`](go-gitea/gitea@497b83b) -> [`forgejo`](https://codeberg.org/forgejo/forgejo/commit/9a83cc7bad79fe79447bf6e3cb3144292f922ebb) Fix migration pull request title too long ([gitea#34577](go-gitea/gitea#34577))

## TODO

- 💡 [`gitea`](go-gitea/gitea@6b8b580) Refactor container and UI ([gitea#34736](go-gitea/gitea#34736))
  Packages: Fix for container, needs careful merge.
------
- 💡 [`gitea`](go-gitea/gitea@bbee652) Prevent duplicate form submissions when creating forks ([gitea#34714](go-gitea/gitea#34714))
  Fork: Fix, needs careful merge.
------
- 💡 [`gitea`](go-gitea/gitea@d21ce9f) Improve the performance when detecting the file editable ([gitea#34653](go-gitea/gitea#34653))
  LFS: Performance improvement - needs careful merge.
------
- 💡 [`gitea`](go-gitea/gitea@8fed27b) Fix various problems ([gitea#34708](go-gitea/gitea#34708))
  Various: Fixes, tests missing.
------
- 💡 [`gitea`](go-gitea/gitea@c9505a2) Improve instance wide ssh commit signing ([gitea#34341](go-gitea/gitea#34341))
  CodeSign: Nice feature - needs careful merge.
------
- 💡 [`gitea`](go-gitea/gitea@fbc3796) Fix pull requests API convert panic when head repository is deleted. ([gitea#34685](go-gitea/gitea#34685))
  Pull: Fix, needs careful merge.
------
- 💡 [`gitea`](go-gitea/gitea@1610a63) Fix commit message rendering and some UI problems ([gitea#34680](go-gitea/gitea#34680))
  Various Fixes - needs carefull merge.
------
- 💡 [`gitea`](go-gitea/gitea@0082cb5) Fix last admin check when syncing users ([gitea#34649](go-gitea/gitea#34649))
  oidc: fix "first user is always admin". Needs careful merge.
------
- 💡 [`gitea`](go-gitea/gitea@c6b2cbd) Fix footnote jump behavior on the issue page. ([gitea#34621](go-gitea/gitea#34621))
  Issues: Fix Markdown rendering. Needs carefull merge
------
- 💡 [`gitea`](go-gitea/gitea@7a59f5a) Ignore "Close" error when uploading container blob ([gitea#34620](go-gitea/gitea#34620))
  No issue, no test.
------
- 💡 [`gitea`](go-gitea/gitea@6d0b240) Keeping consistent between UI and API about combined commit status state and fix some bugs ([gitea#34562](go-gitea/gitea#34562))
  Next PR in Commit-Status story.
------
- 💡 [`gitea`](go-gitea/gitea@f604144) Refactor FindOrgOptions to use enum instead of bool, fix membership visibility ([gitea#34629](go-gitea/gitea#34629))
  Just for a common sense here: How should I consider refactorings?
------
- 💡 [`gitea`](go-gitea/gitea@cc942e2) Fix GetUsersByEmails ([gitea#34643](go-gitea/gitea#34643))
  User: Seems to fix email validation - but seems not to be finished.
------
- 💡 [`gitea`](go-gitea/gitea@7fa5a88) Add `--color-logo` for text that should match logo color ([gitea#34639](go-gitea/gitea#34639))
  UI: Nice idea - can we adapt this?
------
- 💡 [`gitea`](go-gitea/gitea@47d69b7) Validate hex colors when creating/editing labels ([gitea#34623](go-gitea/gitea#34623))
  Label: Color validation but needs careful merge.
------
- 💡 [`gitea`](go-gitea/gitea@108db0b) Fix possible pull request broken when leave the page immediately after clicking the update button ([gitea#34509](go-gitea/gitea#34509))
  Nice fix for a bug hard to trace down.
  Needs careful merge & think about whether a test is possible.
------
- 💡 [`gitea`](go-gitea/gitea@79cc369) Fix issue label delete incorrect labels webhook payload ([gitea#34575](go-gitea/gitea#34575))
  Small fix but would expect a test, showing what was fixed.
------
- 💡 [`gitea`](go-gitea/gitea@fe57ee3) fixed incorrect page navigation with up and down arrow on last item of dashboard repos ([gitea#34570](go-gitea/gitea#34570))
  Small & simple - but tests are missing.
------
- 💡 [`gitea`](go-gitea/gitea@4e47148) Remove unnecessary duplicate code ([gitea#34552](go-gitea/gitea#34552))
  Fix arround "Split GetLatestCommitStatus".
------
- 💡 [`gitea`](go-gitea/gitea@c5e78fc) Do not mutate incoming options to SearchRepositoryByName ([gitea#34553](go-gitea/gitea#34553))
  Large refactoring to simplify options handling. But needs careful merge.
------
- 💡 [`gitea`](go-gitea/gitea@f48c013) Fix/improve avatar sync from LDAP ([gitea#34573](go-gitea/gitea#34573))
  Nice fix but needs test.
------
- 💡 [`gitea`](go-gitea/gitea@e8d8984) Fix some trivial problems ([gitea#34579](go-gitea/gitea#34579))
  Various fixes, tests missing.
------

## Skipped

- ⏩ [`gitea`](go-gitea/gitea@637070e) Fix container range bug ([gitea#34725](go-gitea/gitea#34725))
------
- ⏩ [`gitea`](go-gitea/gitea@0d3e995) [skip ci] Updated translations via Crowdin
------
- ⏩ [`gitea`](go-gitea/gitea@28debdb) [skip ci] Updated translations via Crowdin
------
- ⏩ [`gitea`](go-gitea/gitea@dcc9206) Raise minimum Node.js version to 20, test on 24 ([gitea#34713](go-gitea/gitea#34713))
------
- ⏩ [`gitea`](go-gitea/gitea@bc28654) [skip ci] Updated translations via Crowdin
------
- ⏩ [`gitea`](go-gitea/gitea@65986f4) Refactor embedded assets and drop unnecessary dependencies ([gitea#34692](go-gitea/gitea#34692))
------
- ⏩ [`gitea`](go-gitea/gitea@18bafcc) Bump minimum go version to 1.24.4 ([gitea#34699](go-gitea/gitea#34699))
------
- ⏩ [`gitea`](go-gitea/gitea@8d135ef) Update JS deps ([gitea#34701](go-gitea/gitea#34701))
------
- ⏩ [`gitea`](go-gitea/gitea@d5893ee) Fix markdown wrap ([gitea#34697](go-gitea/gitea#34697))

  - gitea UI specific specific
------
- ⏩ [`gitea`](go-gitea/gitea@06ccb3a) [skip ci] Updated translations via Crowdin
------
- ⏩ [`gitea`](go-gitea/gitea@94db956) frontport changelog ([gitea#34689](go-gitea/gitea#34689))
------
- ⏩ [`gitea`](go-gitea/gitea@d5afdcc) [skip ci] Updated translations via Crowdin
------
- ⏩ [`gitea`](go-gitea/gitea@e9f5105) Migrate to urfave v3 ([gitea#34510](go-gitea/gitea#34510))
  already in Forgejo - see https://codeberg.org/forgejo/forgejo/pulls/8035
------
- ⏩ [`gitea`](go-gitea/gitea@2c341b6) [skip ci] Updated translations via Crowdin
------
- ⏩ [`gitea`](go-gitea/gitea@92e7e98) Update x/crypto package and make builtin SSH use default parameters ([gitea#34667](go-gitea/gitea#34667))
------
- ⏩ [`gitea`](go-gitea/gitea@7b39c82) Fix "oras" OCI client compatibility ([gitea#34666](go-gitea/gitea#34666))
  Already in forgejo - see https://codeberg.org/forgejo/forgejo/issues/8070
------
- ⏩ [`gitea`](go-gitea/gitea@1fe652c) [skip ci] Updated translations via Crowdin
------
- ⏩ [`gitea`](go-gitea/gitea@a9a705f) Fix missed merge commit sha and time when migrating from codecommit ([gitea#34645](go-gitea/gitea#34645))
  Migration: Seems to be an important fix, but no tests.

  As I know @earl-warren worked hard on migration, is this still relevant to us?
------
- ⏩ [`gitea`](go-gitea/gitea@1e0758a) [skip ci] Updated translations via Crowdin
------
- ⏩ [`gitea`](go-gitea/gitea@f6f6aed) Update JS deps, regenerate SVGs ([gitea#34640](go-gitea/gitea#34640))
------
- ⏩ [`gitea`](go-gitea/gitea@aa2b3b2) Misc CSS fixes ([gitea#34638](go-gitea/gitea#34638))

  - gitea UI specific specific
------
- ⏩ [`gitea`](go-gitea/gitea@b38f2d3) add codecommit to supported services in api docs ([gitea#34626](go-gitea/gitea#34626))
------
- ⏩ [`gitea`](go-gitea/gitea@74a0178) add openssh-keygen to rootless image ([gitea#34625](go-gitea/gitea#34625))
  already in Forgejo - see https://codeberg.org/forgejo/forgejo/issues/6896
------
- ⏩ [`gitea`](go-gitea/gitea@5b22af4) bump to alpine 3.22 ([gitea#34613](go-gitea/gitea#34613))
------
- ⏩ [`gitea`](go-gitea/gitea@9e0e107) Fix notification count positioning for variable-width elements ([gitea#34597](go-gitea/gitea#34597))

  - gitea UI specific specific
------
- ⏩ [`gitea`](go-gitea/gitea@e5781ce) Fix margin issue in markup paragraph rendering ([gitea#34599](go-gitea/gitea#34599))

  - gitea UI specific specific
------
- ⏩ [`gitea`](go-gitea/gitea@375dab1) Make pull request and issue history more compact ([gitea#34588](go-gitea/gitea#34588))

  - gitea UI specific specific
------
- ⏩ [`gitea`](go-gitea/gitea@2a1585b) Refactor some tests ([gitea#34580](go-gitea/gitea#34580))
------

<details>
<summary><h2>Stats</h2></summary>

<br>

Between [`gitea@d5bbaee64e`](go-gitea/gitea@d5bbaee) and [`gitea@6b8b580218`](go-gitea/gitea@6b8b580), **55** commits have been reviewed. We picked **5**, skipped **28** (of which **3** were already in Forgejo!), and decided to port **22**.

</details>

Co-authored-by: Lunny Xiao <[email protected]>
Co-authored-by: NorthRealm <[email protected]>
Co-authored-by: TheFox0x7 <[email protected]>
Co-authored-by: endo0911engineer <[email protected]>
Co-authored-by: wxiaoguang <[email protected]>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8198
Reviewed-by: Earl Warren <[email protected]>
Co-authored-by: Michael Jerger <[email protected]>
Co-committed-by: Michael Jerger <[email protected]>
@wxiaoguang
Copy link
Contributor

-> Fix incorrect cli default values and default command #34765

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
lgtm/done This PR has enough approvals to get merged. There are no important open reservations anymore. modifies/cli PR changes something on the CLI, i.e. gitea doctor or gitea admin modifies/dependencies modifies/go Pull requests that update Go code modifies/internal
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants