server-product/system/incompatibilities/incompatibilities.md
The Kubernetes job executor now requires build working directory to be backed by PVC. Using hostPath volumes is no longer supported, as it is not considered a recommended Kubernetes practice.
If your previous configuration did not use a PVC for the build volume, OneDev will automatically provision a PVC using the cluster's default StorageClass. The initial storage size is set to 10 GiB. Adjust this value as needed to meet your workload requirements.
Due to changes in the workspace user data storage format, all existing workspace user data will be removed during the upgrade.
The new storage format is designed to be stable and will be preserved across future upgrades starting from this release.
docker pull 1dev/agent) before starting agents againOnly authenticated users can now query user id and role id
Project default role is replaced with base authorization to support multiple default role assignment. The defaultRoleId field should be removed when create/update the project resource.
"Status" is "<name>" is removed, use open, merged, or discarded instead"Status" is "<name>" is removed, use respective status criteria instead, such as successful, failed, runningIn case these changes prevent you accessing the dashboard, suffix the url with ?failsafe=true to access the dashboard without rendering, and then edit
settings of relevant widget to fix the queries
Custom field type Working Period is removed, as it depends on time tracking setting which is a EE feature. Existing working period fields will be
converted to integer fields with value set to number of minutes
Build spec param type Working Period is removed for same reason as above. Existing working period params will be converted to integer params
The ability to edit existing user authorization is removed as any project owner can use it to remove authorization of other projects
Incoming box settings of various mail services removed additional target addresses for simplicity reason. Configure mail relay/forward at mail server side if you are using this feature previously
SQL Server support is removed due to added complexity and inability to test with full version. If you are using SQL Server, please switch to use MySQL/PostgreSQL/MariaDB
Guest concept is removed as administrator can create read-only roles achieving same purpose. If you are limiting user permissions via guest option, please make sure to assign those users appropriate roles before upgrade
Milestone is now renamed as iteration. All other settings are migrated automatically. For programs using milestone api, they need to be updated to use iteration api instead
The build image step now always uses buildx builder to build images to avoid polluting images used by other jobs. The builder should be specified in more settings section of corresponding executors. If you are accessing insecure private docker registries, please follow this tutorial to configure the builder
Builder and platform option cannot be specified via More Options property of build image step now. The builder option should be specified in executor (see above note), and platform option should be specified via property Platform
Build image step now either push image to registry, or save image as OCI layout. The option to build local image without pushing is removed, as this imposes a security vulnerability (built image can pollute images used by other jobs)
A library upgrade in server causes agent auto-update to fail. To work around this, please update agent manually by pulling latest image or download latest agent package from server.
OneDev now stores job caches on server instead of local disk for better manageability and sharing. As result of this, the cache settings defined at job level are removed. One should use Set Up Cache step now instead. Check out <a href='https://docs.onedev.io/tutorials/cicd/job-cache'>this tutorial</a> to get familiar with the new cache mechanism
The operation to query repository commits and get repository commit now return commit object(s) whose fields can be controlled via the field query parameter
The option Monitor System Email Only is removed from various mail services. Instead, you will
need to specify additional email addresses to be monitored explicitly via option
Additional Email Addresses to Monitor
OneDev now relies on buildx to build docker image. Make sure to update agent image by running
docker pull 1dev/agent if you are running agent inside container
Temporal agent support is removed as this feature is flawed (using same token). This feature will be replaced by on demand agent launch in future versions
Since 9.0, OneDev introduces enterprise edition which requires a paid subscription to use, and now it is distributed under new license. In short, the server-ee folder is licensed separately with a source available license, while other parts remain MIT licensed.
It is promised that all existing features prior to 9.0 will never be moved into enterprise edition, and new features will be added to MIT licensed part continuously.
The operation to get issue fields now return a map of field name to value
Oracle support is removed as it is hard to test with latest version. If you happen to use this database, please back up data and restore to a supported database following this guide
Helm chart has been completely rewritten to be flexible, and it is not compatible with earlier versions. Follow upgrade guide to upgrade your chart from version <= 8.4.2
Kubernetes executor no longer supports to execute step of type Run Docker Container to avoid mounting container sock into sidecar container. Put your step logic in a command step instead
Kubernetes executor no longer supports to execute build image step even with docker runtime. A kaniko step is added to build image in Kubernetes cluster
The publish option of build docker image step is removed, and now the step always tries to publish the built image
Branch/tag protection rules are changed to apply first matching instead of apply all matching
[Agent]
A particular agent token can only be used by one agent now. If you have multiple agents using same token, only the first one can connect to server, and others will be rejected. To fix this, open detail page of each rejected agent and copy the newly generated token to agent side
[RESTful api]
/agents to /agentVarious resource update operations now require resource id to be specified in url path instead of request body. Refer to RESTful api help for details
Create tag step and close milestone step in build spec now uses access token to authenticate to server for flexibility and consistence reason. Please edit relevant build specs to specify appropriate access tokens for these two steps, otherwise they will fail
Project site published via public site step in build spec now can be publicly accessible. Previously it is only accessible to users able to access the project
All access tokens of users are re-generated with cryto strong random string. As a result of this, all places using previous access token should be replaced with the new access token. This may include restful api authentication, CI/CD checkout step using access token etc.
To use consistent project url for web and git access, OneDev now uses project path instead of project id to access projects via web UI, for instance https://code.onedev.io/projects/160 has been changed to https://code.onedev.io/onedev/server. To avoid conflicting with this url scheme,
some service urls have been changed and this causes some incompatibitlities:
~api instead of api, for instance url to access project information is now /~api/projects/{projectId}https://<onedev root url>/~sso/callback/<Provider Name> (use ~sso instead of sso)https://<onedev root url>/~oauth/callback (use ~oauth instead of oauth)/server to /~server. Check the docs for detailsOneDev server and agent now requires Java 11 or higher. Follow below steps to upgrade agent manually:
Run In Container is added and enabled for all command steps in build spec. If you have steps intended to
be executed by shell executor, edit them to disable this property, otherwise the build will be failed with error This step should be executed by server docker executor, remote docker executor, or kubernetes executor| old name | new name |
|---|---|
| updated_ref | ref |
| updated_branch | branch |
| updated_tag | tag |
| pull_request_ids | pull_request_number |
Version 3.2 uses token authentication instead of password authentication in build spec for security consideration. As a result of this, password authentication specified previously will be cleared:
You will need to use custom http/ssh clone credential with permission to access submodule projects to retrieve source. Refer to tutorial for an example.
You will need to define a job secret containing an access token in project build setting page, and then use that secret in project dependency definition. The access token should have permission to download dependency project artifacts of course.