Skip to content
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

Replace `RELEASE.md' with issue template #9828

Merged
merged 2 commits into from
Jul 31, 2023
Merged

Replace `RELEASE.md' with issue template #9828

merged 2 commits into from
Jul 31, 2023

Conversation

lippserd
Copy link
Member

Apart from the Windows-related notes, all instructions are common to our releases and therefore do not need to be explicitly listed here. In addition, most of the information was severely outdated, especially with respect to how our packaging works.

@cla-bot cla-bot bot added the cla/signed label Jul 11, 2023
@Al2Klimov Al2Klimov self-requested a review July 11, 2023 11:38
.github/ISSUE_TEMPLATE/release.md Outdated Show resolved Hide resolved
Comment on lines -52 to -109
### Windows Dependencies <a id="windows-dependencies"></a>

In contrast to Linux, the bundled Windows dependencies
(at least Boost and OpenSSL) aren't updated automatically.
(Neither by Icinga administrators, nor at package build time.)

To ensure the upcoming Icinga release ships the latest (i.e. most secure) dependencies on Windows:

#### Update packages.icinga.com

Add the latest Boost and OpenSSL versions to
https://packages.icinga.com/windows/dependencies/ like this:

```
localhost:~$ ssh aptly.vm.icinga.com
aptly:~$ sudo -i
aptly:~# cd /var/www/html/aptly/public/windows/dependencies
aptly:dependencies# wget https://master.dl.sourceforge.net/project/boost/boost-binaries/1.76.0/boost_1_76_0-msvc-14.2-64.exe
aptly:dependencies# wget https://master.dl.sourceforge.net/project/boost/boost-binaries/1.76.0/boost_1_76_0-msvc-14.2-32.exe
aptly:dependencies# wget https://slproweb.com/download/Win64OpenSSL-1_1_1k.exe
aptly:dependencies# wget https://slproweb.com/download/Win32OpenSSL-1_1_1k.exe
```

#### Ensure Compatibility

Preferably on a fresh Windows VM (not to accidentally build Icinga
with old dependency versions) setup a dev environment using the new dependency versions:

1. Download [doc/win-dev.ps1](doc/win-dev.ps1)
2. Edit your local copy, adjust the dependency versions
3. Ensure there are 35 GB free space on C:
4. Run the following in an administrative Powershell:
1. `Enable-WindowsOptionalFeature -FeatureName "NetFx3" -Online`
(reboot when asked!)
2. `powershell -NoProfile -ExecutionPolicy Bypass -File "${Env:USERPROFILE}\Downloads\win-dev.ps1"`
(will take some time)

Actually clone and build Icinga using the new dependency versions as described
[here](https://github.com/Icinga/icinga2/blob/master/doc/21-development.md#tldr).
Fix incompatibilities if any.

#### Update Build Server, CI/CD and Documentation

* https://git.icinga.com/infra/ansible-windows-build
(don't forget to provision!)
* [doc/21-development.md](doc/21-development.md)
* [doc/win-dev.ps1](doc/win-dev.ps1)
(also affects CI/CD)
* [tools/win32/configure.ps1](tools/win32/configure.ps1)
* [tools/win32/configure-dev.ps1](tools/win32/configure-dev.ps1)

#### Re-provision Build Server

Even if there aren't any new releases of dependencies with versions
hardcoded in the repos and files listed above (Boost, OpenSSL).
There may be new build versions of other dependencies (VS, MSVC).
Our GitHub actions (tests) use the latest ones automatically,
but the GitLab runner (release packages) doesn't.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This section is mostly up-to-date, except maybe the section "Ensure Compatibility", as I'd just build it in GitHub Actions for that check. The other sections contain non-obvious details and should remain written down somewhere.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

except maybe the section "Ensure Compatibility"

Yes... and no. A sub-point of this is Fix incompatibilities if any. which we shall actually do if necessary. This is done of course Preferably on a fresh Windows VM with a dev environment using the new dependency versions. OK, admittedly in a real world we do 1) GHA 2) GHA complains :( 3) Ensure Compatibility, but this is fine (at least another construction area) IMAO.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The other sections contain non-obvious details and should remain written down somewhere.

But yes, in general you're absolutely right, see:

And our somewhere can stay the very same file, no need to change a running system.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are tasks that are exclusive to us. On top of that, private infrastructure is documented. So it's really not the right place to document this here. I would move this to our Windows packaging repo, which is undocumented at the moment. Then I would move #9762 there as well.

Copy link
Member

@Al2Klimov Al2Klimov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Counter-suggestion taking Julians requests into account:

Why not to just drop everything since 5. Package Builds ex. 8. GitHub Release?

Apart from the Windows-related notes, all instructions are common to our
releases and therefore do not need to be explicitly listed here. In
addition, most of the information was severely outdated, especially with
respect to how our packaging works.
Copy link
Member

@Al2Klimov Al2Klimov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To say it with grandmaster Torvalds: on the whole I don't hate it. HOWEVER.

TL;DR: either continue reading or look at

There is no difference.

Should be a good compromise between you and Julian's change request.

.github/ISSUE_TEMPLATE/release.md Show resolved Hide resolved
.github/ISSUE_TEMPLATE/release.md Show resolved Hide resolved
RELEASE.md Show resolved Hide resolved
RELEASE.md Show resolved Hide resolved
RELEASE.md Show resolved Hide resolved
RELEASE.md Show resolved Hide resolved
RELEASE.md Show resolved Hide resolved
RELEASE.md Show resolved Hide resolved
@Al2Klimov Al2Klimov added this to the 2.15.0 milestone Jul 27, 2023
We have dedicated repositories for packages, so this stuff is already
fragmented into visible and invisible. The docs can be fragmented the same
way. But then everything about this repo should be documented in this repo,
too. This just re-adds docs about the publicly visible stuff. Ex. the last
section, but it is easy to miss, so it's here.
Copy link
Member

@Al2Klimov Al2Klimov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The stuff mentioned above was my only actual complaint, so... 👍

@julianbrost julianbrost merged commit 756aa18 into master Jul 31, 2023
23 checks passed
@icinga-probot icinga-probot bot deleted the release.md branch July 31, 2023 14:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants