Commit graph

63 commits

Author SHA1 Message Date
Niklas Hambüchen
ee6c2bd2eb doc: Fix missing pre/post hooks everywhere 2025-05-24 13:22:41 +00:00
adisbladis
4166518a86
doc/importNpmLock.buildNodeModules: Add note regarding package-lock-only (#393699) 2025-05-02 20:50:31 +02:00
Florian Klink
b25eeeb6d8 doc: document Yarn v3/v4 infrastructure
Move the existing `yarnConfigHook`, `yarnBuildHook` and
`yarnInstallHook` documentation below a Yarn v1 section.

Also move the documentation for the deprecated `yarn2nix` there, which
is Yarn v1 only.

Co-Authored-By: Yureka <yureka@cyberchaos.dev>
2025-04-23 17:25:20 +03:00
Pol Dellaiera
3218a4204f doc: do not reuse pname 2025-04-21 07:02:49 +02:00
Pol Dellaiera
ac04a5c492 doc: replace rev with tag 2025-04-21 07:02:49 +02:00
Pol Dellaiera
b4515ff6c2 doc: use finalAttrs pattern 2025-04-21 07:02:49 +02:00
Pol Dellaiera
47f000d991 doc: add missing phase hooks 2025-04-21 07:02:49 +02:00
Pol Dellaiera
540ddbcf2f doc: use writableTmpDirAsHomeHook 2025-04-21 07:02:46 +02:00
Pol Dellaiera
bcea0cf344 doc: update Nix code snippets format
Command: `mdcr --config doc/tests/mdcr-config.toml doc/`
2025-04-17 01:30:34 +02:00
Pol Dellaiera
5d979e79ce doc: fix various nix snippets 2025-04-17 01:30:34 +02:00
Winter
a19cd4ffb1 Revert "treewide: replace rev with tag"
This reverts commit 65a333600d.

This wasn't tested for correctness with something like fodwatch [0],
and should not have been (self-)merged so quickly, especially without
further review.

It also resulted in the breakage of at least one package [1] (and that's
the one we know of and was caught).

A few packages that were updated in between this commit and this revert
were not reverted back to using `rev`, but other than that, this is a
1:1 revert.

[0]: https://codeberg.org/raphaelr/fodwatch
[1]: https://github.com/NixOS/nixpkgs/pull/396904 / 758551e458
2025-04-08 02:57:25 -04:00
Pol Dellaiera
65a333600d treewide: replace rev with tag 2025-04-07 16:57:22 +02:00
adisbladis
6900384c1b doc/importNpmLock.buildNodeModules: Add note regarding package-lock-only
When using `buildNodeModules` to create `node_modules` commands like `npm install` & `npm add` that writes packages & executables needs to be used with `--package-lock-only`.
2025-03-28 11:12:15 +01:00
Pyrox
09cec0f560
pnpm.fetchDeps: pnpmWorkspace -> pnpmWorkspaces 2024-10-24 15:37:30 -04:00
lelgenio
ab4dc6ca78 doc/javascript: fix example usage of yarn hooks 2024-09-28 20:07:11 -03:00
Johannes Kirschbauer
71f01ce1fc
Doc/importNpmLock: general improvements (#340019)
Co-authored-by: Valentin Gagarin <valentin@gagarin.work>
2024-09-07 07:59:02 +02:00
lelgenio
7783e118af yarnInstallHook: init 2024-09-04 11:15:47 -03:00
adisbladis
9c7ff7277c
importNpmLock.buildNodeModules: init
`importNpmLock.buildNodeModules` returns a derivation with a pre-built `node_modules` directory, as imported by `importNpmLock`.
This is to be used together with `importNpmLock.hooks.linkNodeModulesHook` to facilitate `nix-shell`/`nix develop` based development workflows:

```nix
pkgs.mkShell {
  packages = [
    importNpmLock.hooks.linkNodeModulesHook
    nodejs
  ];

  npmDeps = importNpmLock.buildNodeModules {
    npmRoot = ./.;
    inherit nodejs;
  };
}
```
will create a development shell where a `node_modules` directory is created & packages symlinked to the Nix store when activated.

This code is adapted from https://github.com/adisbladis/buildNodeModules
2024-08-29 06:12:07 -07:00
Pyrox
875c9f044f pnpm.fetchDeps: Add workspaces support and support for custom pnpm configuration commands
Solves #316908
2024-08-05 18:36:54 +03:00
Peder Bergebakken Sundt
99dec1f6b0 treewide: fix doc typos
Done with `fd \\\.md$ . --type f -x typos --write-changes`
2024-07-26 00:55:13 +02:00
Alexis Hildebrandt
ab42ca141a doc: Remove indefinite article and ending period from example meta.description
so that meta.description examples shown in the documentation
align with recommendations given in the "Meta attributes" section
in pkgs/README.md.

The changes were made with the following commands:
nix run nixpkgs#silver-searcher -- -l0 'description\s*=\s*"([Aa]n?|[Tt]he)\s' doc \
  | xargs -0 nix run nixpkgs#gnused -- -i '' -Ee '/description/s/"([Aa]n?|[Tt]he)\s(.)/"\U\2/'
nix run nixpkgs#silver-searcher -- -l0 'description\s*=\s*".*\."' doc \
  | xargs -0 nix run nixpkgs#gnused -- -i '' -Ee '/description/s/\."/"/'
2024-07-20 09:18:42 +02:00
Doron Behar
ee7cfec5aa doc/javascript: document yarn{Config,Build}Hook 2024-07-10 09:39:03 +03:00
Doron Behar
c704c02956 doc/javascript: pnpm: mention lack of monorepos/workspaces support 2024-06-03 17:09:22 +03:00
Sefa Eyeoglu
74f5ff78bf
pnpm.fetchDeps: init
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2024-06-02 19:56:11 +02:00
Eli Flanagan
693c7d91c9
doc: lowercase npm name
npm, Inc documentation asks to use lowercase. Their documentation also has consistent lowercase usage. e.g. <https://docs.npmjs.com/about-npm>
2024-03-29 11:10:49 -04:00
Janne Heß
fcc95ff817 treewide: Fix all Nix ASTs in all markdown files
This allows for correct highlighting and maybe future automatic
formatting. The AST was verified to work with nixfmt only.
2024-03-28 09:28:12 +01:00
Eli Flanagan
f6b397eed0
doc: improve javascript conventions (#298127)
I created newlines per the <https://github.com/NixOS/nixpkgs/blob/master/doc/README.md#documentation-conventions> guide.

This paves the way for future contributions to not be distracted by expected conventions.
2024-03-22 14:36:09 -07:00
Doron Behar
290c16532c doc/mkYarnPackage: document better distPhase and doDist 2024-03-18 11:29:47 +02:00
adisbladis
434df3c94b
Merge pull request #289231 from adisbladis/fetchnpmlock
importNpmLock: init
2024-03-08 15:14:37 +13:00
Anderson Torres
e671d3bbbd Nix docs: remove with lib; from example code
Following [Best Practices](https://nix.dev/guides/best-practices#with-scopes),
`with` is a problematic language construction and should be avoided.

Usually it is employed like a "factorization": `[ X.A X.B X.C X.D ]` is written
`with X; [ A B C D ]`.

However, as shown in the link above, the syntatical rules of `with` are not so
intuitive, and this "distributive rule" is very selective, in the sense that
`with X; [ A B C D ]` is not equivalent to `[ X.A X.B X.C X.D ]`.

However, this factorization is still useful to "squeeze" some code, especially
in lists like `meta.maintainers`.

On the other hand, it becomes less justifiable in bigger scopes. This is
especially true in cases like `with lib;` in the top of expression and in sets
like `meta = with lib; { . . . }`.

That being said, this patch removes most of example code in the current
documentation.

The exceptions are, for now
- doc/functions/generators.section.md
- doc/languages-frameworks/coq.section.md

because, well, they are way more complicated, and I couldn't parse them
mentally - yet another reason why `with` should be avoided!
2024-03-06 11:40:09 -03:00
adisbladis
b6e4b86809 importNpmLock: init
This is an alternative to `fetchNpmDeps` that is notably different in that it uses metadata from `package.json` & `package-lock.json` instead of specifying a fixed-output hash.

Notable features:
- IFD free.
- Only fetches a node dependency once. No massive FODs.
- Support for URL, Git and path dependencies.
- Uses most of the existing `npmHooks`

`importNpmLock` can be used _only_ in the cases where we need to check in a `package-lock.json` in the tree.
Currently this means that we have 13 packages that would be candidates to use this function, though I expect most usage to be in private repositories.

This is upstreaming the builder portion of https://github.com/adisbladis/buildNodeModules into nixpkgs (different naming but the code is the same).
I will archive this repository and consider nixpkgs the new upstream once it's been merged.

For more explanations and rationale see https://discourse.nixos.org/t/buildnodemodules-the-dumbest-node-to-nix-packaging-tool-yet/35733

Example usage:
``` nix
stdenv.mkDerivation {
  pname = "my-nodejs-app";
  version = "0.1.0";

  src = ./.;

  nativeBuildInputs = [
    importNpmLock.hooks.npmConfigHook
    nodejs
    nodejs.passthru.python # for node-gyp
    npmHooks.npmBuildHook
    npmHooks.npmInstallHook
  ];

  npmDeps = buildNodeModules.fetchNodeModules {
    npmRoot = ./.;
  };
}
```
2024-03-05 12:23:28 +13:00
Midnight Veil
c1678c2567
doc: mkYarnPackage/mkYarnModules should use offlineCache to prevent IFD
This is not mentioned elsewhere, and can be confusing.
2023-12-09 17:54:22 +11:00
happysalada
7fb490674f buildNpmPackage: allow passing npmDeps 2023-11-16 11:57:48 +00:00
Fabian
cfd0999b5a
docs/javascript/introduction: fix GitHub search link 2023-11-12 19:32:37 +01:00
Yt
5aaeafbe26
buildNpmPackage: make nodejs overridable (#265171)
* buildNpmPackage: allow nodejs to be passed as argument

* Update doc/languages-frameworks/javascript.section.md

Co-authored-by: Lily Foster <lily@lily.flowers>

---------

Co-authored-by: Lily Foster <lily@lily.flowers>
2023-11-09 16:19:24 +00:00
Doron Behar
fc96f6d0fd buildNpmPackage: support makeWrapperArgs 2023-10-07 14:09:05 +03:00
Doron Behar
d6521ce186 docs/javascript/buildNpmPackage: Document fetchNpmDeps
Co-authored-by: Lily Foster <lily@lily.flowers>
2023-10-07 14:09:05 +03:00
Doron Behar
384b1e5b91 docs/javascript/buildNpmPackage: Document bin, man and npm pack behavior 2023-10-07 14:09:05 +03:00
Wout Mertens
00de2104fc corepack: PR review updates
Co-authored-by: Antoine du Hamel <duhamelantoine1995@gmail.com>
Co-authored-by: Sandro Jaeckel <sandro.jaeckel@gmail.com>
2023-09-20 17:27:05 +02:00
Wout Mertens
724f6bcb77 nodejs: corepack wrappers package 2023-09-20 10:10:51 +02:00
Lily Foster
3990bb5b5e
doc/languages-frameworks/javascript: add npmWorkspace and npmPruneFlags args 2023-06-29 07:43:12 -04:00
Lily Foster
59713b5555
Merge pull request #230157 from teutat3s/buildnpmpackage-docs
buildNpmPackage: document dontNpmBuild option
2023-06-28 18:33:02 -04:00
teutat3s
3a2cf5b3f5
buildNpmPackage: document dontNpmBuild option
document dontNpmInstall option
2023-06-28 23:49:29 +02:00
Andrew
1b6f640687
doc: correct typos and spelling (#237098) 2023-06-11 02:15:43 +02:00
Sandro Jäckel
aad577bd30 nodejs*: normalise names to better fit other packages
Versioned package attributes are usually named like $pname_$version
eg: nodejs-14_x -> nodejs_14
2023-04-25 11:28:17 +02:00
pennae
052bb41410 doc: assign ids to many headings
without stable ids on headings we cannot generate stable links to these
headings. nrd complains about this, but the current docbook workflow
does not.

a few generated ids remain, mostly in examples and footnotes. most of
the examples are generated by nixdoc (which has since gained MD export
functions, and the MD export does generate IDs).
2023-03-27 22:39:11 +02:00
Winter
f1292b31d6 doc/languages-frameworks/javascript: use --ignore-scripts flag in example
Presenting an example with a patch (without even providing that patch!) is not ideal. Since `npm pack` now obeys `--ignore-scripts`, we can use that instead.
2022-12-13 19:40:27 -05:00
Valentin Gagarin
db1a83aaa4 docs: fixup wording and formatting on JavaScript 2022-12-07 16:47:31 +01:00
Valentin Gagarin
53b5a47c12 document Import From Derivation (IFD) policy 2022-12-07 16:47:30 +01:00
Colin Arnott
bac379f30a
doc: use sri hash syntax
The nixpkgs manual contains references to both sri hash and explicit
sha256 attributes. This is at best confusing to new users. Since the
final destination is exclusive use of sri hashes, see nixos/rfcs#131,
might as well push new users in that direction gently.

Notable exceptions to sri hash support are builtins.fetchTarball,
cataclysm-dda, coq, dockerTools.pullimage, elixir.override, and
fetchCrate. None, other than builtins.fetchTarball, are fundamentally
incompatible, but all currently accept explicit sha256 attributes as
input. Because adding backwards compatibility is out of scope for this
change, they have been left intact, but migration to sri format has been
made for any using old hash formats.

All hashes have been manually tested to be accurate, and updates were
only made for missing upstream artefacts or bugs.
2022-12-04 06:12:18 +00:00