Skip to content
This repository has been archived by the owner on Feb 27, 2024. It is now read-only.

Commit

Permalink
Merge pull request #41 from NixOS/master
Browse files Browse the repository at this point in the history
2018/01 weekly newsletter, collecting content
  • Loading branch information
garbas authored Jan 9, 2018
2 parents 7174bd9 + 0d31a13 commit e25c085
Show file tree
Hide file tree
Showing 12 changed files with 401 additions and 26 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ script:
echo "SITEURL = 'http://weekly.nixos.org'" >> pelicanconf.py;
echo "WITH_FUTURE_DATES = True" >> pelicanconf.py;
fi
- nix-build default.nix;
- nix-build -Q default.nix;

after_success:
- env
Expand Down
151 changes: 151 additions & 0 deletions content/2018/01-phoenixes-burst-into-flame.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
#01 - Phoenixes burst into flame ...
####################################

:date: 2018-01-08
:description: ... when it is time for them to die and are reborn from the
ashes. (J.K. Rowling, Harry Potter and the Chamber of Secrets)

The phoenix is a long-lived fiery bird that is present in many different
mythologies from around the world. When a phoenix “dies”, it does so by
combustion and is reborn of the ashes left behind. It rises from its own ashes,
in the freshness of youth, to live through another cycle of years. So in
a sense, it never truly dies, but regenerates itself and lives forever. Just
like this weekly newsletter.

Welcome to the 2018 NixOS “Weekly” newsletter.

We are back and hope to produce more of them this year then we did last year.
As always contributions are more then welcome. The more people help shape this
newsletter the more accurate it will be.


News
====

- NixCon 2017 In Munich

If you haven't heard there was a NixOS conference. It was a blast. You can
read a short `overview of the talks`_ or go ahead and `watch them`_.

Anybody knows where NixCon 2018 is going to be? :)

- `Meltdown and Spectre patches for NixOS`_

.. _`overview of the talks`: http://techblog.holidaycheck.com/post/2017/10/31/nixcon2017
.. _`watch them`: https://www.youtube.com/watch?v=6esAi2OxULo&list=PLgknCdxP89ReQzhfKwMYjLdwWsc7us8ns
.. _`Meltdown and Spectre patches for NixOS`: https://github.com/NixOS/nixpkgs/issues/33414


Jobs
====

- `IOHK is hiring SRE with Nix/Haskell knowledge`_


.. _`IOHK is hiring SRE with Nix/Haskell knowledge`: https://iohk.io/careers/#op-144226-devops-engineer


Reading
=======

- `Building Static Haskell Binaries with Nix`_

- `Bypassing NPM's content addressable cache in Nix deployments and generating
expressions from lock files`_

- `Controlling a Hydra server from a Node.js application`_

- `nixcloud-webservices-tests`_ and `nixcloud-webservices`_

- `NixOS: The DOs and DON’Ts of nixpkgs overlays`_

- `Creating custom object transformations with NiJS and PNDP`_

- `Announcing fc-userscan`_

- `Deploying PHP composer packages with the Nix package manager`_

- `Share scripts that have dependencies with Nix`_


.. _`Building Static Haskell Binaries with Nix`: http://vaibhavsagar.com/blog/2018/01/03/static-haskell-nix/
.. _`Bypassing NPM's content addressable cache in Nix deployments and generating expressions from lock files`: http://sandervanderburg.blogspot.de/2017/12/bypassing-npms-content-addressable.html
.. _`Controlling a Hydra server from a Node.js application`: http://sandervanderburg.blogspot.de/2017/12/controlling-hydra-server-from-nodejs.html
.. _`nixcloud-webservices-tests`: https://lastlog.de/blog/posts/nixcloud-webservices-tests.html
.. _`nixcloud-webservices`: https://lastlog.de/blog/posts/nixcloud-webservices.html
.. _`NixOS: The DOs and DON’Ts of nixpkgs overlays`: https://blog.flyingcircus.io/2017/11/07/nixos-the-dos-and-donts-of-nixpkgs-overlays/
.. _`Creating custom object transformations with NiJS and PNDP`: http://sandervanderburg.blogspot.de/2017/11/creating-custom-object-transformations.html
.. _`Announcing fc-userscan`: https://blog.flyingcircus.io/2017/10/04/announcing-fc-userscan/
.. _`Deploying PHP composer packages with the Nix package manager`: http://sandervanderburg.blogspot.de/2017/10/deploying-php-composer-packages-with.html

.. _`Share scripts that have dependencies with Nix`: https://compiletoi.net/share-scripts-that-have-dependencies-with-nix/


Tooling
=======

- `nix-diff`_ - A small utility for comparing Nix derivations

- `nix-delegate`_ - A command-line utility that you can use to run a subcommand
with distributed builds transiently enabled.

