Commit Graph
18 Commits
Author SHA1 Message Date
Vincent Ambo 29c320f9a6 doc: Include function doc generation in Makefile
Since #53055 was merged the Makefile for the manual could not be run
correctly as the generated function documentation was included, but
not actually generated.

This adds the necessary generation step by first building the XML file
containing function locations and preserving its store path in a
variable, which is then used both for linking of the locations file
and as a build input for the function docs generator.

This fixes #55014
2019-02-01 11:45:30 +01:00
Vincent Ambo 0c99dac497 doc: Add automatic generation of library function documentation
Modifies the build process of the manual to invoke nixdoc
automatically to generate XML files with function documentation.

Currently documentation is present for five of the files in `lib/`.

To add another file to the generated docs, both
`doc/functions/library.xml` and `doc/lib-function-docs.nix` must be
updated.
2019-01-04 11:28:27 +01:00
Vincent Ambo d5ea09758d nixos/journaldriver: import module in top-level module list
Imports the `journaldriver` module into the top-level NixOS module
list to make it usable without extra work.

This went unnoticed in #42134 (mostly because my setup imports modules
explicitly from pinned versions).

Fixes #50390
2018-11-15 11:02:55 +01:00
Vincent Ambo 2384966880 lib/options: Update documentation comments for docs generation
Documents functions in `lib.options` for docs generation with nixdoc.

The formatting change in the `mkOption` arguments is due to the way
`nixdoc` parses documentation comments on pattern arguments. It's not
ideal, but it works.
2018-10-29 10:45:28 +01:00
Vincent Ambo da18b92635 lib/debug: Update documentation comments for docs generation
Documents functions in `lib.debug` for docs generation with nixdoc.

Note that type signatures and clearer descriptions are still missing
on some of these functions, but this is good enough for a first run.
2018-10-29 10:45:25 +01:00
Vincent Ambo 65f50a9bb0 lib/lists: Update documentation comments for doc generation
Updates documentation comments with extra information for nixdoc[1]
compatibility.

[1]: https://github.com/tazjin/nixdoc
2018-10-29 10:42:43 +01:00
Vincent Ambo 0560caa578 lib/strings: Update documentation comments for doc generation
Updates documentation comments with extra information for nixdoc[1]
compatibility.

Some documentation strings have additionally been reworded for
clarity.

"Faux types" are added where applicable, but some functions do things
that are not trivially representable in the type notation used so they
were ignored for this purpose.

[1]: https://github.com/tazjin/nixdoc
2018-10-29 10:42:43 +01:00
Vincent Ambo f03929f649 nixdoc: init at 1.0.1
Adds nixdoc, a tool to generate documentation for Nix functions in the
standard library.

See #49275 for some background information.
2018-10-28 22:17:16 +00:00
Vincent Ambo c2a744b9af lib/trivial: Update function comments for doc generation
Expands on some of the function comments and add some of the
special syntaxes recognised by nixdoc.
2018-10-27 16:40:40 +02:00
Vincent Ambo 5b748bd8fa nixos/datadog-agent: Add option to configure datadog integrations
Introduces an option `services.datadog-agent.extraIntegrations` that
can be set to include additional Datadog agent integrations from the
integrations-core repository.

Documentation and an example is provided with the change.

Relates to NixOS/nixpkgs#40399
2018-08-09 17:25:23 +02:00
Vincent Ambo 924016f45f dd-agent: Simplify inclusion of additional Datadog core integrations
Refactors the process used to build the Datadog core integrations to
be more easily extensible with integrations other than the ones built
and installed by default.

Documentation has been added in relevant parts of the module to
describe how the process works.

As a high-level overview:

The `datadog-integrations-core` attribute in the top-level package set
now accepts an extra parameter.

This parameter is an attribute set where each key is the name of a
Datadog integration as it appears in Datadog's integrations-core
repository[1], and the value is a function that receives the Python
package set and returns the required dependencies of this integration.

For example:

    datadog-integrations-core {
      ntp = (ps: [ ps.ntplib ]);
    };

This would build the default integrations and, additionally, the `ntp`
integration.

To support passing the modified Python environment to the
datadog-agent itself, the `python` key has been moved inside of the
derivation which means that it will be made overridable.

This relates to NixOS/nixpkgs#40399.

[1]: https://github.com/DataDog/integrations-core
2018-08-09 17:25:23 +02:00
Vincent Ambo 5a07bb2fc7 nixos/datadog-agent: Refactor to allow arbitrary check configs
Refactors the datadog-agent (i.e. V6) module to let users configure
arbitrary checks, not just a limited set, without having to resort to
linking the files manually and updating the systemd unit.

Checks are now configured via a `services.datadog-agent.checks` option
which takes an attribute set in which the keys refer directly to
Datadog check names, and the values are attribute sets representing
Datadog's configuration structure.

With this mechanism users can configure arbitrary integrations, for
example for the `ntp`-check, simply by saying:

    services.datadog-agent.checks.ntp = {
      init_config = null;
      # ... other check configuration options as per Datadog
      # documentation
    };

The previous check-specific configuration options for non-default
checks have been removed. Disk & network check configuration options
have been kept rather than making them a `default`-value of the
`checks`-option because they will be overridden by user-configurations
in that case.

Relates to NixOS/nixpkgs#40399.
2018-08-09 17:25:23 +02:00
Vincent Ambo 74ca35bd81 hex2nix: 0.0.6 -> 0.0.6-a31eadd7
Updates hex2nix to a new version that includes pinned dependencies.
This allows building hex2nix even if newer versions of dependencies
than what is packaged in `hex-packages.nix` are available in the
package snapshot.

The version of ibrowse used has been downgraded due to an issue in the
library. Custom builds of the ibrowse and jsx dependencies have been
removed from the derivation.
2018-07-14 20:05:54 +02:00
Vincent Ambo 0cf4c90469 rebar3: 3.4.3 -> 3.6.1
Updates rebar3 to version 3.6.1, which amongst other things introduces
support for rebar3 on Erlang/OTP 21.

Changes made:

* rebar3 and dependencies updated to new versions
* rebar3 hermeticity patch updated to apply against new version
* hex package registry snapshot updated
2018-07-14 20:05:53 +02:00
Vincent Ambo 59e5aabee6 nixos/journaldriver: add module for journaldriver log forwarder
Adds a module for running the journaldriver log forwarding agent via
systemd.

The agent can be deployed on both GCP instances and machines hosted
elsewhere to forward all logs from journald to Stackdriver Logging.

Consult the module options and upstream documentation for more
information.

Implementation notes:

* The service unit is configured to use systemd's dynamic user feature
  which will let systemd set up the state directory and appropriate
  user configuration at unit launch time instead of hardcoding it.

* The module depends on `network-online.target` to prevent a situation
  where journaldriver is failing and restarting multiple times before
  the network is online.
2018-06-18 20:36:44 +02:00
Vincent Ambo 1b08966db9 journaldriver: init at 1.0.0 2018-06-18 20:31:45 +02:00
Vincent Ambo f4c87183df nixos/dd-agent: fix runtime errors by adding gohai to $PATH
The Datadog agent requires `gohai` to be available on its `$PATH` in
order to collect certain metrics.

It would previously start up and collect certain types of metrics, but
log errors related to the missing gohai binary.

This commit configures the systemd-unit to make gohai available at
runtime.

This fixes #39810.
2018-05-24 10:58:28 +02:00
Vincent Ambo ab500439cd gohai: init at 2018-05-23
This project does not have a default versioning scheme. go2nix
suggests using the date of the most recent change.
2018-05-24 10:56:44 +02:00