Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DX] Tools curation #92

Closed
dkarlovi opened this issue Aug 23, 2018 · 10 comments
Closed

[DX] Tools curation #92

dkarlovi opened this issue Aug 23, 2018 · 10 comments

Comments

@dkarlovi
Copy link
Contributor

dkarlovi commented Aug 23, 2018

Since the added value with this image is the selection and discovery of actually valuable PHP related QA and similar tools (which you might not know about), it might make sense to make that more prominent.

  1. For example, there are tools which don't seem to work:
$ phpqa churn run

Fatal error: Uncaught TypeError: Argument 1 passed to Symfony\Component\Yaml\Yaml::parse() must be of the type string, boolean given, called in /tools/.composer/vendor-bin/tools/vendor/bmitch/churn-php/src/Commands/ChurnCommand.php on line 81 and defined in /tools/.composer/vendor-bin/tools/vendor/symfony/yaml/Yaml.php:76
  1. There are also tools which were added, but in the meantime a better candidate for the same task appeared, example phpca vs. ComposerRequireChecker
  2. some tools might be obsoleted upstream in the meantime

What I propose is this:

  1. introduce a way to mark tools as broken or deprecated (with optional suggestion for an alternative)
  2. introduce a way to tag tools (with tags such as composer, util, analysis, style, test, phpstan, etc).
  3. introduce a way to list tools by tag, example phpqa list style
  4. introduce a way to provide a short help about the tool, example phpqa info phpstan-doctrine would explain how to enable it, with even a short example
  5. have a bit of a nicer CLI for the listing (can we use Symfony Console here?)

It would probably be best if we separated tools out ftom the JSON into something else to make it more maintainable in te future.

Overall, I think this project might gain some traction as other projects start using it for their CI more so it would benefit from these kind of small tweaks which raise the value quite a bit.

WDYT?

@jakzal
Copy link
Owner

jakzal commented Aug 24, 2018

Great ideas. Some are maybe going in the direction similar to Flex - it's a small step from providing instructions how to enable a tool, to enabling It automatically ;)

I do have a draft version of the tool migrated to the Symfony console component. As I mentioned the other day I was planning to extract the tool to a separate repo, and I think if there's any new extensions coming, this has to be done.

The tools.php test command was intended to discover broken tools. If a tool is broken for too long it should be removed from the image. I thought of adding it to a legacy section of tools in the readme.

image

@dkarlovi
Copy link
Contributor Author

Awesome, glad we're on the same page. What can I do to help?

@jakzal
Copy link
Owner

jakzal commented Aug 24, 2018

As soon as I publish the new repo you could start implementing above features ;)

Not sure when I'm gonna publish it though...

@dkarlovi
Copy link
Contributor Author

Alright, make sure to mention me in an issue in a new repo when you create it. 👍

@jakzal
Copy link
Owner

jakzal commented Aug 29, 2018

@dkarlovi alright...

First test release, (really) quickly migrated to Symfony console with not much cleanups: https://github.com/jakzal/toolbox/releases/download/v0.0.1/toolbox.phar

What I did is I split namespaces and classes into separate files, removed some complexity (I hope), and covered code with tests. Did all this minumum updates since it's no longer just a supporting script, but it becomes an app with all its maintenance burden.

There's still few cleanups I need to do before I'd like people to submit their pull requests so hold your horses until I release 1.0.0 please.

@jakzal
Copy link
Owner

jakzal commented Aug 29, 2018

By the way, I called it toolbox. Happy to hear other name suggestions if this one's no good.

@dkarlovi
Copy link
Contributor Author

Whoa, this looks like a ton of work, well done. Toolbox sounds fine to me. 👍

@jakzal
Copy link
Owner

jakzal commented Sep 5, 2018

Toolbox code base is almost stable for v1. I'd like to add two more features before we an start using it here:

  • --target-dir for install and test commands
  • tags inclusion/exclusion support (tool exclusion based on php version could be implemented this way)

I hope to do this in the upcoming days.

@dkarlovi
Copy link
Contributor Author

dkarlovi commented Sep 6, 2018

Sounds great, we can then close my obsolete PRs and I'll rebase the rest, if any. 👍

@dkarlovi
Copy link
Contributor Author

Migrated to jakzal/toolbox#12

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants