<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/rabbitmq-server-git.git/.gitignore, branch avoid-double-channel-count-decrease</title>
<subtitle>github.com: rabbitmq/rabbitmq-server.git
</subtitle>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/rabbitmq-server-git.git/'/>
<entry>
<title>Git: Ignore rabbitmq-deps.mk file</title>
<updated>2020-04-27T12:48:51+00:00</updated>
<author>
<name>Jean-Sébastien Pédron</name>
<email>jean-sebastien@rabbitmq.com</email>
</author>
<published>2020-04-27T12:44:19+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/rabbitmq-server-git.git/commit/?id=cb187384e6160c8ce7c36613efb3546ea23da619'/>
<id>cb187384e6160c8ce7c36613efb3546ea23da619</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Run checks &amp; tests in GitHub Actions on every push</title>
<updated>2020-04-22T15:31:56+00:00</updated>
<author>
<name>Gerhard Lazu</name>
<email>gerhard@lazu.co.uk</email>
</author>
<published>2020-03-06T14:40:47+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/rabbitmq-server-git.git/commit/?id=7b21733fc63fdf543e56c6445b4b7f9272ed8788'/>
<id>7b21733fc63fdf543e56c6445b4b7f9272ed8788</id>
<content type='text'>
- Separate workflows for min &amp; max supported OTP version
- Multiple groups for clustering_management (run in parallel &amp; finish quicker)
- Store CT logs as artefacts on failure
- Tests badge in README
- Store in S3 the version of the RabbitMQ components used while testing

We have decided to not not run tests for RabbitMQ components that we
depend on: rabbitmq-cli, rabbitmq-erlang-client &amp; rabbitmq-common.
rabbitmq-cli &amp; rabbitmq-erlang-client depend on rabbitmq-server
(recursive dependency) meaning that they will clone rabbitmq-server
again, inside the deps dir. We will continue to run these in Concourse,
until we merge all repositories into a single one. Let's be honest, it's
a monolith!

Signed-off-by: Gerhard Lazu &lt;gerhard@lazu.co.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Separate workflows for min &amp; max supported OTP version
- Multiple groups for clustering_management (run in parallel &amp; finish quicker)
- Store CT logs as artefacts on failure
- Tests badge in README
- Store in S3 the version of the RabbitMQ components used while testing

We have decided to not not run tests for RabbitMQ components that we
depend on: rabbitmq-cli, rabbitmq-erlang-client &amp; rabbitmq-common.
rabbitmq-cli &amp; rabbitmq-erlang-client depend on rabbitmq-server
(recursive dependency) meaning that they will clone rabbitmq-server
again, inside the deps dir. We will continue to run these in Concourse,
until we merge all repositories into a single one. Let's be honest, it's
a monolith!

Signed-off-by: Gerhard Lazu &lt;gerhard@lazu.co.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Git: Ignore copied CLI</title>
<updated>2019-12-12T12:27:04+00:00</updated>
<author>
<name>Jean-Sébastien Pédron</name>
<email>jean-sebastien@rabbitmq.com</email>
</author>
<published>2019-12-12T12:27:04+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/rabbitmq-server-git.git/commit/?id=ec7cae29f182b0bede9d431d04084f1d4f258827'/>
<id>ec7cae29f182b0bede9d431d04084f1d4f258827</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Move most of shell scripts to Erlang code</title>
<updated>2019-12-11T16:48:49+00:00</updated>
<author>
<name>Jean-Sébastien Pédron</name>
<email>jean-sebastien@rabbitmq.com</email>
</author>
<published>2019-05-15T14:27:51+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/rabbitmq-server-git.git/commit/?id=68c30553ccf306325a64b1fe6069e6bcc9c26b41'/>
<id>68c30553ccf306325a64b1fe6069e6bcc9c26b41</id>
<content type='text'>
A large part of the rabbitmq-server(8) and CLI scripts, both
Bourne-shell and Windows Batch versions, was moved to Erlang code and
the RabbitMQ startup procedure was reorganized to be closer to a regular
Erlang application.

A new application called `rabbitmq_prelaunch` is responsible for:

  1. Querying the environment variables to initialize important
     variables (using the new `rabbit_env` module in rabbitmq-common).
  2. Checking the compatibility with the Erlang/OTP runtime.
  3. Configuring Erlang distribution.
  5. Writing the PID file.

The application is started early (i.e. it is started before `rabbit`).

The `rabbit` application runs the second half of the prelaunch sequence
at the beginning of the application `start()` function. This second
phase is responsible for the following steps:

  1. Preparing the feature flags registry.
  2. Reading and validating the configuration.
  3. Configuring logging.
  4. Running the various cluster checks.

In addition to this prelaunch sequence, the `rabbit` application start
procedure ends with a "postlaunch" sequence which takes care of
starting enabled plugins.

