svanderburg / composer2nix Goto Github PK
View Code? Open in Web Editor NEWGenerate Nix expressions to build PHP composer packages
License: MIT License
Generate Nix expressions to build PHP composer packages
License: MIT License
Trying latest master on latest nixos-unstable fails with php 7.3:
$ nix-env -f release.nix -iA package.x86_64-linux
...cut...
Generating optimized autoload files
Loading composer repositories with package information
Installing dependencies from lock file
[ErrorException]
"continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"?
install [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--no-custom-installers] [--no-autoloader] [--no-scripts] [--no-progress] [--no-suggest] [-v|vv|vv
v|--verbose] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--ignore-platform-reqs] [--] [<packages>]...
builder for '/nix/store/kf1qwl2yqk10hkqjdhlsy7m3kcm1g6bl-composer-svanderburg-composer2nix.drv' failed with exit code 1
error: build of '/nix/store/kf1qwl2yqk10hkqjdhlsy7m3kcm1g6bl-composer-svanderburg-composer2nix.drv' failed
However, overriding default.nix
to use 7.2 makes it work:
diff --git a/default.nix b/default.nix
index 28b6cae..746a9bc 100644
--- a/default.nix
+++ b/default.nix
@@ -4,10 +4,11 @@
let
composerEnv = import ./src/Composer2Nix/composer-env.nix {
- inherit (pkgs) stdenv writeTextFile fetchurl php unzip;
+ inherit (pkgs) stdenv writeTextFile fetchurl unzip;
+ php = pkgs.php72;
};
in
import ./php-packages.nix {
inherit composerEnv noDev;
inherit (pkgs) fetchurl fetchgit fetchhg fetchsvn;
-}
\ No newline at end of file
+}
So, I've been trying to package https://github.com/bolt/core, but building it throws this error:
error: builder for '/nix/store/qhj7vqxr4gv0d3ysgzwgqcspwsdxg248-bolt.drv' failed with exit code 4;
last 10 log lines:
> - Required package "twig/intl-extra" is not present in the lock file.
> - Required package "twig/twig" is not present in the lock file.
> - Required package "ua-parser/uap-php" is not present in the lock file.
> - Required package "webimpress/safe-writer" is not present in the lock file.
> - Required package "webmozart/path-util" is not present in the lock file.
> - Required package "webonyx/graphql-php" is not present in the lock file.
> - Required package "xemlock/htmlpurifier-html5" is not present in the lock file.
> This usually happens when composer files are incorrectly merged or the composer.json file is manually edited.
> Read more about correctly resolving merge conflicts https://getcomposer.org/doc/articles/resolving-merge-conflicts.md
> and prefer using the "require" command over editing the composer.json file directly https://getcomposer.org/doc/03-cli.md#require-r
The repository itself sadly has no composer.lock
file, but I can't find a way to patch it in... I've tried installPhase
, patches
and so on.
More issues from my part...
Could not open input file: ./bin/console
The script that is trying to run cache:clear
is simply one defined in composer.json
:
{
"scripts": {
"auto-scripts": {
"cache:clear": "symfony-cmd",
"assets:install": "symfony-cmd"
},
"post-install-cmd": [
"@auto-scripts"
],
The issue seems to be that it doesn't find the executable bin/console
after installation, it should be there
#16 753.6 Verifying lock file contents can be installed on current platform.
#16 753.6 Nothing to install, update or remove
#16 753.6 Generating optimized autoload files
#16 753.6 127 packages you are using are looking for funding.
#16 753.6 Use the `composer fund` command to find out more!
#16 753.6
#16 753.6 Run composer recipes at any time to see the status of your Symfony recipes.
#16 753.6
#16 753.6 Executing script cache:clear [KO]
#16 753.6 [KO]
#16 753.6 Script cache:clear returned with error code 1
#16 753.6 !! Could not open input file: ./bin/console
#16 753.6 !!
#16 753.6 Script @auto-scripts was called via post-install-cmd
#16 753.6 error: builder for '/nix/store/qxg82fa6zgqpiza8inn7k1x1qy2nwr62-app.drv' failed with exit code 1
Thank for your work! But I have an issue I can't figure out on my own.
I am working at this project and if do (outside of nix):
composer install
Everything works as expected. But when I generate the nix derivation with composer2nix and I do nix-build
, I get this error:
'/nix/store/3mqa49rq48ys6cbvk7lsacj06bp5gvz0-webmozart-assert-6964c76c7804814a842473e0c8fd15bab0f18e25/src/Mixin.php' -> 'webmozart/assert/src/Mixin.php'
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
In ProviderRepository.php line 208:
Class 'Facade\Ignition\IgnitionServiceProvider' not found
Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 1
error: builder for '/nix/store/3yvd0rwqrhxlmz7742lvr36k6clyr8p9-composer-laravel-laravel.drv' failed with exit code 1;
last 10 log lines:
> Generating optimized autoload files
> > Illuminate\Foundation\ComposerScripts::postAutoloadDump
> > @php artisan package:discover --ansi
>
> In ProviderRepository.php line 208:
>
> Class 'Facade\Ignition\IgnitionServiceProvider' not found
>
>
> Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 1
For full logs, run 'nix log /nix/store/3yvd0rwqrhxlmz7742lvr36k6clyr8p9-composer-laravel-laravel.drv'.
It sounds like a missed dependencies to me be as I said, it looks like it is missed only for composer2nix.
the default patchShebang
functionality ends up with non-functional scripts on macOS:
./result/bin/composer: line 2: ?php: No such file or directory
./result/bin/composer: line 4: syntax error near unexpected token `{'
./result/bin/composer: line 4: `if (PHP_SAPI !== 'cli' && PHP_SAPI !== 'phpdbg') {'
relevant NixOS/nixpkgs#2146, NixOS/nixpkgs#23018
it seems most PHP derivations handle this on their own (e.g. NixOS/nixpkgs#87406)
is this something that can/should be handled by composer2nix?
Is there any chance that support for flakes will be added in the future? If not, would you have the time to point us in the right direction with respect to getting flakes working?
I have been using NixOS as a system/package manager for a while now, but I haven't had much experience with building packages, particularly without flakes. It all seems a bit daunting to me, and although I'd like to take a crack at using composer2nix
in my flake-based project, I can't devote a lot of time to it at the moment.
if I make any progress on this on my own, I will update here for the benefit of anyone else in this boat :)
Thank you for your excellent work!
phpunit-phpunit> Your lock file does not contain a compatible set of packages. Please run composer update.
phpunit-phpunit> Problem 1
phpunit-phpunit> - phpspec/prophecy is locked to version v1.15.0 and an update of this package was not requested.
phpunit-phpunit> - phpspec/prophecy v1.15.0 requires php ^7.2 || ~8.0, <8.2 -> your php version (8.2.10) does not satisfy that requirement.
phpunit-phpunit> Problem 2
phpunit-phpunit> - phpspec/prophecy v1.15.0 requires php ^7.2 || ~8.0, <8.2 -> your php version (8.2.10) does not satisfy that requirement.
phpunit-phpunit> - phpunit/phpunit 9.5.13 requires phpspec/prophecy ^1.12.1 -> satisfiable by phpspec/prophecy[v1.15.0].
phpunit-phpunit> - phpunit/phpunit is locked to version 9.5.13 and an update of this package was not requested.
23.05+ only contains php 8+
Currently packages that are based on symfony/flex
are not properly downloaded fully with composer2nix. As part of the dependencies are spread between symfony.lock
and composer.lock
.
https://github.com/symfony/flex
Here's some example output of the error as an example:
kbin-core> '/nix/store/9xygbpw3slc00dd4y0q090813jq4hfsi-willdurand-negotiation-68e9ea0553ef6e2ee8db5c1d98829f111e623ec2/tests/Negotiation/Tests/NegotiatorTest.php' -> 'willdurand/negotiation/tests/Negotiation/Tests/NegotiatorTest.php'
kbin-core> '/nix/store/9xygbpw3slc00dd4y0q090813jq4hfsi-willdurand-negotiation-68e9ea0553ef6e2ee8db5c1d98829f111e623ec2/tests/Negotiation/Tests/TestCase.php' -> 'willdurand/negotiation/tests/Negotiation/Tests/TestCase.php'
kbin-core> '/nix/store/9xygbpw3slc00dd4y0q090813jq4hfsi-willdurand-negotiation-68e9ea0553ef6e2ee8db5c1d98829f111e623ec2/tests/bootstrap.php' -> 'willdurand/negotiation/tests/bootstrap.php'
kbin-core> Generating optimized autoload files
kbin-core> Generated optimized autoload files containing 10706 classes
kbin-core> Installing dependencies from lock file
kbin-core> Verifying lock file contents can be installed on current platform.
kbin-core> The following exception probably indicates you are offline or have misconfigured DNS resolver(s)
kbin-core> In CurlDownloader.php line 365:
kbin-core>
kbin-core> curl error 6 while downloading https://raw.githubusercontent.com/symfony/re
kbin-core> cipes/flex/main/index.json: Could not resolve host: raw.githubusercontent.c
kbin-core> om
kbin-core>
kbin-core> install [--prefer-source] [--prefer-dist] [--prefer-install PREFER-INSTALL] [--dry-run] [--download-only] [--dev] [--no-suggest] [--no-dev] [--no-autoloader] [--no-progress] [--no-install] [--audit] [--audit-format AUDIT-FORMAT] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--apcu-autoloader-prefix APCU-AUTOLOADER-PREFIX] [--ignore-platform-req IGNORE-PLATFORM-REQ] [--ignore-platform-reqs] [--] [<packages>...]
error: builder for '/nix/store/ych8av23caiia9kzxnd6vmkx4lxrcp22-kbin-core.drv' failed with exit code 1;
Have a hunch these lines may be at least what is creating this spessific error: https://github.com/symfony/flex/blob/3c9c3424efdafe33e0e3cfb5e87e50b34711fedf/src/Downloader.php#L31-L34
Right now, I'm trying to create a package for BookStack and I've been successful doing so with composer2nix. The issue for upstreaming the package is the name, as it is stored in the nix store as composer-${name}
and I can't seem to change it to ${name}-${version}
.
default.nix
:
{ pkgs, system, lib, fetchFromGitHub, dataDir ? "/var/lib/bookstack" }:
let
package = (import ./composition.nix {
inherit pkgs system;
noDev = true; # Disable development dependencies
}).overrideAttrs (attrs : {
installPhase = attrs.installPhase + ''
rm -R $out/storage $out/public/uploads
ln -s ${dataDir}/storage $out/storage
ln -s ${dataDir}/public/uploads $out/public/uploads
'';
});
in package.override rec {
name = "bookstack";
version = "0.31.3";
removeComposerArtifacts = true; # Remove composer configuration files
src = fetchFromGitHub {
owner = "bookstackapp";
repo = "${name}";
rev = "v${version}";
sha256 = "1w4lfy543h1fv3dsl3j0vyjw72n0sbpvipfnai8x1p01fqpnxpgm";
};
meta = with lib; {
description = "A platform to create documentation/wiki content built with PHP & Laravel";
longDescription = ''
A platform for storing and organising information and documentation.
Details for BookStack can be found on the official website at https://www.bookstackapp.com/.
'';
homepage = "https://www.bookstackapp.com/";
license = licenses.mit;
maintainers = with maintainers; [ ymarkus ];
platforms = platforms.linux;
};
}
composition.nix
(this and all other files unchanged from the "default.nix" created by composer2nix):
{pkgs ? import <nixpkgs> {
inherit system;
}, system ? builtins.currentSystem, noDev ? false}:
let
composerEnv = import ./composer-env.nix {
inherit (pkgs) stdenv writeTextFile fetchurl php unzip phpPackages;
};
in
import ./php-packages.nix {
inherit composerEnv noDev;
inherit (pkgs) fetchurl fetchgit fetchhg fetchsvn;
}
Is there a way to fix the package name? I've tried setting pname
, but that doesn't work either...
I've been trying to package wallabag using your amazing tool. Unfortunately, composer install --optimize-autoloader
fails because of the following dependency:
"friendsofsymfony/rest-bundle" = composerEnv.buildZipPackage {
name = "friendsofsymfony-rest-bundle-c79b7e5df96e5581591ceb6a026bd4e5f9346de0";
src = fetchurl {
url = "https://api.github.com/repos/FriendsOfSymfony/FOSRestBundle/zipball/c79b7e5df96e5581591ceb6a026bd4e5f9346de0";
sha256 = "1f1kq5sly10pzsfwnd62kksz63qd3r5k9s6bjkzrldc21cvv0iy1";
};
};
(github link: https://github.com/FriendsOfSymfony/FOSRestBundle)
The problem is that it wants the dependency to be at vendor/friendsofsymfony/rest-bundle/FOS/RestBundle
instead of vendor/friendsofsymfony/rest-bundle
(where your script linked it).
I don't really know why this package would be at a different location than the others. I suspect it is because of the "autoload"
entry in its composer.json
but I'm not at all familiar with composer.
Have you encountered this problem before ? Would you have an idea how to fix it ?
Hm... not sure what is going on. Any help?
I suppose I need to set something like memory_limit
higher, not sure how to do that. Here is the error I get:
Generating optimized autoload files
Generated optimized autoload files containing 8342 classes
Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Nothing to install, update or remove
Generating optimized autoload files
127 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
Run composer recipes at any time to see the status of your Symfony recipes.
Executing script cache:clear [KO]
[KO]
Script cache:clear returned with error code 134
!!
!! // Clearing the cache for the prod environment with debug false
!!
!!
!! Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /nix/store/f0jd93dpiklzhxnq5sx8ki10ysg97327-kimai-kimai/vendor/twig/twig/src/Node/Node.php on line 158
!!
!! Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 32768 bytes) in /nix/store/f0jd93dpiklzhxnq5sx8ki10ysg97327-kimai-kimai/vendor/symfony/error-handler/Error/OutOfMemoryError.php on line 1
!! zend_mm_heap corrupted
!!
Script @auto-scripts was called via post-install-cmd
This is about Semantic MediaWiki. I'd like to get it running on NixOS, but am struggling. Please help me out.
I did
composer2nix -p mediawiki/semantic-media-wiki --package-version 3.2.1 --no-dev
That seemed to work, but apart from the expected *.nix
files, it also produced extensions/SemanticMediaWiki
which seems to be a clone of SemanticMediaWiki/SemanticMediaWiki. However, it does not contain a .git
directory, so I could not easily check which version I got (of course I assume that it corresponds to the tag for version 3.2.1).
The problem is, that default.nix
somehow needs this extensions/SemanticMediaWiki
directory to build. If I remove it, the build fails (Composer detects that extensions/SemanticMediaWiki
is missing, and attempts to run git
to fetch it, which does not work).
My plan was to check in the *.nix
files generated by composer2nix
into Git, and use the result of default.nix
as input to NixOS' services.mediawiki.extensions
but I am totally confused about the folder popping out of composer2nix
. It should only manifest once I evaluate default.nix
, right?
Any ideas?
Thanks for your great tool, it seems like the default structure has changed since the example for adding unspecified dependencies was created, how would it look like now? I would like to provide the buildInputs
of buildPackage
in composer-env.nix
, ideally changing only files that are not generated, similar to #15 . I would like to provide glibcLocales
to the package in this PR: https://github.com/NixOS/nixpkgs/pull/184362/files
Running composer2nix
fails on line 3, apparently because it is trying to look in <composer dir>/vendor/svanderburg/composer2nix/vendor/autoload.php
when it should instead be looking in <composer dir>/vendor/autoload.php
$ composer global require svanderburg/composer2nix
Changed current directory to /Users/avh4/.composer
Using version ^0.0.3 for svanderburg/composer2nix
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 2 installs, 0 updates, 0 removals
- Installing svanderburg/pndp (v0.0.2): Downloading (100%)
- Installing svanderburg/composer2nix (v0.0.3): Downloading (100%)
Writing lock file
Generating autoload files
$ ~/.composer/vendor/bin/composer2nix -p phpunit/phpunit
Warning: require_once(/Users/avh4/.composer/vendor/svanderburg/composer2nix/bin/../vendor/autoload.php): failed to open stream: No such file or directory in /Users/avh4/.composer/vendor/svanderburg/composer2nix/bin/composer2nix on line 3
Fatal error: require_once(): Failed opening required '/Users/avh4/.composer/vendor/svanderburg/composer2nix/bin/../vendor/autoload.php' (include_path='.:') in /Users/avh4/.composer/vendor/svanderburg/composer2nix/bin/composer2nix on line 3
Hello, thank you for this.
Currently I am trying to use the tool but nix-build throws a rather puzzling error...
#16 707.6 Generating optimized autoload files
#16 707.6 Generated optimized autoload files containing 7420 classes
#16 707.6 Installing dependencies from lock file (including require-dev)
#16 707.6 Verifying lock file contents can be installed on current platform.
#16 707.6
#16 707.6 In CurlDownloader.php line 365:
#16 707.6
#16 707.6 curl error 60 while downloading https://raw.githubusercontent.com/symfony/r
#16 707.6 ecipes/flex/main/index.json: SSL certificate problem: unable to get local i
#16 707.6 ssuer certificate
Installing the cacerts
as a system package does not solve it.
using something like composer config -g -- disable-tls true
just creates a different SSL error, something like cURL error (35): SSL connect error. unregistered scheme
The following example from the README fails to build:
$ composer2nix -p phpunit/phpunit
error: expression does not evaluate to a derivation (or a set or list of those)
sh: /bin/composer: No such file or directory
I have narrowed it down to the change in composer
derivation introduced in
cce1630#diff-68e0289af86f9a9377d4f5a9bd4e0833R267 :
$ nix-build --no-out-link -E 'let pkgs = import <nixpkgs> {}; composerEnv = import ./composer-env.nix { inherit (pkgs) stdenv writeTextFile fetchurl php unzip; }; in composerEnv.composer'
error: expression does not evaluate to a derivation (or a set or list of those)
When I run composer2nix
(got it by installing through composer globally) on a PHP project, it seems everything is running fine, but it stops at the following error:
Parse error: syntax error, unexpected '|', expecting variable (T_VARIABLE) in /home/bjorn/.config/composer/vendor/svanderburg/pndp/src/PNDP/AST/NixFunction.php on line 19
When re-running composer2nix, I observed some downloads of the same commits not resulting in the same checksums, e.g.
src = composerEnv.buildZipPackage {
name = "webmozart-assert-ab2cb0b3b559010b75981b1bdce728da3ee90ad6";
src = fetchurl {
- url = https://api.github.com/repos/webmozart/assert/zipball/ab2cb0b3b559010b75981b1bdce728da3ee90ad6;
- sha256 = "16dp6yybqq2ayw67fq00mdyq0wblmsqi8qnbr8mszs9h4mj0ggpx";
+ url = "https://api.github.com/repos/webmozart/assert/zipball/ab2cb0b3b559010b75981b1bdce728da3ee90ad6";
+ sha256 = "0mzkqxzng8kkzwyn06dq3qh3r0kx8kki7y95rbac1s4ays184yz7";
};
};
or
src = composerEnv.buildZipPackage {
name = "webmozart-assert-ab2cb0b3b559010b75981b1bdce728da3ee90ad6";
src = fetchurl {
- url = https://api.github.com/repos/webmozart/assert/zipball/ab2cb0b3b559010b75981b1bdce728da3ee90ad6;
- sha256 = "16dp6yybqq2ayw67fq00mdyq0wblmsqi8qnbr8mszs9h4mj0ggpx";
+ url = "https://api.github.com/repos/webmozart/assert/zipball/ab2cb0b3b559010b75981b1bdce728da3ee90ad6";
+ sha256 = "0mzkqxzng8kkzwyn06dq3qh3r0kx8kki7y95rbac1s4ays184yz7";
};
};
(the url only changes because it's quoted now)
I'm not sure what the best fix here is, but maybe using fetchzip
instead of fetchurl
would help.
Since 21.11 updates the default php version to 8.x, composer2nix no longer builds with that nixpkgs.
I tried doing a 'composer update' on the root, which seemed fine. However, also doing 'composer update' in tests/dependencies
yielded:
Problem 1
- phpunit/phpunit[9.0.0, ..., 9.0.2] require php ^7.3 -> your php version (8.0.13) does not satisfy that requirement.
- Root composer.json requires phpunit/phpunit 9.0.x -> satisfiable by phpunit/phpunit[9.0.0, 9.0.1, 9.0.2].
Updating phpunit to 9.5.x
in composer.json led to another problem:
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Conclusion: don't install phpunit/phpunit 9.5.1 (conflict analysis result)
- Conclusion: don't install phpunit/phpunit 9.5.2 (conflict analysis result)
- Conclusion: don't install phpunit/phpunit 9.5.3 (conflict analysis result)
- Conclusion: don't install phpunit/phpunit 9.5.4 (conflict analysis result)
- Conclusion: don't install phpunit/phpunit 9.5.5 (conflict analysis result)
- Conclusion: don't install phpunit/phpunit 9.5.6 (conflict analysis result)
- Conclusion: don't install phpunit/phpunit 9.5.7 (conflict analysis result)
- Conclusion: don't install phpunit/phpunit 9.5.8 (conflict analysis result)
- Conclusion: don't install phpunit/phpunit 9.5.9 (conflict analysis result)
- Conclusion: don't install phpunit/phpunit 9.5.10 (conflict analysis result)
- Conclusion: don't install phpunit/phpunit 9.5.11 (conflict analysis result)
- Root composer.json requires phpunit/phpunit 9.5.x -> satisfiable by phpunit/phpunit[9.5.0, ..., 9.5.11].
- Conclusion: don't install phpdocumentor/reflection-docblock 5.3.0 (conflict analysis result)
- Root composer.json requires phpdocumentor/phpdocumentor 2.9.1 -> satisfiable by phpdocumentor/phpdocumentor[v2.9.1].
- Conclusion: don't install one of phpspec/prophecy[1.12.1], phpdocumentor/reflection-docblock[2.0.4] | install one of phpdocumentor/reflection-docblock[5.2.2, 5.3.0] (conflict analysis result)
- phpunit/phpunit 9.5.0 requires phpspec/prophecy ^1.12.1 -> satisfiable by phpspec/prophecy[1.12.1, ..., v1.15.0].
- Conclusion: don't install phpdocumentor/reflection-docblock[5.2.2] | install phpdocumentor/reflection-docblock[2.0.5] (conflict analysis result)
- Conclusion: don't install phpspec/prophecy[v1.15.0] | install one of phpdocumentor/reflection-docblock[2.0.5, 5.3.0] (conflict analysis result)
- Conclusion: don't install phpspec/prophecy[1.14.0] | install one of phpdocumentor/reflection-docblock[2.0.5, 5.3.0] (conflict analysis result)
- Conclusion: don't install phpspec/prophecy[1.13.0] | install one of phpdocumentor/reflection-docblock[2.0.5, 5.3.0] (conflict analysis result)
- Conclusion: don't install phpspec/prophecy[1.12.2] | install one of phpdocumentor/reflection-docblock[2.0.5, 5.3.0] (conflict analysis result)
- Conclusion: don't install phpdocumentor/reflection-docblock 2.0.5 (conflict analysis result)
- phpdocumentor/phpdocumentor v2.9.1 requires phpdocumentor/reflection-docblock ~2.0 -> satisfiable by phpdocumentor/reflection-docblock[2.0.0, ..., 2.0.5].
- You can only install one version of a package, so only one of these can be installed: phpdocumentor/reflection-docblock[2.0.0, ..., 2.0.5, 5.2.0, 5.2.1, 5.2.2, 5.3.0].
- phpspec/prophecy 1.12.1 requires phpdocumentor/reflection-docblock ^5.2 -> satisfiable by phpdocumentor/reflection-docblock[5.2.0, 5.2.1, 5.2.2, 5.3.0].
- Conclusion: don't install phpdocumentor/reflection-docblock[5.2.1] | install one of phpdocumentor/reflection-docblock[2.0.4, 2.0.5] (conflict analysis result)
Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
I'm not too familiar with php, so I'm not sure where to go from there :)
Hey, how can add/enable extensions to the CLI setup, e.g. xdebug?
Thanks
I'm trying to build a package for a PHP app that uses composer for managing php dependencies and npm for managing javascript dependencies. I'm able to use either node2nix
or this repo to independently to have nix-build
build either the PHP or the js dependencies, but I haven't been able to find any way to compose the two to build a package with which derives both the javascript and php dependencies at the same time.
Is there a way to use the derivations from the two x2nix
programs at the same time? (I'm fairly new to nix so I may be missing something obvious.)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.