97 lines
3.0 KiB
Plaintext
97 lines
3.0 KiB
Plaintext
|
# Automatic updating via _service
|
||
|
|
||
|
Edit the rustX.YY.spec file, and update the variables related with the
|
||
|
version:
|
||
|
|
||
|
- *version_suffix*: for the new version of Rust, in X.YY format
|
||
|
- *version_current*: for the new version of Rust, in X.YY.Z format
|
||
|
- *version_previous*: for the previous version of Rust, in X.YY.X
|
||
|
format
|
||
|
|
||
|
Generate the spec files for the different bootstrap compilers. This
|
||
|
will take the version from the main spec file.
|
||
|
|
||
|
./update-bootstrap.sh
|
||
|
|
||
|
After that, we can execute the service file:
|
||
|
|
||
|
osc service disabledrun
|
||
|
|
||
|
This will download the new bootstrap compilers and the signature file.
|
||
|
|
||
|
If `osc` complains about a missing service component, double check
|
||
|
that the components are installed. For example, for Tumbleweed:
|
||
|
|
||
|
zypper in obs-service-download_files obs-service-refresh_patches
|
||
|
|
||
|
Finally, update the changelog based on the releases notes:
|
||
|
|
||
|
https://github.com/rust-lang/rust/blob/master/RELEASES.md
|
||
|
|
||
|
# Updating to a new version from upstream
|
||
|
|
||
|
(Original link: https://en.opensuse.org/Rust)
|
||
|
|
||
|
Branch the rust package in the devel:languages:rust project.
|
||
|
|
||
|
You'll need to download precompiled binaries for the compiler used for
|
||
|
bootstrapping, and the actual source code for the compiler. In the
|
||
|
"Other Installation Methods" page listed below, note that it shows
|
||
|
links to .tar.gz packages and their .tar.gz.asc GPG signatures, but
|
||
|
.tar.xz versions are also available.
|
||
|
|
||
|
*Binaries for bootstrapping* - Go to the "Other Installation Methods"
|
||
|
page from rust-lang.org and scroll down to the "Standalone installers"
|
||
|
section. Download the following:
|
||
|
|
||
|
- rust-<version>-aarch64-unknown-linux-gnu.tar.xz
|
||
|
- rust-<version>-armv7-unknown-linux-gnueabihf.tar.xz
|
||
|
- rust-<version>-i686-unknown-linux-gnu.tar.xz
|
||
|
- rust-<version>-powerpc64le-unknown-linux-gnu.tar.xz
|
||
|
- rust-<version>-powerpc64-unknown-linux-gnu.tar.xz
|
||
|
- rust-<version>-s390x-unknown-linux-gnu.tar.xz
|
||
|
- rust-<version>-x86_64-unknown-linux-gnu.tar.xz
|
||
|
|
||
|
*Compiler source code* - From the same page, but now in the "Source
|
||
|
code" section, download this:
|
||
|
|
||
|
rustc-<version>-src.tar.xz
|
||
|
|
||
|
Update those files in the source RPM. Check that all the patches still
|
||
|
apply.
|
||
|
|
||
|
Update the version number in rust.spec.
|
||
|
|
||
|
Add the release notes to rust.changes.
|
||
|
|
||
|
# Running the tests locally
|
||
|
|
||
|
The tests are executed outside the main package using the _multibuild
|
||
|
feature of OBS. This is convenient for several reasons:
|
||
|
|
||
|
* We force the installation of the new rustc / cargo in the system
|
||
|
|
||
|
* All the test / bootstrabs and utilities are compiled using the new
|
||
|
compiler, and not the one used to generate the initial Rust
|
||
|
compiler.
|
||
|
|
||
|
* A test fail do not block the release. Upstream tests can be
|
||
|
affected by some environment application, and there is some delay
|
||
|
for the fix.
|
||
|
|
||
|
The tests can be run with:
|
||
|
|
||
|
osc build -M test
|
||
|
|
||
|
This will install the Rust compiler from OBS, so is a good idea that
|
||
|
we have them available.
|
||
|
|
||
|
If some test fail, we can enter the chroot to debug it:
|
||
|
|
||
|
osc shell
|
||
|
|
||
|
There is more information about the test infrastructure here:
|
||
|
|
||
|
https://rustc-dev-guide.rust-lang.org/tests/intro.html
|
||
|
|