studio icon indicating copy to clipboard operation
studio copied to clipboard

Workflow for replacing an existing package install

Open rhyek opened this issue 8 years ago • 4 comments

I'm on Windows. Here's my situation:

  • Currently working on a project that uses package org/repo
  • Said package is already added to composer.json and is installed in vendors/
  • I forked org/repo to rhyek/repo and cloned it locally to ~/dev/laravel/packages/org/repo
  • In the project's root folder, I'm doing studio load "~/dev/laravel/packages/*".

Issues:

  • With the current package still installed, I run composer update org/repo and I still have the old files present inside vendors. No symlink.
  • If I delete the files and then run the same command, the script php artisan clear-compiled fails stating it can't find one of the packages files.

What should I try?

rhyek avatar Sep 09 '16 00:09 rhyek

@rhyek Are you running this within a VM using vagrant? If so then for the symlink to work on Windows, the terminal has to be opened using the "Run as Administrator" option.

Then run "vagrant up", "vagrant ssh" and do the composer update, the symlink should then work and stay in place until you next need to do a composer update.

Rjs37 avatar Oct 13 '16 19:10 Rjs37

@rhyek Any luck with Robert's suggestions?

What is the version constraint that you have for org/repo in your composer.json?

franzliedke avatar Oct 18 '16 21:10 franzliedke

Running into this issue as well.

Originally I have package foo/bar at version 1.0.0 installed. Then I forked the repo at Github (foo/bar to rask/bar). Then I used studio create as such

$ studio create --git [email protected]:rask/bar.git pkgs/bar

And loaded it as well. Then inside pkgs/bar (local clone of fork) I created a feature branch called feature/my-feature and added a commit.

Now in my main project composer.json I defined the package as

"foo/bar": "dev-feature/my-feature"

after which I attempt composer update. The update errors out as it can't seem to find the local dev branch:

Your requirements could not be resolved to an installable set of packages.

Problem 1
- The requested package foo/bar dev-feature/my-feature exists as
    foo/bar[0.1.0, 0.2.0, 0.2.1, 1.0.0 dev-feature/biz-baz, ... <more tags and branches>]
    but these are rejected by your constraint.

Changing the package vendor name or trying different feature branch names doesn't seem to work. Clearing vendor/ doesn't help either.

It seems like Composer does not respect local branches that are not available in the remote package repository? Would I need to push the feature/my-feature branch back to GitHub for it to appear properly?

Pushing the local feature branch to the fork repo at GitHub allows me to install the branch from GitHub, but studio does not kick in at any point.

rask avatar Apr 12 '17 12:04 rask

Please try out the newly released 0.14.0-beta1 version. I am hoping this issue will be gone.

(Note that you will have to run composer update and composer dump-autoload for the installation of any package.)

franzliedke avatar Dec 02 '17 20:12 franzliedke