Thanks to this, RabbitMQ can be started with `application:start(rabbit)`
as any other Erlang application. The only caveats are:

  * Mnesia must be stopped at the time `rabbit_prelaunch` is started,
    and must remain stopped when `rabbit` is started, to allow the
    Erlang distribution setup and cluster checks. `rabbit` takes care of
    starting Mnesia.

  * Likewise for Ra, because it relies on the `ra` application
    environment to be configured.

Transitioning from scripts to Erlang code has the following benefits:

  * RabbitMQ start behavior should be identical between Unix and
    Windows. Also, features should be on par now. For instance, RabbitMQ
    now writes a PID file on Windows, like it always did on Unix-based
    systems.

  * The difference between published packages and a development
    environment are greatly reduced. In fact, we removed all the "if
    this is a dev working copy, then ..." blocks.

    As part of that, the `rabbit` application is now treated like its
    plugins: it is packaged as an `.ez` archive and written to the
    `plugins` directory (even though it is not technically a plugin).

    Also in a development copy, the CLI is copied to the top-level
    project. So when testing a plugin for instance, the CLI to use is
    `sbin/rabbitmqctl` in the current directory, not the master copy in
    `rabbit/scripts`.

  * As a consequence of the previous two points, maintaining and testing
    on Windows is now made easy. It should even be possible to setup CI
    on Windows.

  * There are less issues with paths containing non-US-ASCII characters,
    which can happen on Windows because RabbitMQ stores its data in user
    directories by default.

This process brings at least one more benefit: we now have early logging
during this prelaunch phase, which eases diagnostics and debugging.

There are also behavior changes:

  * The new format configuration files used to be converted to an
    Erlang-term-based file by the Cuttlefish CLI. To do that,
    configuration schemas were copied to a temporary directory and the
    generated configuration file was written to RabbitMQ data directory.

    Now, Cuttlefish is used as a library: everything happens in memory.
    No schemas are copied, no generated configuration is written to
    disk.

  * The PID file is removed when the Erlang VM exits.

  * The `rabbit_config` module was trimmed significantly because most of
    the configuration handling is done in `rabbit_prelaunch_conf` now.

  * The RabbitMQ nodename does not appear on the command line, therefore
    it is missing from ps(1) and top(1) output.

  * The `rabbit:start()` function will probably behave differently in
    some ways because it defers everything to the Erlang application
    controller (instead of reimplementing it).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A large part of the rabbitmq-server(8) and CLI scripts, both
Bourne-shell and Windows Batch versions, was moved to Erlang code and
the RabbitMQ startup procedure was reorganized to be closer to a regular
Erlang application.

A new application called `rabbitmq_prelaunch` is responsible for:

  1. Querying the environment variables to initialize important
     variables (using the new `rabbit_env` module in rabbitmq-common).
  2. Checking the compatibility with the Erlang/OTP runtime.
  3. Configuring Erlang distribution.
  5. Writing the PID file.

The application is started early (i.e. it is started before `rabbit`).

The `rabbit` application runs the second half of the prelaunch sequence
at the beginning of the application `start()` function. This second
phase is responsible for the following steps:

  1. Preparing the feature flags registry.
  2. Reading and validating the configuration.
  3. Configuring logging.
  4. Running the various cluster checks.

In addition to this prelaunch sequence, the `rabbit` application start
procedure ends with a "postlaunch" sequence which takes care of
starting enabled plugins.

Thanks to this, RabbitMQ can be started with `application:start(rabbit)`
as any other Erlang application. The only caveats are:

  * Mnesia must be stopped at the time `rabbit_prelaunch` is started,
    and must remain stopped when `rabbit` is started, to allow the
    Erlang distribution setup and cluster checks. `rabbit` takes care of
    starting Mnesia.

  * Likewise for Ra, because it relies on the `ra` application
    environment to be configured.

Transitioning from scripts to Erlang code has the following benefits:

  * RabbitMQ start behavior should be identical between Unix and
    Windows. Also, features should be on par now. For instance, RabbitMQ
    now writes a PID file on Windows, like it always did on Unix-based
    systems.

  * The difference between published packages and a development
    environment are greatly reduced. In fact, we removed all the "if
    this is a dev working copy, then ..." blocks.

    As part of that, the `rabbit` application is now treated like its
    plugins: it is packaged as an `.ez` archive and written to the
    `plugins` directory (even though it is not technically a plugin).

    Also in a development copy, the CLI is copied to the top-level
    project. So when testing a plugin for instance, the CLI to use is
    `sbin/rabbitmqctl` in the current directory, not the master copy in
    `rabbit/scripts`.

  * As a consequence of the previous two points, maintaining and testing
    on Windows is now made easy. It should even be possible to setup CI
    on Windows.

  * There are less issues with paths containing non-US-ASCII characters,
    which can happen on Windows because RabbitMQ stores its data in user
    directories by default.

This process brings at least one more benefit: we now have early logging
during this prelaunch phase, which eases diagnostics and debugging.