- `nix-deploy`_ - Deploy software or an entire NixOS system configuration to
another NixOS system.

- `nix-bash-completions`_ - Bash completion for the Nix command line tools.

- `nix-zsh-completions`_ - ZSH completion for the Nix command line tools.

- `fc-userscan`_ - Scans directories containing manually compiled programs and
registers them with the Nix garbage collector.

- `elm2nix`_ - Convert Elm project into Nix expressions.

- `stack2nix`_ - Generate nix expressions for Haskell projects.

- `node2nix`_ - New version providing initial support for NPM 5.x (that is
included with Node.js 8.x)

- `node-hydra-connector`_ - New API/tool to integrate Node.js applications with
the Hydra continuous integration service and a CLI tool that can be used to
control a server.

- `composer2nix`_ - Generate Nix expressions to build PHP composer packages.

- `mkShell`_ - For nix-shell-only scenarios, mkShell is a small convenience
function in nixpkgs.

.. _`nix-diff`: http://www.haskellforall.com/2017/11/compare-nix-derivations-using-nix-diff.html
.. _`nix-delegate`: https://github.com/awakesecurity/nix-delegate
.. _`nix-deploy`: https://github.com/awakesecurity/nix-deploy#readme
.. _`nix-bash-completions`: https://github.com/hedning/nix-bash-completions
.. _`nix-zsh-completions`: https://github.com/spwhitt/nix-zsh-completions
.. _`fc-userscan`: https://github.com/flyingcircusio/userscan
.. _`elm2nix`: https://github.com/domenkozar/elm2nix
.. _`stack2nix`: https://github.com/input-output-hk/stack2nix
.. _`node2nix`: https://www.npmjs.com/package/node2nix
.. _`node-hydra-connector`: https://github.com/svanderburg/node-hydra-connector
.. _`composer2nix`: https://github.com/svanderburg/composer2nix
.. _`mkShell`: https://github.com/NixOS/nixpkgs/pull/30975



Events / Meetups
================

- January, 09, 2018 - Berlin, Germany

`Regular NixOS Meetup @c-base`_

.. _`Regular NixOS Meetup @c-base`: https://www.meetup.com/Berlin-NixOS-Meetup/events/qwlrrnyxcbmb/


Contribute
==========

You can help shape NixOS Weekly Newsletter too! Create or comment on the `pull
request`_ for the next edition or loot at the `issue tracker`_ to add other
improvements.

