Giter Club home page Giter Club logo

composer-link's People

Contributors

sandersander avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

composer-link's Issues

Add integrations tests with composer

It's a must to have some integration tests with composer, A solid base is required for this tests so that we can add in an easy manner more scenarios.

Maybe we should look how composer solves this, I assume they have also some extended tests.

Uncaught Error: Class "League\Flysystem\Local\LocalFilesystemAdapter" not found

When trying to link my package I get this error

composer link ../php-packages/narwhal-layout

Fatal error: Uncaught Error: Class "League\Flysystem\Local\LocalFilesystemAdapter" not found in /var/cache/composer/vendor/sandersander/composer-link/src/Plugin.php:82
Stack trace:
#0 phar:///usr/bin/composer/src/Composer/Plugin/PluginManager.php(404): ComposerLink\Plugin->activate(Object(Composer\Composer), Object(Composer\IO\ConsoleIO))
#1 phar:///usr/bin/composer/src/Composer/Plugin/PluginManager.php(291): Composer\Plugin\PluginManager->addPlugin(Object(ComposerLink\Plugin), true, Object(Composer\Package\CompletePackage))

composer.lock require section is not updated

Hi,
i'm using this awesome plugin for our local development.

Let's say i have PROJECT1 using PACKAGE1 via composer link, after having installed new dependencies on PACKAGE1, the composer dump-autoload in PROJECT1 doesnt see new dependencies installed and doesn't autoload new modules.

I've noted that, also after composer update PACKAGE1, the composer.lock require section is not updated using the require section of the local COMPONENT1 but seems it's using the published package dependencies on Packagist, it does update the composer.lock hash but doesn't reflect the required dependencies changes in the parent composer.lock file.

We have many others dependencies in PACKAGE1 composer.json\require (already published on Packagist) that are loaded correctly from the parent project.

Maybe i'm missing something or have messed up with package dependencies, any help would be greatly appreciated!

Ability to link packages into global vendor directory

This is already possible with composer global link which moves the current directory.

We should make the LinkCommand and UnlinkCommand better usable for the user.
We should improve documentation on the behavior on linking global

Wildcard support

I am wondering if there is a wildcard support for symlinking packages. Let's say I have a folder php-packages/package1 and php-packages/package2 it would be nice if i can just enter a command composer link ../php-packages/* and it link all the packages in that folder. Is it something possible?

Remove league/flysystem dependency

The dependency on league/flysystem can give problems when a project has an incompatible version of the same library installed.

To prevent issues like this it's best to not depend on any library expect composer.

--only-installed flag returns error

This is really one of my most loved packages. Thank you so much for making life easier!

I am trying to symlink multiple (already installed) packages. And it works great if I do it one by one. But as by the documentation the following would be a possible shorthand:

composer link ../path/* --only-installed

However that always returns the error: The "--only-installed" option does not exist.

Kind regards,

Philipp

Implement uninstall procedure

Currently when the plugin is uninstalled nothing happens.

The plugin should remove all linked packages, and do some cleanup.
Globally linked packages should be unlinked (#15 ).

When the compposer-link is installed globally we should do this procedure for every project where composer-link is active (Depends #19 )

Always link specified packages

We should have the ability to globally define a package that should be linked in every other project.

We should maintain a list of those packages globally, and link those automatically everywhere where composer install or composer upgrade is executed.

When the package is unlinked by the user, we should go through all the project where composer-link is active and remove those links.
(Depends #19 )
(With exception projects where composer-link is installed as project dependency).

Keep track in which projects compsoser-link is active

We should maintain a list with projects where composer-link is active, only if composer-link is installed globally.

We need this for a few reasons:

  • When the plugin is uninstalled (as global package), we can clean-up all projects where the plugin is installed.
  • In the future it should be able to automatically link specified packages in every project without manually link them

Resolve and upgrade/install dependencies

Currently when a package is linked, we only install the linked package and not it's dependencies.

When the linked package contains new dependencies on other packages, or a new version of a package, we should pull those in when they can be included and don't conflict with other required packages.

How does it track changes in composer.lock

This seems to an interesting utility as opposed to the https://github.com/franzliedke/studio. The problem with the studio is that that it will keep the reference of the local package path in composer.lock file. This utility seems to fix that problem just by keeping the reference in the composer.lock file and linking the package in the background.

My question is when I have completed my changes in the package and now its time to run composer update vendor/package will it update the hash and timestamp in composer.lock file?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.