Upgrade Path

Gitea 1.20.0 → 1.21.0

6 versions, 2 with breaking changes, 0 required stops

Version by version, oldest first

1.20.1 – 1.20.2: no action items (2 versions)

1.20.3 2023-08-20

Breaking

  • Fix the wrong derive path (#26271) (#26318)

Breaking — from the release blog

In #23912, we missed that PATH can be inherited from its parent sections. This means that if admins define a global [storage].PATH configuration and don't override it in subsections (i.e. [storage.lfs].PATH), all data will be stored exactly in this PATH without any attachments, lfs, … subfolders. In other words, files can be overwritten unintentionally. Fortunately, most instances will not be affected by this.

With #26271, this is now fixed. However, we cannot migrate existing data into subfolders. Please check your configuration. If you notice that you set [storage].PATH but not the concrete child section paths, please move the files into the respective default subfolders as detailed in the documentation. Additionally, you can think about explicitly setting the concrete storage PATHs or unsetting [storage].PATH.

From blog.gitea.com/release-of-1.20.3/

Full release notes for 1.20.3

1.20.4 – 1.20.5: no action items (2 versions)

1.20.6: released after 1.21.0; not on this route

1.21.0 2023-11-14

Breaking

  • Restrict certificate type for builtin SSH server (#26789)
  • Refactor to use urfave/cli/v2 (#25959)
  • Move public asset files to the proper directory (#25907)
  • Remove commit status running and warning to align GitHub (#25839) (partially reverted: Restore warning commit status (#27504) (#27529))
  • Remove "CHARSET" config option for MySQL, always use "utf8mb4" (#25413)
  • Set SSH_AUTHORIZED_KEYS_BACKUP to false (#25412)

Breaking — from the release blog

These changes are likely to affect the way Gitea works for at least some users. These changes are sorted by importance, with the top ones likely requiring some actions from you, and the bottom ones mostly not affecting anyone.

⚠️ Move public asset files to the proper directory (#25907)

At some point, a folder structure emerged for Gitea where files stored in custom/public/* have been served under https://gitea.example.com/assets/*, which lead to a lot of confusion for new users trying to customize their instances. To correct this behavior, we changed the default assets folder to custom/public/assets/*.

If you have custom asset files, e. g. custom themes, inside custom/public/*, you need to transfer these files to custom/public/assets/* for them to be detected by Gitea v1.21.

⚠️ Set SSH_AUTHORIZED_KEYS_BACKUP to false (#25412)

Previously, the configuration option [server].SSH_AUTHORIZED_KEYS_BACKUP, which makes Gitea automatically create backups of the authorized_keys file every time a new SSH key is added by a user, was set to true by default. However, this lead to the backup folder getting enormously large on instances with many users.

As a consequence, we decided to change the default value of this parameter to false. Please ensure to set it to true manually inside your app.ini if you want for Gitea to continue creating backups of this file.

⚠️ Remove CHARSET config option for MySQL, always use utf8mb4 (#25413)

Using utf8 as a charset for MySQL may result in issues, e. g. with emoji characters, however a new installation can still end up using it through the [database].CHARSET configuration option. The superior utf8mb4 character set is being supported since MySQL v5.5, and as Gitea only supports MySQL v5.7+, support for utf8 is no longer needed in Gitea. To eliminate such issues, we decided to remove this configuration option completely.

Existing utf8 databases will continue to work without modifications, however we strongly recommend you to convert them to utf8mb4 using the gitea doctor convert command.

⚠️ Refactor Gitea cli (#25959)

A refactoring of Gitea's cli package lead to some changes in the way it treats command options:

  • gitea without subcommands no longer accepts gitea web options.
  • --install-port, --pid, --port, --quiet, and --verbose belong to the web sub-command
  • use ./gitea web --pid … instead
  • ./gitea can still run the web sub-command as shorthand, with default options
  • The sub-command's options must follow the sub-command
  • before: ./gitea --sub-opt subcmd might equal to ./gitea subcmd --sub-opt
  • after: only ./gitea subcmd --sub-opt can be used
  • global options like --config are not affected

⚠️ Restrict certificate type for builtin SSH server (#26789)

When using certificate authentication, the OpenSSH server automatically rejects host certificates which are being used as client certificates. Similarly to OpenSSH, Gitea's built-in SSH server now also requires you to use proper client certificates when connecting. Most users should be unaffected by this change.

⚠️ Remove commit status running to align with GitHub (#25839)

When implementing Gitea Actions, the additional commit status "running" was introduced in Gitea v1.19, which resulted in partially confusing aggregated commit status behavior if compared to GitHub. We decided to remove "running" with this release to simplify the commit status and make it more consistent with GitHub.

From blog.gitea.com/release-of-1.21.0/

Full release notes for 1.21.0

Release notes from github.com/go-gitea/gitea/releases, and the official release blog, checked 17 hours ago. Only text the vendor marks as breaking, or puts in a warning/caution/important note, is shown; read the full notes for anything else.