diff --git a/.gitignore b/.gitignore index 2c1edb8..341caa6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /report.pdf /result +/.pre-commit-config.yaml diff --git a/.markdownlint.yaml b/.markdownlint.yaml new file mode 100644 index 0000000..3de5073 --- /dev/null +++ b/.markdownlint.yaml @@ -0,0 +1,4 @@ +default: true + +# I use top-level titles for each section +MD025: false diff --git a/flake.lock b/flake.lock index b84cf74..efff0aa 100644 --- a/flake.lock +++ b/flake.lock @@ -2,38 +2,65 @@ "nodes": { "futils": { "locked": { - "lastModified": 1618868421, - "narHash": "sha256-vyoJhLV6cJ8/tWz+l9HZLIkb9Rd9esE7p+0RL6zDR6Y=", + "lastModified": 1623875721, + "narHash": "sha256-A8BU7bjS5GirpAUv4QA+QnJ4CceLHkcXdRp4xITDB0s=", "owner": "numtide", "repo": "flake-utils", - "rev": "eed214942bcfb3a8cc09eb3b28ca7d7221e44a94", + "rev": "f7e004a55b120c02ecb6219596820fcd32ca8772", "type": "github" }, "original": { "owner": "numtide", + "ref": "master", "repo": "flake-utils", "type": "github" } }, "nixpkgs": { "locked": { - "lastModified": 1619180214, - "narHash": "sha256-wt1uDD9RAxc3wdWOQp8zM3+ZyLb2rbnGIeaIuXGzw80=", + "lastModified": 1626764163, + "narHash": "sha256-TB+mtRpwn6pnoUXjBvJPIgHKkwLtjzFji4tkANlZWJQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "112a3b08e9bcffa58e0f79af0072fc8273933b87", + "rev": "1441fa74d213d7cc120d9d7d49e540c1fc59bc58", "type": "github" }, "original": { "owner": "NixOS", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, + "pre-commit-hooks": { + "inputs": { + "flake-utils": [ + "futils" + ], + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1624971177, + "narHash": "sha256-Amf/nBj1E77RmbSSmV+hg6YOpR+rddCbbVgo5C7BS0I=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "397f0713d007250a2c7a745e555fa16c5dc8cadb", + "type": "github" + }, + "original": { + "owner": "cachix", + "ref": "master", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, "root": { "inputs": { "futils": "futils", - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs", + "pre-commit-hooks": "pre-commit-hooks" } } }, diff --git a/flake.nix b/flake.nix index 1bdafcf..10916bd 100644 --- a/flake.nix +++ b/flake.nix @@ -2,12 +2,34 @@ description = "Ambroisie's CV"; inputs = { - nixpkgs.url = "github:NixOS/nixpkgs"; - futils.url = "github:numtide/flake-utils"; + futils = { + type = "github"; + owner = "numtide"; + repo = "flake-utils"; + ref = "master"; + }; + + nixpkgs = { + type = "github"; + owner = "NixOS"; + repo = "nixpkgs"; + ref = "nixpkgs-unstable"; + }; + + pre-commit-hooks = { + type = "github"; + owner = "cachix"; + repo = "pre-commit-hooks.nix"; + ref = "master"; + inputs = { + flake-utils.follows = "futils"; + nixpkgs.follows = "nixpkgs"; + }; + }; }; - outputs = { self, nixpkgs, futils } @ inputs: - futils.lib.eachSystem futils.lib.allSystems (system: + outputs = { self, futils, nixpkgs, pre-commit-hooks } @ inputs: + futils.lib.eachDefaultSystem (system: let inherit (nixpkgs) lib; pkgs = nixpkgs.legacyPackages.${system}; @@ -16,19 +38,46 @@ pandoc (texlive.combine { inherit (texlive) - scheme-small - # Extra packages needed - changepage - enumitem - placeins - ; + scheme-small + # Extra packages needed + changepage + enumitem + placeins + ; }) ]; in { + checks = { + pre-commit = pre-commit-hooks.lib.${system}.run { + src = ./.; + + hooks = { + nixpkgs-fmt = { + enable = true; + }; + + markdown-lint = { + enable = true; + + name = "Lint each post's markdown"; + + entry = + let + pkg = pkgs.nodePackages.markdownlint-cli; + in + "${pkg}/bin/markdownlint"; + + types = [ "markdown" ]; + }; + }; + }; + }; + devShell = pkgs.mkShell { name = "report"; inherit buildInputs; + inherit (self.checks.${system}.pre-commit) shellHook; }; defaultPackage = pkgs.stdenvNoCC.mkDerivation { diff --git a/report.md b/report.md index 6fa3e74..d3adf87 100644 --- a/report.md +++ b/report.md @@ -457,6 +457,25 @@ expect few places to be as well-rounded as IMC. # Appendix +## Vocabulary + +Market-making + +: A market-maker provides liquidity to the market by continuously quoting both +sell and trade prices on the market, hoping to make a profit on the *bid-ask +spread*. + +Bid and ask + +: Respectively the price for buying and selling a stock or other financial +instrument. The closer the spread of the two prices is, the more liquidity there +is in the market for that product. + +Continuous Integration + +: The practice of automating the integration of code from multiple contributors +into a single software project. + ## About IMC International Marketmakers Combinations (IMC) was founded in 1989 in Amsterdam,