There are also behavior changes:

  * The new format configuration files used to be converted to an
    Erlang-term-based file by the Cuttlefish CLI. To do that,
    configuration schemas were copied to a temporary directory and the
    generated configuration file was written to RabbitMQ data directory.

    Now, Cuttlefish is used as a library: everything happens in memory.
    No schemas are copied, no generated configuration is written to
    disk.

  * The PID file is removed when the Erlang VM exits.

  * The `rabbit_config` module was trimmed significantly because most of
    the configuration handling is done in `rabbit_prelaunch_conf` now.

  * The RabbitMQ nodename does not appear on the command line, therefore
    it is missing from ps(1) and top(1) output.

  * The `rabbit:start()` function will probably behave differently in
    some ways because it defers everything to the Erlang application
    controller (instead of reimplementing it).
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'stable'</title>
<updated>2017-09-23T19:37:07+00:00</updated>
<author>
<name>Michael Klishin</name>
<email>mklishin@pivotal.io</email>
</author>
<published>2017-09-23T19:37:07+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/rabbitmq-server-git.git/commit/?id=065c849786dfa916f3b1d06513636398d06ecb47'/>
<id>065c849786dfa916f3b1d06513636398d06ecb47</id>
<content type='text'>
Conflicts:
	src/rabbit_queue_location_random.erl
	test/queue_master_location_SUITE.erl
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conflicts:
	src/rabbit_queue_location_random.erl
	test/queue_master_location_SUITE.erl
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix test for ha-mode exactly. Requires sync-ing the queues to ensure slave pids are started</title>
<updated>2017-09-22T18:23:33+00:00</updated>
<author>
<name>Luke Bakken</name>
<email>lbakken@pivotal.io</email>
</author>
<published>2017-09-21T21:14:55+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/rabbitmq-server-git.git/commit/?id=686d90c088e72ac9e2cc831c6e5bc43b028aa805'/>
<id>686d90c088e72ac9e2cc831c6e5bc43b028aa805</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Handle suggested_queue_nodes output when slave nodes are empty</title>
<updated>2017-09-22T18:23:33+00:00</updated>
<author>
<name>Luke Bakken</name>
<email>lbakken@pivotal.io</email>
</author>
<published>2017-09-21T15:20:37+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/rabbitmq-server-git.git/commit/?id=cfec7c2d0fc009a40d2b545daa4fd70d636e087f'/>
<id>cfec7c2d0fc009a40d2b545daa4fd70d636e087f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Ignore callgraph.dot*</title>
<updated>2017-06-27T15:43:54+00:00</updated>
<author>
<name>Michael Klishin</name>
<email>michael@clojurewerkz.org</email>
</author>
<published>2017-06-27T15:43:54+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/rabbitmq-server-git.git/commit/?id=13bd0be01c28137c97ff187e2dcc6ada8023eeab'/>
<id>13bd0be01c28137c97ff187e2dcc6ada8023eeab</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Ignore more tracing tool artifacts</title>
<updated>2017-05-21T09:18:04+00:00</updated>
<author>
<name>Michael Klishin</name>
<email>mklishin@pivotal.io</email>
</author>
<published>2017-05-21T09:18:04+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/rabbitmq-server-git.git/commit/?id=e118297eab361ff3fbb023f49c2131e4a617a253'/>
<id>e118297eab361ff3fbb023f49c2131e4a617a253</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>docs: Convert manpages from DocBook to mdoc(7)</title>
<updated>2017-04-26T16:24:27+00:00</updated>
<author>
<name>Jean-Sébastien Pédron</name>
<email>jean-sebastien@rabbitmq.com</email>
</author>
<published>2017-04-25T08:50:00+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/rabbitmq-server-git.git/commit/?id=c0af14ba3b98d4e028274fa326144223cb508b5c'/>
<id>c0af14ba3b98d4e028274fa326144223cb508b5c</id>
<content type='text'>
Writing those manpages directly in the target markup language allows to
use its full expressiveness, unlike the generated output from DocBook.

To create their HTML versions, we use mandoc(1), plus a small awk script
to adapt the generated HTML to our needs. I tried groff(1) and
man2html(1) but the former transforms nearly everything to simple &lt;p&gt;
and the later tries to reproduce the rendering of a manpage in a
terminal.

Manpages in section 1 are moved to section 8 because they are commands
to manage a system service, not general purpose commands.

This commits requires a change in the website to integrate the new
generated HTML manpages.

[#143563295]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Writing those manpages directly in the target markup language allows to
use its full expressiveness, unlike the generated output from DocBook.

To create their HTML versions, we use mandoc(1), plus a small awk script
to adapt the generated HTML to our needs. I tried groff(1) and
man2html(1) but the former transforms nearly everything to simple &lt;p&gt;
and the later tries to reproduce the rendering of a manpage in a
terminal.

Manpages in section 1 are moved to section 8 because they are commands
to manage a system service, not general purpose commands.

This commits requires a change in the website to integrate the new
generated HTML manpages.

[#143563295]
</pre>
</div>
</content>
</entry>
</feed>
