Commit Graph

49 Commits

Author SHA1 Message Date
Michael Stapelberg
6fe33394e1 post-release release.sh changes 2021-11-03 09:14:58 +01:00
Ingo Bürk
a0938bd606
Update docs to Discussions (#4503) 2021-09-10 09:18:01 +02:00
Michael Stapelberg
4b1ea08eef
release.sh and release notes changes post-release (#4258) 2020-11-15 19:22:09 +01:00
Michael Stapelberg
4085c4be3b
the stable version can now be found in the stable branch (#4129)
fixes #4127
2020-06-15 12:00:24 +02:00
Michael Stapelberg
aba6ec3e52
add meson build files (#4094)
Motivation:

• faster builds (on an Intel Core i9-9900K):
  ( ../configure --disable-sanitizers && make -j8; )
  19,47s user 2,78s system 395% cpu 5,632 total

  ( meson .. -Dmans=true -Ddocs=true -Dprefix=/usr && ninja; )
  38,67s user 3,73s system 1095% cpu 3,871 total

• more approachable build system configuration in the
  python-esque meson domain specific language instead of
  the autotools m4 macro language

• built-in language server support thanks to ninja:
  the required compile_commands.json is built automatically
  and only needs to be linked from the source dir, e.g.:
  ln -s build/compile_commands.json .

Changes:

• the embedded vcs version info format changed from e.g.
  4.18-282-gabe46f69 (2020-05-16, branch "next")
  to:
  4.18-282-gabe46f69
  I think it’s better to lose a little bit of detail for
  the gained cleanliness of using meson’s vcs_tag()

• Drop unused xcb-event dependency.

• We can no longer enable sanitizers and debug options
  based on whether we are in a release or non-release build,
  because our new version logic runs at ninja build time,
  not at meson configure time.

  The new behavior is probably for the better in terms of
  what people expect, and we can make the CI use address sanitizer
  explicitly to ensure it is still exercised.

• We lose the AX_EXTEND_SRCDIR behavior, i.e. including the
  path component of the parent of the source dir in all paths.
  This was a trick we used for easier debugging, so that stack
  traces would contain e.g. ../i3-4.18.1/src/main.c, instead of
  just src/main.c.

  The other mechanism (_i3_version symbol) that we have for including
  the version number in the “backtrace full” (but not merely
  “backtrace”) output of gdb still works.

• Release tarballs now use tar.xz. Why not.

Migration plan

This commit adds the meson build files to the tree, but does not remove
autotools yet. For the development phase, we will keep both build systems
functional (and built on travis).

Then, just before the i3 v4.19 release, we will remove autotools from the tree
and the release tarball will require meson to compile.

This way, we incentivize maintainers to change, while also offering them an easy
way out (if desired) by reverting the most recent commit. In practice, switching
a distribution package from autotools to meson should only be a few line change,
easier than applying the provided patch :). Take a look at the debian/ changes
in this commit for an example.

meson is broadly available everywhere that i3 is available: Both xorg-server and
systemd gained meson build files in 2017, so we can follow suit:
https://anholt.livejournal.com/52574.html
https://in.waw.pl/~zbyszek/blog/systemd-meson.html

How do I?

For producing a coverage report, enable the b_coverage meson base option
and run ninja coverage-html:
% cd build
% meson .. -Db_coverage=true
% ninja
% ninja test
% ninja coverage-html
See also https://mesonbuild.com/howtox.html#producing-a-coverage-report

For using the address sanitizer, memory sanitizer or undefined behavior
sanitizer, use the b_sanitize meson base option:
% cd build
% meson .. -Db_sanitize=address
% ninja
See also https://mesonbuild.com/Builtin-options.html#base-options

related to #4086
2020-05-19 14:45:06 +02:00
Michael Stapelberg
8f0b92cae2 release.sh: update versions 2020-04-22 09:33:11 +02:00
Michael Stapelberg
c4ffc0f5e1 release.sh: docker build: use --no-cache
This avoids issues with stale caches. We rather don’t use caching at all:
release.sh is only run once per release.
2020-04-22 09:32:38 +02:00
Michael Stapelberg
f5ab2c919f release.sh: use diff --color
colordiff is no longer necessary, and not installed on many systems.
2020-04-22 09:32:22 +02:00
Michael Stapelberg
840d9202d1 release.sh changes for v4.17 2019-08-03 15:29:04 +02:00
Michael Stapelberg
3a3f0f18e6 release.sh: save docs first
Otherwise, as @orestisf1993 pointed out, the saved documentation will have the
wrong version number.
2018-11-05 19:32:29 +01:00
Michael Stapelberg
86bcb21dbc update release.sh for the 4.16 release 2018-11-04 15:07:24 +01:00
Michael Stapelberg
a05ba370cd update release.sh after release 2018-03-10 18:53:20 +01:00
Michael Stapelberg
c74dd61f59 release: new-enough dput no longer needs an explicit file name 2018-03-10 18:53:04 +01:00
Michael Stapelberg
a07980f70b release: also build a Debian source-only upload 2018-03-10 18:52:50 +01:00
Michael Stapelberg
8513107f09 release: disable git’s rename protection (prevented merging) 2018-03-10 18:52:27 +01:00
Michael Stapelberg
89d6287110 update debian/changelog and release.sh after release (#2987) 2017-09-25 09:04:31 +02:00
Ingo Bürk
f2ffd8d864 Added instructions to update Github milestones after release. (#2561) 2016-11-21 12:41:43 -08:00
Michael Stapelberg
0dd9d2202f release.sh: update for v4.13 release (#2582) 2016-11-21 03:16:06 -08:00
Michael Stapelberg
6e519e18e1 release.sh: add reminder to announce on reddit (#2553) 2016-11-10 00:25:30 -08:00
Michael Stapelberg
05e5901bca generate asciidoc.conf via autoconf
…instead of updating it in release.sh.
2016-10-23 21:09:24 +02:00
Michael Stapelberg
7b2d734463 Update release.sh for autotools 2016-10-23 21:09:24 +02:00
eplanet
b668d62cfc Deleting VERSION and extracting it from I3_VERSION instead (#2419) 2016-08-13 13:46:27 -07:00
Johannes Lange
808bad10ef auto-creating (I3_)VERSION for each release and post-release version files
with 'non-git' suffix

fixes #1993
2016-04-07 19:12:21 +02:00
Michael Stapelberg
ab2d46b65b release.sh: clone from canonical location
This ensures the repository is up-to-date (in all branches!), hopefully
preventing merge mistakes such as the one fixed with
0e29101ae5
2016-03-06 17:02:12 +01:00
Michael Stapelberg
efff2361cb release.sh: update i3-announce mailing list address 2016-03-06 16:31:11 +01:00
Michael Stapelberg
cb4235706f update release.sh for the 4.12 release 2016-03-06 16:27:49 +01:00
Till Maas
913fb60a6a Use https if possible
git:// and http:// do not protect the integrity of the accessed data.
Therefore use https instead.
2015-11-19 13:32:35 +01:00
Michael Stapelberg
2c4fd56069 update release.sh for 4.11 release 2015-09-30 09:06:34 +02:00
Michael Stapelberg
c9b6ec71aa update release.sh for 4.10.4 release 2015-09-08 09:27:59 +02:00
Michael Stapelberg
ad826f06da release.sh: pull website repository before 2015-07-30 22:45:23 +02:00
Michael Stapelberg
5ee679c514 release.sh: the mailing list part is done automatically 2015-07-30 22:43:34 +02:00
Michael Stapelberg
8c116e228b release.sh: replace version in _docs/debugging at the right time 2015-07-30 22:26:45 +02:00
Michael Stapelberg
c493cde96e release.sh: bugfix: take docs from tmpdir, not startdir 2015-07-30 22:21:48 +02:00
Michael Stapelberg
5a20394092 release.sh: commit modified debian/changelog
Otherwise, we cannot switch branches.
2015-07-30 22:16:01 +02:00
Michael Stapelberg
e362c3cf30 release.sh: 4.10.3 release 2015-07-30 22:07:51 +02:00
Michael Stapelberg
f87a78e1a9 release.sh: tell git to prefer “next” when merging 2015-07-30 22:07:13 +02:00
Ingo Bürk
798e654af7 Adapt release.sh to update the latest version in the debugging docs. 2015-04-20 19:17:42 +02:00
Michael Stapelberg
923a61ae37 release.sh: add missing -t parameter for sendmail 2015-04-16 09:22:01 +02:00
Michael Stapelberg
d05e9df0a1 release.sh: add missing commit step for debian changelog 2015-04-16 09:22:01 +02:00
Michael Stapelberg
e382a8bbbb release.sh: fix encoding and concatenating changelog 2015-04-16 09:22:00 +02:00
Michael Stapelberg
25afa30f87 release.sh: set up master branch for pushing the website 2015-04-16 09:22:00 +02:00
Michael Stapelberg
57c56b2999 release.sh: checkout correct branch before copying docs 2015-04-16 09:22:00 +02:00
Michael Stapelberg
d9f483e946 release.sh: 4.10.2 release 2015-04-16 09:22:00 +02:00
Michael Stapelberg
3163ca3385 release.sh: add release announcement email to avoid mistakes 2015-03-29 19:34:33 +02:00
Michael Stapelberg
fe8003ef4f release.sh: set up git remotes appropriately 2015-03-29 19:22:29 +02:00
Michael Stapelberg
aef495faba prepare release.sh for 4.10.1 2015-03-29 18:53:55 +02:00
Michael Stapelberg
9515cb0713 release from “next” 2015-03-29 18:53:55 +02:00
Michael Stapelberg
b8057392c4 update release.sh for the next version 2015-03-29 17:45:46 +02:00
Michael Stapelberg
10a58725cd add release.sh, a script to prepare a new i3 release 2015-03-07 20:37:34 +01:00