Commit graph

692 commits

Author SHA1 Message Date
iQ
2aa73a8fad refactored for lazy evaluation of MIGRATION_PACKAGES and GO_TEST_PACKAGES (#9208)
solves: 9204

## About the PR

In the original Makefile, the variables `GO_TEST_PACKAGES` and `MIGRATION_PACKAGES` have been evaluated always and for every target. See issue 9204

This Change moves the evaluation of these Variables into a dedicated new make-target. This target then is added as dependency only to the other targets, that require/access these variables at all, so targets that don't require the variables don't do an evaluation of them.

### Note on the new Makefile Dependencies

I'm using Order-Only Prerequisites in the `Makefile`because, its good habit to only impose the least  force necessary. As we're only going for `.PHONY` targets here,
See: https://www.gnu.org/software/make/manual/make.html#Prerequisite-Types
- We need to ensure that the variable computation targets (compute-go-test-packages, compute-migration-packages) run before the targets that use those variables. This is purely about execution ordering - we need the variables to be defined before they're used.
- We don't need the timestamp-based rebuild logic that comes with normal dependencies. Normal dependencies say "if the dependency is newer than the target, rebuild the target." But we don't want the variable computation to trigger rebuilds - we only want it to ensure the variables are available.
- It's about minimal constraint - only imposing the constraints you actually need. Order-only prerequisites express our intent more precisely: we want sequencing without timestamp dependency. This makes the Makefile more semantically correct and future-proof.
Even though in this specific case (with PHONY targets) the practical difference is minimal, using order-only prerequisites is better engineering practice because it accurately represents the relationship we want between these targets.

## Checklist

The [contributor guide](https://forgejo.org/docs/next/contributor/) contains information that will be helpful to first time contributors. There also are a few [conditions for merging Pull Requests in Forgejo repositories](https://codeberg.org/forgejo/governance/src/branch/main/PullRequestsAgreement.md). You are also welcome to join the [Forgejo development chatroom](https://matrix.to/#/#forgejo-development:matrix.org).

### Tests

- I added test coverage for Go changes...
  - [ ] in their respective `*_test.go` for unit tests.
  - [ ] in the `tests/integration` directory if it involves interactions with a live Forgejo server.
  - [ ] in `web_src/js/*.test.js` if it can be unit tested.
  - [ ] in `tests/e2e/*.test.e2e.js` if it requires interactions with a live Forgejo server (see also the [developer guide for JavaScript testing](https://codeberg.org/forgejo/forgejo/src/branch/forgejo/tests/e2e/README.md#end-to-end-tests)).

- [x] I tested the results of the affected targets and some other targets before and after the change:
    - [x] `make  help` -- before: slow, called git and downloaded -- after: fast, direct result
    - [x] `make  clean` -- before: slow, called git and downloaded -- after: fast, direct result
    - [x] `make  clean-all ` -- before: slow, called git and downloaded -- after: fast, direct result
    - [x] `make frontend` -- before: called git and downloaded -- after: fast, frontend build succeeded
    - [x] `make go-check` -- before: called git and downloaded -- after: faster, go check succeeded
    - [x] `make generate-backend` -- before: called git and downloaded -- after: fast, backend generated successfully
    - [x] `make static-executable` -- before: called git and downloaded -- after: fast, executable generated
    - [x] `make build` -- before: called git and downloaded -- after: fast, build succeeded
    - [x] 'test-backend' -- before: succeeded -- after succeeded.
    - [x] 'test' -- before: succeeded -- after succeeded.
    - [x] `migrations.individual.mysql.test' -- before: succeeded -- after succeeded.
    - [x] 'test' -- before: succeeded -- after succeeded.

### Documentation

- [ ] I created a pull request [to the documentation](https://codeberg.org/forgejo/docs) to explain to Forgejo users how to use this change.
- [x] I did not document these changes and I do not expect someone else to do it.

### Release notes

- [ ] I do not want this change to show in the release notes.
- [x] I want the title to show in the release notes with a link to this pull request.
- [ ] I want the content of the `release-notes/<pull request number>.md` to be be used for the release notes instead of the title.

Co-authored-by: iQ <iq@in6-addr.net>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9208
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Co-authored-by: iQ <iq@noreply.codeberg.org>
Co-committed-by: iQ <iq@noreply.codeberg.org>
2025-09-09 09:48:20 +02:00
Mathieu Fenniak
8e813902c5 feat: ability to view previous logs for Actions runs that have been retried (#9017)
Adds a new dropdown to the job logs, visible only when a job has been retried at least once:
![action-with-dropdown](/attachments/9669b47e-2239-4f07-b823-2759dd99a4fb)

When an older run attempt from the dropdown is selected, displays the older run's logs:
![historical-action-logs](/attachments/8b737386-63fb-4f3f-b5b5-ac38c62ed648)

Context on implementation & design decisions:
- It is important that when a URL from an Action's log is shared, the person on the other side sees the exact same logs that were being viewed.  For this reason, all log views are automatically redirected to a fully-qualified URL (including the *run*, *job*, and *attempt*), so that when they are shared there is a guarantee of stability in the viewed logs.
- Individual jobs can be rerun any number of times independent of other jobs in the same workflow.  This means there isn't a "set" of related jobs that were executed at the same time, and this led me to remove the display of current status of jobs on the left-hand side of the view.  There isn't a logical set of job statuses to display here.

Fixes #1043.  Based upon @gmem's original work in #1416.

## Checklist

The [contributor guide](https://forgejo.org/docs/next/contributor/) contains information that will be helpful to first time contributors. There also are a few [conditions for merging Pull Requests in Forgejo repositories](https://codeberg.org/forgejo/governance/src/branch/main/PullRequestsAgreement.md). You are also welcome to join the [Forgejo development chatroom](https://matrix.to/#/#forgejo-development:matrix.org).

### Tests

- I added test coverage for Go changes...
  - [x] in their respective `*_test.go` for unit tests.
  - [ ] in the `tests/integration` directory if it involves interactions with a live Forgejo server.
- I added test coverage for JavaScript changes...
  - [x] in `web_src/js/*.test.js` if it can be unit tested.
  - [ ] in `tests/e2e/*.test.e2e.js` if it requires interactions with a live Forgejo server (see also the [developer guide for JavaScript testing](https://codeberg.org/forgejo/forgejo/src/branch/forgejo/tests/e2e/README.md#end-to-end-tests)).

### Documentation

- [ ] I created a pull request [to the documentation](https://codeberg.org/forgejo/docs) to explain to Forgejo users how to use this change.
- [x] I did not document these changes and I do not expect someone else to do it.

### Release notes

- [ ] I do not want this change to show in the release notes.
- [x] I want the title to show in the release notes with a link to this pull request.
- [ ] I want the content of the `release-notes/<pull request number>.md` to be be used for the release notes instead of the title.

<!--start release-notes-assistant-->

## Release notes
<!--URL:https://codeberg.org/forgejo/forgejo-->
- User Interface features
  - [PR](https://codeberg.org/forgejo/forgejo/pulls/9017): <!--number 9017 --><!--line 0 --><!--description YWJpbGl0eSB0byB2aWV3IHByZXZpb3VzIGxvZ3MgZm9yIEFjdGlvbnMgcnVucyB0aGF0IGhhdmUgYmVlbiByZXRyaWVk-->ability to view previous logs for Actions runs that have been retried<!--description-->
<!--end release-notes-assistant-->

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9017
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Co-authored-by: Mathieu Fenniak <mathieu@fenniak.net>
Co-committed-by: Mathieu Fenniak <mathieu@fenniak.net>
2025-09-04 22:46:22 +02:00
Renovate Bot
985b77f137 Update module github.com/ulikunitz/xz/cmd/gxz to v0.5.15 (forgejo) (#9164)
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9164
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-09-04 13:35:01 +02:00
Ellen Εμιλία Άννα Zscheile
f447661345 feat(build): improve lint-locale-usage further (#8736)
Print out a list of all unused msgids
Handle Go files that make calls to translation.
Handle `models/unit/unit.go`, which stores msgids in `$Unit.NameKey`
Handle .locale.Tr in templates
Handle simple dynamically constructed `Tr("msgid-prefix." + SomeFunctionCall())`.

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8736
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: Ellen Εμιλία Άννα Zscheile <fogti+devel@ytrizja.de>
Co-committed-by: Ellen Εμιλία Άννα Zscheile <fogti+devel@ytrizja.de>
2025-08-27 23:47:34 +02:00
Earl Warren
7d3fcde71c chore: collect coverage using GOCOVERDIR (#9004)
- run all unit tests and integration tests in sequence in the same job
- upload the coverage data as an artifact to the run
- only run via dispatch because it is very long
- arguments are used to select which unit or integration tests to focus on

Refs https://go.dev/blog/integration-test-coverage

### Testing

- Run this workflow via workflow_dispatch (see https://codeberg.org/forgejo-integration/forgejo/actions/runs/11889)
- Download the coverage information (see https://codeberg.org/forgejo-integration/forgejo/actions/runs/11889/artifacts/coverage)
- Download the coverage information from an end-to-end cascade test (see https://code.forgejo.org/forgejo/end-to-end/actions/runs/3961)
- Unzip them in a the `coverage/data` sub-directory at the root of the Forgejo source tree
    ```sh
    $ ls coverage/data
    actions  coverage-actions.zip  coverage-federation.zip  coverage-tests.zip  coverage-upgrade.zip  federation  tests  upgrade
    ```
- Display the coverage percentage
```
$ make coverage-show-percentage
...
forgejo.org/services/wiki/wiki_path.go:96:					WebPathToGitPath						81.8%
forgejo.org/services/wiki/wiki_path.go:113:					GitPathToWebPath						90.0%
forgejo.org/services/wiki/wiki_path.go:129:					WebPathToUserTitle						71.4%
forgejo.org/services/wiki/wiki_path.go:140:					WebPathToURLPath						100.0%
forgejo.org/services/wiki/wiki_path.go:144:					WebPathFromRequest						100.0%
forgejo.org/services/wiki/wiki_path.go:151:					UserTitleToWebPath						80.0%
forgejo.org/services/wiki/wiki_path.go:163:					ToWikiPageMetaData						100.0%
forgejo.org/tests/integration/api_repo_file_helpers.go:18:			createFileInBranch						100.0%
...
total:										(statements)							63.9%
```

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9004
Reviewed-by: jerger <jerger@noreply.codeberg.org>
Co-authored-by: Earl Warren <contact@earl-warren.org>
Co-committed-by: Earl Warren <contact@earl-warren.org>
2025-08-26 10:10:46 +02:00
Renovate Bot
58c27fda89 Update gomock monorepo to v0.6.0 (forgejo) (#8948)
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8948
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-08-19 20:41:07 +02:00
Renovate Bot
99f93beada Update renovate to v41.76.0 (forgejo) (#8925)
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-08-18 07:00:12 +02:00
Renovate Bot
3382cd31a9 Update x/tools to v0.36.0 (forgejo) (#8910)
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-08-15 14:38:06 +02:00
Earl Warren
ff99331225 chore(docs): add instructions to run S3 tests locally (#8895)
Also fix the existing instructions that were missing a `-e` flag.

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8895
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: Earl Warren <contact@earl-warren.org>
Co-committed-by: Earl Warren <contact@earl-warren.org>
2025-08-15 08:54:09 +02:00
Renovate Bot
445e2b1344 Update renovate to v41.61.0 (forgejo) (#8856)
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-08-11 07:49:28 +02:00
Renovate Bot
15231669e6 Update renovate to v41.51.1 (forgejo) (#8775)
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-08-04 07:24:16 +02:00
Renovate Bot
7af647025a Update module github.com/golangci/golangci-lint/v2/cmd/golangci-lint to v2.3.1 (forgejo) (#8763)
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-08-03 03:37:09 +02:00
Renovate Bot
fb57260056 Update module github.com/golangci/golangci-lint/v2/cmd/golangci-lint to v2.3.0 (forgejo) (#8752)
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-08-01 07:56:31 +02:00
Renovate Bot
4f0c2ec258 Update renovate to v41.43.5 (forgejo) (#8700)
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-07-28 10:33:09 +02:00
Renovate Bot
ed3c5588ad Update renovate to v41.42.5 (forgejo) (#8615)
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-07-22 19:26:22 +02:00
Renovate Bot
65a9c12a1f Update renovate to v41.42.2 (forgejo) (#8605)
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-07-22 14:10:22 +02:00
Gusted
ccc33dd2df chore: tweak fomantic config (#8583)
Disable many unneeded variants in fomantic's config. Reduces the amount of CSS is generated.

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8583
Reviewed-by: 0ko <0ko@noreply.codeberg.org>
Co-authored-by: Gusted <postmaster@gusted.xyz>
Co-committed-by: Gusted <postmaster@gusted.xyz>
2025-07-21 22:34:54 +02:00
Renovate Bot
6ee4dd753a Update renovate to v41.40.0 (forgejo) (#8585)
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-07-21 09:32:04 +02:00
Renovate Bot
bc4c1d64cb Update x/tools to v0.35.0 (forgejo) (#8561)
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-07-18 17:41:12 +02:00
Renovate Bot
f27b46436c Update module github.com/golangci/golangci-lint/v2/cmd/golangci-lint to v2.2.2 (forgejo) (#8557)
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-07-18 17:25:58 +02:00
Renovate Bot
81e59014da Update renovate to v41.32.0 (forgejo) (#8501)
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-07-14 07:00:31 +02:00
Renovate Bot
1d310e6df5 Update renovate to v41.23.1 (forgejo) (#8434)
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-07-07 06:50:50 +02:00
Renovate Bot
212e8ac348 Update module github.com/golangci/golangci-lint/v2/cmd/golangci-lint to v2.2.1 (forgejo) (#8422)
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8422
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-07-05 18:33:45 +02:00
Renovate Bot
a943271205 Update renovate to v41.17.2 (forgejo) (#8355)
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-06-30 06:44:04 +02:00
Renovate Bot
b58cebc2d9 Update renovate to v41.1.4 (forgejo) (#8256)
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-06-23 07:40:04 +02:00
Renovate Bot
b6dd1dd799 Update renovate to v41 (forgejo) (major) (#8253)
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8253
Reviewed-by: Michael Kriese <michael.kriese@gmx.de>
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-06-21 18:42:42 +02:00
Gusted
3a8cea52cd chore: remove gopls in Makefile (#8205)
- `lint-go-gopls` runs `gopls check` over Forgejo's codebase. It report errors found by the diagnosis tool of gopls, most of it are errors that can be catched by existing linters. It is not used in the CI, remove it.

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8205
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Reviewed-by: Michael Kriese <michael.kriese@gmx.de>
Co-authored-by: Gusted <postmaster@gusted.xyz>
Co-committed-by: Gusted <postmaster@gusted.xyz>
2025-06-17 08:28:26 +02:00
Renovate Bot
5e157d40df Update renovate to v40.57.1 (forgejo) (#8194)
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8194
Reviewed-by: Michael Kriese <michael.kriese@gmx.de>
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-06-16 11:54:29 +02:00
Earl Warren
fd2f9e6842
fix: Dockerfile should re-use bindata files when possible
- Revert "fix: use zstd.WithLowerEncoderMem for generate-bindata
- Re-use bindata files when available instead of ignoring them in Dockerfile
- Add missing  modules/migration/bindata.go to go sources in the Makefile

Closes forgejo/forgejo#8165
2025-06-13 14:00:57 +02:00
Renovate Bot
81c960f0c2 Update renovate to v40.48.4 (forgejo) (#8117)
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-06-09 10:50:43 +02:00
Renovate Bot
6d7f5fb41e Update x/tools to v0.34.0 (forgejo) (#8103)
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-06-07 03:57:12 +02:00
Renovate Bot
7428edacbe Update module github.com/editorconfig-checker/editorconfig-checker/v3/cmd/editorconfig-checker to v3.3.0 (forgejo) (#8101)
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-06-07 03:53:04 +02:00
Renovate Bot
534020d0ad Update module go.uber.org/mock/mockgen to v0.5.2 (forgejo) (#8065)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [go.uber.org/mock/mockgen](https://github.com/uber/mock) | patch | `v0.5.1` -> `v0.5.2` |

---

### Release Notes

<details>
<summary>uber/mock (go.uber.org/mock/mockgen)</summary>

### [`v0.5.2`](https://github.com/uber-go/mock/releases/tag/v0.5.2)

[Compare Source](https://github.com/uber/mock/compare/v0.5.1...v0.5.2)

#### 0.5.2 (28 Apr 2025)

##### Fixed

-   [#&#8203;248][]: Fixed an issue with type aliases not being included in generated code correctly.

[#&#8203;248]: https://github.com/uber-go/mock/pull/248

</details>

---

### Configuration

📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM ( * 0-3 * * * ) (UTC), Automerge - Between 12:00 AM and 03:59 AM ( * 0-3 * * * ) (UTC).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC40MC4wIiwidXBkYXRlZEluVmVyIjoiNDAuNDAuMCIsInRhcmdldEJyYW5jaCI6ImZvcmdlam8iLCJsYWJlbHMiOlsiZGVwZW5kZW5jeS11cGdyYWRlIiwidGVzdC9ub3QtbmVlZGVkIl19-->

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8065
Reviewed-by: Michael Kriese <michael.kriese@gmx.de>
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-06-04 10:01:47 +02:00
Michael Kriese
549fcff997 chore: drop unused misspell (#8058)
Package not used

- closes #8053

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8058
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
Co-committed-by: Michael Kriese <michael.kriese@visualon.de>
2025-06-03 12:03:00 +02:00
Michael Kriese
dbbd0de860 chore(renovate): bump to v40.40.0 and disable v7 (#8050)
- bump renovate to v40.40.0
- remove v7 branch from renovate
- disable transitive updates on stable branches (security updates will /should still open automatically)

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8050
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
Co-committed-by: Michael Kriese <michael.kriese@visualon.de>
2025-06-03 08:52:21 +02:00
Earl Warren
55d8910255 chore(upgrade): urfave/cli from v2 to v3 (#8035)
urfave/cli  v2 will eventually become unmaintained, switch over to v3 which is the latest supported version.

Note: the `docs` command would be a lot of work to restore with v3 ([the package is still in alpha](https://github.com/urfave/cli-docs)) An alternative to avoid a breaking change would be to not upgrade from v2 to v3 for that reason alone.
Note: these commits were cherry-picked from https://code.forgejo.org/forgefriends/forgefriends
Note: it is best reviewed side by side with no display of whitespace changes (there are a lot of those when converting vars to func).

- a few functional changes were necessary and are noted in context in the file changes tab
- https://cli.urfave.org/migrate-v2-to-v3/ upgrade instructions were followed in the most minimal way possible
- upgrade gof3 to v3.10.8 which includes and upgrade from urfave/cli  v2 to urfave/cli  v3
- upgrade gitlab.com/gitlab-org/api/client-go v0.129.0 because it is an indirect dependency of gof3 and requires a change because of a deprecated field that otherwise triggers a lint error but nothing else otherwise
- verified that the [script](https://codeberg.org/forgejo/docs/src/branch/next/scripts/cli-docs.sh) that generates the [CLI documentation](https://codeberg.org/forgejo/docs/src/branch/next/scripts/cli-docs.sh) still works. There are cosmetic differences and the **help** subcommand is no longer advertised (although it is still supported) but the `--help` option is advertised as expected so it is fine.
- end-to-end tests [passed](https://code.forgejo.org/forgejo/end-to-end/pulls/667) (they use the Forgejo CLI to some extent)

## Checklist

The [contributor guide](https://forgejo.org/docs/next/contributor/) contains information that will be helpful to first time contributors. There also are a few [conditions for merging Pull Requests in Forgejo repositories](https://codeberg.org/forgejo/governance/src/branch/main/PullRequestsAgreement.md). You are also welcome to join the [Forgejo development chatroom](https://matrix.to/#/#forgejo-development:matrix.org).

### Tests

- I added test coverage for Go changes...
  - [ ] in their respective `*_test.go` for unit tests.
  - [ ] in the `tests/integration` directory if it involves interactions with a live Forgejo server.
- I added test coverage for JavaScript changes...
  - [ ] in `web_src/js/*.test.js` if it can be unit tested.
  - [ ] in `tests/e2e/*.test.e2e.js` if it requires interactions with a live Forgejo server (see also the [developer guide for JavaScript testing](https://codeberg.org/forgejo/forgejo/src/branch/forgejo/tests/e2e/README.md#end-to-end-tests)).

### Documentation

- [ ] I created a pull request [to the documentation](https://codeberg.org/forgejo/docs) to explain to Forgejo users how to use this change.
- [x] I did not document these changes and I do not expect someone else to do it.

### Release notes

- [ ] I do not want this change to show in the release notes.
- [ ] I want the title to show in the release notes with a link to this pull request.
- [x] I want the content of the `release-notes/<pull request number>.md` to be be used for the release notes instead of the title.

<!--start release-notes-assistant-->

## Release notes
<!--URL:https://codeberg.org/forgejo/forgejo-->
- Breaking features
  - [PR](https://codeberg.org/forgejo/forgejo/pulls/8035): <!--number 8035 --><!--line 0 --><!--description VGhlIGBmb3JnZWpvIGRvY3NgIGNvbW1hbmQgaXMgZGVwcmVjYXRlZCBhbmQgQ0xJIGVycm9ycyBhcmUgbm93IGRpc3BsYXllZCBvbiBzdGRlcnIgaW5zdGVhZCBvZiBzdGRvdXQuIFRoZXNlIGJyZWFraW5nIGNoYW5nZXMgaGFwcGVuZWQgYmVjYXVzZSB0aGUgcGFja2FnZSB1c2VkIHRvIHBhcnNlIHRoZSBjb21tYW5kIGxpbmUgYXJndW1lbnRzIHdhcyBbdXBncmFkZWQgZnJvbSB2MiB0byB2M10oaHR0cHM6Ly9jbGkudXJmYXZlLm9yZy9taWdyYXRlLXYyLXRvLXYzLykuIEEgW3NlcGFyYXRlIHByb2plY3Qgd2FzIGluaXRpYXRlZF0oaHR0cHM6Ly9naXRodWIuY29tL3VyZmF2ZS9jbGktZG9jcykgdG8gcmUtaW1wbGVtZW50IHRoZSBgZG9jc2AgY29tbWFuZCwgYnV0IGl0IGlzIG5vdCB5ZXQgcHJvZHVjdGlvbiByZWFkeS4=-->The `forgejo docs` command is deprecated and CLI errors are now displayed on stderr instead of stdout. These breaking changes happened because the package used to parse the command line arguments was [upgraded from v2 to v3](https://cli.urfave.org/migrate-v2-to-v3/). A [separate project was initiated](https://github.com/urfave/cli-docs) to re-implement the `docs` command, but it is not yet production ready.<!--description-->
<!--end release-notes-assistant-->

Co-authored-by: limiting-factor <limiting-factor@posteo.com>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8035
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
2025-06-01 22:16:37 +02:00
Renovate Bot
d4bccedf8d Update renovate to v40.31.0 (forgejo) (#7959)
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-05-26 10:17:13 +02:00
Renovate Bot
a5260b7f08 Update renovate to v40.14.5 (forgejo) (#7907)
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-05-23 10:58:16 +02:00
Earl Warren
de1adf224d fix: do not unconditionally append $(GITEA_COMPATIBILITY) in version (#7933)
If the environment variable FORGEJO_VERSION is set and already contains $(GITEA_COMPATIBILITY), it must not be append again.

This particular use case occurs when a pull request is tested in https://code.forgejo.org/forgejo/end-to-end. It sets the version at

796a32d6c1/lib/build.sh (L39)

which is drawn from a file generated at

6c6035bc49/.forgejo/cascading-pr-end-to-end (L33)

The version is generated from a checkout of the PR which leads to
something like:

```
$ make show-version-full
12.0.0-dev-307-6c6035bc49+gitea-1.22.0
```

## Testing

```
git clone https://codeberg.org/forgejo/forgejo
cd forgejo
export FORGEJO_VERSION=$(make show-version-full)
test "$FORGEJO_VERSION" = "$(make show-version-full)" || echo FAIL!
```

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7933
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Reviewed-by: Antonin Delpeuch <wetneb@noreply.codeberg.org>
Co-authored-by: Earl Warren <contact@earl-warren.org>
Co-committed-by: Earl Warren <contact@earl-warren.org>
2025-05-22 12:14:31 +02:00
Renovate Bot
3a670596f5 Update renovate to v40 (forgejo) (major) (#7777)
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7777
Reviewed-by: Michael Kriese <michael.kriese@gmx.de>
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-05-15 15:21:16 +00:00
Lucas Dohmen
63543afa2b chore: remove unused linters (#7680)
Remove linters from the repository that are not used. This also removes the Python setup as it was only used for those linters.

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7680
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: Lucas Dohmen <lucas@dohmen.io>
Co-committed-by: Lucas Dohmen <lucas@dohmen.io>
2025-05-14 23:20:32 +00:00
Michael Kriese
c56ab9f10c ci(renovate): only fail on error (#7848)
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7848
Reviewed-by: 0ko <0ko@noreply.codeberg.org>
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
Co-committed-by: Michael Kriese <michael.kriese@visualon.de>
2025-05-13 16:15:57 +00:00
Renovate Bot
e57d0c248f Update renovate to v39.264.0 (forgejo) (#7776)
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-05-13 09:46:55 +00:00
Renovate Bot
0ce1f70820 Update module github.com/golangci/golangci-lint/v2/cmd/golangci-lint to v2.1.6 (forgejo) (#7789)
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-05-05 15:32:00 +00:00
Renovate Bot
61b9535039 Update renovate to v39.261.4 (forgejo) (#7695)
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-04-28 06:57:08 +00:00
Matt Latusek
9289e293fd feat: Makefile & BSDmakefile changes (#7455)
This set of commits fixes multiple issues with both make scripts. It started with #7358 and digging into it I found more problems.

@Gusted [commented](https://codeberg.org/forgejo/forgejo/issues/7358#issuecomment-3145145):
>  I do think the place where verify-version gets called should likely be backend instead and the error should likely include extra details on how to fix the error, but that can be discussed in the PR.

I think it should be closest to where `$(FORGEJO_VERSION)` is used and that's part of `$(LDFLAGS)`, so I added it where the latter is used.

When it comes to wording feel free to make suggestions.

**I haven't tested docker builds.**

I believe the most optimal way to do it is to create POSIX-compliant shell script where all those conditionals and variable expansion may be placed, and then that script should generate POSIX-compliant Makefile.

# Testing

## BSDMakefile

Should be launched from a BSD OS. You need to add `-f BSDMakefile` on OpenBSD.

* `make show-version-major show-version-minor`
Should display two lines with version numbers.
* `make TAGS=bindata`
Should launch the building process once.

## Makefile

* `make TAGS=bindata`
Should do the same as `make build`.
* `make `*target*
Should build given target like it used to.
* Copy everything except *.git* and *VERSION* to a separate directory.
`make TAGS=bindata`
Should fail with error “Could not determine FORGEJO_VERSION...”
* Copy everything except *.git* and *VERSION* to a separate directory.
`make clean`
Should execute correctly.

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7455
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: Matt Latusek <matlib@matlibhax.com>
Co-committed-by: Matt Latusek <matlib@matlibhax.com>
2025-04-27 10:04:32 +00:00
Renovate Bot
f48c6d3c04 Update module github.com/golangci/golangci-lint/v2/cmd/golangci-lint to v2.1.5 (forgejo) (#7661)
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-04-26 06:34:41 +00:00
Renovate Bot
06c38cd613 Update module mvdan.cc/gofumpt to v0.8.0 (forgejo) (#7613)
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-04-23 15:41:47 +00:00
Renovate Bot
424606c8a4 Update renovate to v39.252.0 (forgejo) (#7587)
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-04-21 06:39:22 +00:00
Renovate Bot
f711aaceb8 Update module github.com/golangci/golangci-lint/v2/cmd/golangci-lint to v2.1.2 (forgejo) (#7552)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [github.com/golangci/golangci-lint/v2/cmd/golangci-lint](https://github.com/golangci/golangci-lint) | patch | `v2.1.1` -> `v2.1.2` |

---

### Release Notes

<details>
<summary>golangci/golangci-lint (github.com/golangci/golangci-lint/v2/cmd/golangci-lint)</summary>

### [`v2.1.2`](https://github.com/golangci/golangci-lint/blob/HEAD/CHANGELOG.md#v212)

[Compare Source](https://github.com/golangci/golangci-lint/compare/v2.1.1...v2.1.2)

1.  Linters bug fixes
    -   `exptostd`: from 0.4.2 to 0.4.3
    -   `gofumpt`: from 0.7.0 to 0.8.0
    -   `protogetter`: from 0.3.13 to 0.3.15
    -   `usetesting`: from 0.4.2 to 0.4.3

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "* 0-3 * * *" (UTC), Automerge - "* 0-3 * * *" (UTC).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNDAuMSIsInVwZGF0ZWRJblZlciI6IjM5LjI0MC4xIiwidGFyZ2V0QnJhbmNoIjoiZm9yZ2VqbyIsImxhYmVscyI6WyJkZXBlbmRlbmN5LXVwZ3JhZGUiLCJ0ZXN0L25vdC1uZWVkZWQiXX0=-->

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7552
Reviewed-by: Michael Kriese <michael.kriese@gmx.de>
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
2025-04-16 05:42:20 +00:00