-
-
Notifications
You must be signed in to change notification settings - Fork 23
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
preview implementation of the Laminas ecosystem RFC #226
base: staging
Are you sure you want to change the base?
preview implementation of the Laminas ecosystem RFC #226
Conversation
Signed-off-by: Jurj-Bogdan <[email protected]>
@Jurj-Bogdan |
Is not built yet, I need to do some git operations first |
{ | ||
"packagistUrl": "https://packagist.org/packages/netglue/laminas-messenger", | ||
"githubUrl": "https://github.com/netglue/laminas-messenger", | ||
"categories": ["laminas", "messenger"], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"laminas" does not make sense here, because we need to differentiate between integration in Mezzio-based and/or laminas-mvc-based applications. This means that the package can be used as a:
- module in a laminas-mvc-based application
- and/or via a config provider in a Mezzio-based application
Maybe the categories are not suitable for this and a separate entry or entries are required.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
At the moment the "categories" key is only used for filtering in the interface, so I added a few here and there so they'll be visible in the preview - once a new role is found for them, I can upgrade the functionality to fit the request of course.
Even if the current approach of "user defined keywords" is kept, some other guidelines could be defined for them if wanted.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we need to brainstorm a bit about those possible categories.
My suggestions:
|
…rated per build Signed-off-by: Jurj-Bogdan <[email protected]>
My 2 cents:
|
Also, rather than "See on GitHub", perhaps just "Source" with the icon for the relevant source code hosting platform? |
How are you/will you determine packages to include? I ask, because, for instance, the phly-simple-page package on there likely should not be (I've not updated it in 3 years, and am in fact planning on archiving all my ZF2 packages (even if I did update them for Laminas at some point). |
All packages we have listed now are only test data. |
|
A consistent layout would also be desirable, and the unnecessary spacing due to paragraphs is not necessary. The description text at the end, then the problems are reduced. Example: https://getgrav.org/downloads/plugins |
We can call it "directory" instead , even the word "ecosystem" is more catchy :-)
Agree, now it is too much information.
The information will be gathered only from Packagist, as I presume a mandatory condition for a package to be lsited here will be to be installable using Composer.
@Jurj-Bogdan we need a Flag here, separate from "category". |
By the way, this is boring: https://symfony.com/bundles 😉
Ah, this was the original inspiration for the layout. |
I have started tweaking the info such as the keywords from composer being taken out, but keeping the user defined ones (probably going to limit those to 5? as well). Will also provide a sort of flag as @arhimede mentioned, with preset values which should be used as filters as well (thinking of adding a navbar around the search input for these "preset filters" - category, type and the new "flag") Thanks @froschdesign for the example, i'll work on a version with the social preview working similar to getgrav.org's images; that is unless @gsteel 's question of removing images altogether is preferred, of course. |
Another example: https://astro.build/integrations/ |
Adding relevant keywords to your composer package is a great idea - I wonder if the packagist api can handle that? We'd need a way of excluding packages too though. |
The packages must be added manually, not automatically! Or have I missed something? |
I was just ruminating on being able to automate that - it's probably best to stick to the plan and add them manually as originally specified 👍 |
Adding must be done proactively and I'm not worried about that, because some people are already waiting for an official listing. |
Signed-off-by: Jurj-Bogdan <[email protected]>
Signed-off-by: Jurj-Bogdan <[email protected]>
an overview for the latest commits:
I haven't yet changed the information gathering process, until it's decided if platforms other than GitHub should be included. Same goes to using the "ecosystem" term, I'll go ahead and change that once agreed on a replacement. |
A few notes:
|
|
But this does not help the user / visitor of the website. The filter must be self-explanatory on the website. I assume that this is what @weierophinney means. |
probably the word "Tool" is not the best here. We may find another one.
|
Signed-off-by: Jurj-Bogdan <[email protected]>
Signed-off-by: Jurj-Bogdan <[email protected]>
bootstrap/js/_ecosystem.js
Outdated
@@ -0,0 +1,114 @@ | |||
'use strict'; | |||
|
|||
$(document).ready(function () { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Vanilla JavaScript is good in 2024 and it should be dropped when we move to Bootstrap 5.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fair enough, I saw jquery was already added as a dependency and went with it, but I'll go ahead and refactor
Added an extra GH workflow to make sure the .json file being edited by users is not empty and is valid JSON, as well as making sure all the required keys are defined (should I also extend it so the values are checked as well?). Let me know if another way to handle this would be preferred, and also of any other changes to the design and/or logic as well, of course. |
src/Ecosystem/templates/list.phtml
Outdated
</div> | ||
|
||
<div class="btn-group"> | ||
<button id="clear-filters-button" type="button" class="btn btn-outline-danger">Clear filters <i class="bi bi-x-circle"></i></button> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The button to clear the filter should only be visible if the user has set a filter and should also reset the search. Otherwise I find the handling confusing.
Signed-off-by: Jurj-Bogdan <[email protected]>
Signed-off-by: Jurj-Bogdan <[email protected]>
Replaced jQuery with vanilla JS in the custom script, and the preview has been updated: https://preview-1-hy2vwsq-2ja7ciew2nbkm.us-2.platformsh.site/ecosystem/ I'd would need some input for a few pretty major issues:
|
Yes - exactly this last approach. If we can't look up an image, use one based on the category.
Assuming you address the default image solution, yes.
Since we can control the environment where the command runs, cURL is fine.
Yes, please. |
Description
This PR is an initial implementation for the Laminas ecosystem RFC. There are still features I think should be implemented (i'll list a few at the end), but hopefully there's enough for a preview to help continue the conversation started in the RFC.
Current functionality
The
laminas ecosystem:create-db
andlaminas ecosystem:seed-db
commands are used to generate and update the list found on '/ecosystem' by using the user-provided data fromecosystem-packages.json
.As the consensus from the RFC is that packages must be installable via composer, the Packagist url is mandatory and used to make a single request per package, from which the displayed data is extracted.
If provided, the 'homepage' and 'githubUrl' data will be used to overwrite the data coming from Packagist, and the 'categories' are used as extra filtering options in the package listing.
The
create-db
command currently works similar to the blog version, regenerating the whole database file after each build, although i would change this to make it more future proof. I've thought of theseed-db
command as a cron used to select packages not updated in X hours and update some of the relevant data - would something real-time (or closer to) be desired instead?As for the listing page ('/ecosystem') I've left a low page size to make it easier to test the pagination with the few default packages. For now there's searching by package name and filtering by "tags" (keywords taken from packagist) and "categories" defined by the user in the json file.
what next?
ecosystem-packages.json
file, to make it easier for the reviewer ?