Open Vincz opened 3 years ago
Hey @Vincz ! I have some more time right now too. A discord meeting could make thing easier to prepare next steps indeed.
Hi @Vincz
a discord call would be good, but I can do it only at the end of January, as I have study right now
Ok, let's plan the meeting for the end of January then. @murtukov Let us know as soon as you're available !
Here is my view of the future work:
[ ] Separate modules (assignees: all)
The project is undergoing a performance degradation with each subsequent release. For this reason we decided to split the bundle into separate ones. @Vincz you could try to create the GraphQLAnnotationsBundle, but there is a naming problem, which we should discuss. Don't know if Annotations and Attributes should be separate bundles. I would say it's our highest priority task.
[x] RFC #786 Rename classes, tags and functions (assignee: @murtukov)
Finish this task (aka transitional version 0.14)
[ ] Documentation (assignees: @murtukov, @Vincz)
Create a dedicated website with Docusaurus 2 and fully rewrite the current documentation.
[ ] RFC #708 Resolver definition enhancement (assignees: @mcg-web)
@mcg-web is working on it. This work is very important, as it makes the bundle not so heavily dependent on expression language, which in its turn opens the way to separate the expression language feature into a separate module and introduce alternative options to define query resolvers. It will also affects the text in the documentation section "Introduction", as currently it's written that users have to use expression language in order to define their resolvers. We need to see the first implementation to make further discussions.
[ ] Hydrator (assignees: @murtukov)
I am still planning to finish this feature. I canceled all the work already done to start it over and focus on attributes instead of annotations.
[ ] Builders (assignees: ?)
Rework builders as mentioned in #587
[ ] Common code (assignees: @murtukov)
Identify common code areas and unify them, to get rid of code repetition, e.g. the validation logic in the annotation feature and in the validator feature. Also the hydrator would need some code snippets from your annotations feature. Currently I have no clear vision of how we are going to do that, especially when we separate the bundle into modules.
[ ] Console (assignees: ?)
This is a very distant and abstract idea, but I would like to add new commands to the console to automatize some routine tasks. For example graphql:generate-type
, where you type a name, a couple of other options and BOOM, you will have ready to use GraphQL types with a single command, for example UserInput
, UserUpdate
and UserQuery
. Additionally it could be possible to edit all 3 types with a single command, for example rename all related types, or add, remove validation, or move validation into interface, etc. Possibly this task can partly perform the TypeBuilder mentioned in #587. The room for ideas for console commands is large enough.
[ ] GraphQL SDL (assignees: ?)
Enhance the type definitions written in SDL. It's totally possible to introduce custom directives, so that we could define resolver metods and validation rules directly in the SDL.
@Vincz @mcg-web complement this list with your ideas. Just edit this post to keep the list in a single place.
@murtukov This list is fine by me. I wanted to push the doctrine integration even more (crud builders, query builder generator based on requested fields, etc...) but not sure how it relates to builders / hydrator and console (we should discuss about it).
About the separates modules, I agree. We should then rework the parsing process. About annotations and attributes, I still don't know if we should try to keep them in sync at all cost or not.
This list is fine by me and at the moment we should focus on this items to bring the v1.0 to life.
@Vincz I don't consider all these items to be implemented in the 1.0, that's too much. The first 2 entries would be enough
Hey guys! There is a lot of stuff on hold (a lot of refactoring made by @murtukov). @mcg-web You also said that you were working on a big refactoring for resolvers, etc... And I think @bartv2 also had something in the pipe (#753) Also, PHP8 is now out with PHP attributes (and would allow nice features). On my side, I should have a little bit of time in the coming months for the project and wanted to push a little bit more the integration with Doctrine. What should we do? Should we have some sort of Discord meeting or something to plan the next steps?