.. _`pull request`: https://github.com/NixOS/nixos-weekly/pulls
.. _`issue tracker`: https://github.com/NixOS/nixos-weekly/issues
9 changes: 3 additions & 6 deletions default.nix
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
let
_pkgs = import <nixpkgs> {};
in
{ pkgs ? import (_pkgs.fetchFromGitHub (_pkgs.lib.importJSON ./nixpkgs.json)) {}
, pkgs-python ? import (_pkgs.fetchFromGitHub (_pkgs.lib.importJSON ./nixpkgs-python.json)) { inherit pkgs; }
#, pkgs-python ? import ./../nixpkgs-python { inherit pkgs; }
let importFromGithub = import ./importFromGithub.nix; in
{ pkgs ? importFromGithub ./nixpkgs.json {}
, pkgs-python ? importFromGithub ./nixpkgs-python.json { inherit pkgs; }
}:

pkgs.stdenv.mkDerivation {
Expand Down
61 changes: 61 additions & 0 deletions importFromGithub.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
file:

let

fetchFromGithub =
# from https://nixos.wiki/wiki/How_to_fetch_Nixpkgs_with_an_empty_NIX_PATH
{ rev # The Git revision of nixpkgs to fetch
, sha256 # The SHA256 of the downloaded data
, owner ? "NixOS"
, repo ? "nixpkgs"
, system ? builtins.currentSystem # This is overridable if necessary
}:

with {
ifThenElse = { bool, thenValue, elseValue }: (
if bool then thenValue else elseValue);
};

ifThenElse {
bool = (0 <= builtins.compareVersions builtins.nixVersion "1.12");

# In Nix 1.12, we can just give a `sha256` to `builtins.fetchTarball`.
thenValue = (
builtins.fetchTarball {
url = "https://github.com/${owner}/${url}/archive/${rev}.tar.gz";
inherit sha256;
});

# This hack should at least work for Nix 1.11
elseValue = (
(rec {
tarball = import <nix/fetchurl.nix> {
url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz";
inherit sha256;
};

builtin-paths = import <nix/config.nix>;

script = builtins.toFile "nixpkgs-unpacker" ''
"$coreutils/mkdir" "$out"
cd "$out"
"$gzip" --decompress < "$tarball" | "$tar" -x --strip-components=1
'';

nixpkgs = builtins.derivation {
name = "nixpkgs-${builtins.substring 0 6 rev}";

builder = builtins.storePath builtin-paths.shell;

args = [ script ];

inherit tarball system;

tar = builtins.storePath builtin-paths.tar;
gzip = builtins.storePath builtin-paths.gzip;
coreutils = builtins.storePath builtin-paths.coreutils;
};
}).nixpkgs);
};

in import (fetchFromGithub (builtins.fromJSON (builtins.readFile file)))
5 changes: 2 additions & 3 deletions nixpkgs-python.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
{
"owner": "garbas",
"repo": "nixpkgs-python",
"rev": "22ddf08f77e50eb3e4d239fb62d18b8863f3abbe",
"sha256": "0ksy4pb7ydw4g5lyz1cbrsdyxrddxrxrd3hp15wads93gyiyp3c7"
"rev": "000e638ab79687130ef5088df975be6bc9507150",
"sha256": "11i215j0s0smi25yws74h2m2b84jpf89nj0m63smy1hv39gf28lr"
}

5 changes: 2 additions & 3 deletions nixpkgs.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
{
"owner": "NixOS",
"repo": "nixpkgs-channels",
"rev": "183eeb3c0fdac8de3146aedaa6028b474f96db6f",
"sha256": "1w6iszk02pfl1grarl9jhf8jn3g3hdj32grirkw6kvmrr5p7m4dx"
"rev": "ade98dc442ea78e9783d5e26954e64ec4a1b2c94",
"sha256": "047p5n3dk460s940ms8bih0i0dqmy4nlw0ylz9ysni97jk2xdpwk"
}

18 changes: 17 additions & 1 deletion pelicanconf.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,11 @@
PATH = 'content/'
SITENAME = 'NixOS Weekly'
SITEURL = 'http://weekly.nixos.org'
STATIC_PATHS = ['2017/images']
STATIC_PATHS = ['2017/images','2018/images']
WITH_FUTURE_DATES = False
SLUGIFY_SOURCE = 'basename'
#PLUGIN_PATHS = ['theme/plugins']
#PLUGINS = ['featured_image']


# URL settings
Expand Down Expand Up @@ -79,3 +81,17 @@
# Themes

THEME = 'theme'


# Jinja

def group_articles_by_year(articles):
groupped = {}
for article in articles:
groupped.setdefault(article.date.year, [])
groupped[article.date.year].append(article)
return sorted(groupped.items(), key=lambda x: x[0], reverse=True)

JINJA_FILTERS = {
'group_articles_by_year': group_articles_by_year,
}
102 changes: 102 additions & 0 deletions template.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
#(TODO: NUM) - (TODO: title)
############################

:date: (TODO: DATE in YYYY-MM-DD format)
:description: (TODO: QUOTE)

(TODO: optional, introduction text, as an editor this is your space to express
opinions :P)


.. ------------------------------------------------------------------------------
.. News - Special items that happen in community
.. ------------------------------------------------------------------------------
News
====

.. Example
- News item title `with link`_

News item description (optional)


.. _`with link`: http://example.com
.. ------------------------------------------------------------------------------
.. ------------------------------------------------------------------------------
.. Jobs - list of available Nix related jobs
.. ------------------------------------------------------------------------------
Jobs
====

.. Example
- `link to job`_


.. _`link to job`: http://example.com
.. ------------------------------------------------------------------------------
.. ------------------------------------------------------------------------------
.. Reading - List of blog posts, collected (hopefully) via planet.nixos.org
.. ------------------------------------------------------------------------------
Reading
=======

.. Example
- `blog post title`_

optional extra description


.. _`blog post title`: http://example.com
.. ------------------------------------------------------------------------------
.. ------------------------------------------------------------------------------
.. Tooling - List of useful tools (or their updates)
.. ------------------------------------------------------------------------------
Tooling
=======

.. Example
- `tool name with a link to it`_

Description what tool does, why it was created, or what is new since last
time.

.. _`tool name with a link to it`: http://example.com
.. ------------------------------------------------------------------------------
.. ------------------------------------------------------------------------------
.. Events / Meetups - regular or one time announcements of FUTURE events
.. ------------------------------------------------------------------------------
Events / Meetups
==================

.. Example
- Event title `with link`

Event description


.. _`with link`: http://example.com
.. ------------------------------------------------------------------------------
.. ------------------------------------------------------------------------------
.. TODO: this should be part of the article template, but we need to change old
articles once this is moved into article template
.. ------------------------------------------------------------------------------
Contribute to NixOS Weekly Newsletter
=====================================

This work would not be possible without the many contributions of the community.

You can help too! Create or comment on the `pull request`_ for the next edition
or loot at the `issue tracker`_ to add other improvements.

.. _`pull request`: https://github.com/NixOS/nixos-weekly/pulls
.. _`issue tracker`: https://github.com/NixOS/nixos-weekly/issues
Loading

0 comments on commit e25c085

Please sign in to comment.