studio
studio copied to clipboard
Workflow for replacing an existing package install
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 invendors/
- I forked
org/repo
torhyek/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 insidevendors
. 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 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.
@rhyek Any luck with Robert's suggestions?
What is the version constraint that you have for org/repo
in your composer.json?
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.
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.)