studio

A workbench for developing Composer packages.

MIT License

Downloads
599.5K
Stars
1.1K
Committers
17

Bot releases are visible (Hide)

studio - 0.16.0 Latest Release

Published by apfelbox about 2 years ago

This update includes several BC adaptions and fixes, that occurred with new releases of Composer 2.x. Also we improved compatibility with PHP 8.1 (and also test for it now, too).

What's Changed

New Contributors

Full Changelog: https://github.com/franzliedke/studio/compare/0.15.0...0.16.0

studio - 0.15.0

Published by franzliedke almost 4 years ago

Hello again. With this release, Studio is finally compatible with Composer 2.

Also, please welcome @apfelbox as an additional maintainer! 🙌

Summary

  • Drop support for PHP <7.
  • Add support for Composer 2 (#101, #104 by @emodric).
  • Add support for Symfony 5.0 (#98, #102 and #106 by @emodric and @apfelbox).
  • When using create to clone packages, additional Git options can be provided (#93 by @gnutix).
  • Deduplicate entries in studio.json (#94 and #103 by @gnutix and @apfelbox).
studio - [BETA] Stop touching the lockfile

Published by franzliedke almost 7 years ago

This is a fundamental rewrite of the Composer integration. Now, instead of adding the loaded paths to Composer's search path (by creating path repositories for them), we replace the packages downloaded by Composer that can be found in the loaded paths by symlinks to the local paths.

All of this should hopefully fix several issues, e.g. #52, #58, #65, and #72.

studio - Back on the release track

Published by franzliedke almost 7 years ago

Time to get things moving again. This release updates Symfony version constraints to allow people to install Studio together with other projects using Symfony v4.

Summary

  • Allow installation with Symfony 4.0 (#81 by @emodric).
  • Use "proper" way to reference PHPUnit classes in the stubs (#79 by @simonhunt).
studio - Small update

Published by franzliedke about 7 years ago

Long time, no see. Finally, a new update. More changes are coming soon!

Summary

  • Use more recent versions when starting a new project with PhpUnit and PhpSpec (#76).
studio - Be more forgiving with namespace names

Published by franzliedke almost 8 years ago

A small patch release with a minor suggested improvement.

Summary

  • Small refactorings.
  • Replace slashes with backslashes when asking for namespaces (#70).
studio - New unload command

Published by franzliedke almost 8 years ago

Another patch release with a small community-contributed feature: the unload command.

Summary

  • unload command: Reverse operation of the load command: This will remove the given entry from the studio.json file, resulting in Composer no longer finding the packages in that path, unless they are available from Packagist (#67, implemented by @rask in #68).
studio - Wildcard paths

Published by franzliedke over 8 years ago

Another minor release, caused by changes to the config file format and slightly different semantics for the load command.

Summary

  • Path wildcards: Similar to Composer's path repositories, Studio now allows for paths to contain wildcards. This makes it super easy to load multiple packages at once in a workbench-like environment (#54).
  • Changes:
    • The format of studio.json has changed - it only stores paths (and wildcards) to load, no more mapping from packages to paths.
    • The load command now accepts glob paths - these can contain wildcards.

More changes are in the pipeline, that will deal with some problems introduced in the 0.10 revamp.

studio - Complete revamp - path repositories FTW

Published by franzliedke over 8 years ago

Almost ready for a 1.0 release now.

Revamp under the hood

This release marks the culmination of a lot of work, diving into Composer's innards and even sending a pull request to Composer. Thus, to enjoy this release to its fullest, make sure you're running an up-to-date version of Composer. (You can do so by running composer self-update.)

Most importantly, Studio now makes use of Composer's path repositories instead of manipulating the generated autoloader files. The benefit: Studio-managed packages are symlinked directly into the vendor directory, and version conflicts are handled completely by Composer. Let Composer do what it dos best.

Thus, besides giving you a helping hand in kickstarting new Composer packages, Studio now primarily provides a nice interface to working with path repositories. The benefit over doing it by hand: no manipulation of the composer.json file, which is shared in the repository. Instead, a local studio.json files describes your development setup and can be ignored by other maintainers or contributors of your project.

I have successfully used this approach for a while now in developing Flarum - in a setup with various core libraries and more than ten extension packages. It works really well!

Summary

  • Path repositories: As described above, this also takes care of duplicate dependencies (#14, #33, #42, #45).
  • Autoloading files: With these changes, file autoloaders now work well, too (#29).
  • composer update will now also affect managed packages' dependencies (#26).
  • Studio now works well Composer's custom installers (#36).
  • Allow creating packages as Git submodules (#31).
  • Changes:
    • Compatibility with Symfony 3.x (#20, #40, #44, #47).
    • Updates for Composer's plugin API versioning (#43, #46).
    • Clearly ask for confirmation when scrapping packages (#39).
  • Bug fixes:
    • More error checking when running studio create (#12).
    • scrap command could not handle symlinks (#23).
    • Don't crash when trying to load locations that don't exist (#38).

Thanks for your patience and to all the people who made this release possible - from issues and fruitful discussion to pull requests. 🎉

studio - Fix autoloading

Published by franzliedke over 9 years ago

Autoloading was basically useless up to this release, sorry.

  • Bug fix:
    • Autoload files from Studio-managed projects are now properly included in Composer's autoload.php file.
studio - Usability improvements

Published by franzliedke over 9 years ago

  • Improved error messages: When entering invalid package names or namespaces, the error messages now explain the requirements. See #8.
  • load command: Start managing existing directories. See #9.
  • Bug fix:
    • Less unneeded backslashes in generated studio.json file.
studio - composer.json cleanup

Published by franzliedke over 9 years ago

  • Made the license explicit for this library. It is published under the terms of the MIT License.
  • Bug fix:
    • Generated composer.json files will now contain less backslashes where they are not needed.
studio - PhpSpec support

Published by franzliedke over 9 years ago

  • PhpSpec: Studio will now configure PhpSpec if requested (include dependencies and configure test suite with autoloading).
  • Bug fix:
    • Fixed broken autoloading for PhpUnit tests namespace.
studio - PSR-4 and scrap command

Published by franzliedke over 9 years ago

  • PSR-4 autoloading: Studio will now configure Composer to use PSR-4 autoloading for your source and test files (if PhpUnit is configured).
  • scrap command: Makes it easy to throw away package (may only be useful for me during development)
studio - First release

Published by franzliedke over 9 years ago

Ready for prime time!

We'll see whether this is going in the right direction and add many more tools in the next releases.

Package Rankings
Top 1.1% on Packagist.org
Related Projects