-
Notifications
You must be signed in to change notification settings - Fork 14
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
About v3 and v4 - Deprecate v3? #447
Comments
@GaetanCottrez Thank you for your suggestions. Comparison between Lerna and Turbo Both Lerna and Turbo are tools used to manage monorepositories, but they have different approaches. Lerna is widely used to manage multiple npm packages within a single repository, facilitating versioning and individual publishing of each package. Turbo, created by Vercel, focuses on speeding up builds and sharing cache, optimizing the workflow in monorepos.
The presence of the |
@GaetanCottrez I thought of an action plan with next steps
|
@4lessandrodev This is a wonderful action plan! If the community can help you with certain tasks, let us know ;-). I would be delighted to contribute towards this transition. |
I stumbled upon a Gitbook you created a few years ago, but it hasn't been updated. I suggest maybe relaunching the documentation on your link, which would likely be more user-friendly than reading a README.md: https://alessandroadm.gitbook.io/types-ddd |
Hi @GaetanCottrez, I’ve just created a project based on the migration plan. You can explore it here: Project Link] Feel free to review it and contribute to any tasks that catch your attention. Your input would be greatly appreciated! Let me know if you have any questions or suggestions. |
And once again, a huge thank you for your work and for this library, truly! I use it in many projects and on a daily basis.
Here are some ideas for improvements and greater clarity.
Dependency Management
So, I don’t know exactly how Lerna works (I’m a user of Turbo created by Vercel), but for example, with Turbo, you have two strategies for managing dependencies:
package.json
(and not in the individualpackage.json
files of the packages).package.json
of the specific package (and not in the globalpackage.json
of the repository).For version 4, I noticed that all your packages contain rich-domain except the
logger
package. If you were using Turbo, it would be wise to remove the rich-domain dependency from the packages and keep it in the rootpackage.json
of the repository.Even if
logger
could technically use rich-domain (which wouldn’t make sense), it won’t affect the build or the size of this package's build.I don’t know if Lerna adopts the same strategies as Turbo, but if it does, I would advise keeping the dependency only in the root
package.json
, which will make version upgrades easier instead of having to change everypackage.json
.Managing v3 and v4
If v3 and v4 offer the same features and it’s just a matter of restructuring the repository into packages, then it might be wise to consider deprecating
types-ddd
and communicating the migration to@type-ddd/core
, to stop maintaining both versions. If necessary, you could provide documentation for migrating from v3 (types-ddd
) to v4 (@type-ddd/core
).Example App Based on
types-ddd
and@type-ddd/core
I’m not sure if it would be beneficial to consolidate your example repositories (finance-project-ddd, simple-ddd-app-example, ddd-app, ddd-demo-youtube) into an
examples
folder in your repository or to add links to all these repositories in your documentation (currently, only the link toddd-app
is there).Because from my own experience, I had to look through your GitHub profile to find the examples and see how each mechanism of your library works in different contexts (especially to implement a Domain Events system with Redis Queue or SQS in my use case).
What do you think about that?
Originally posted by @GaetanCottrez in #444 (comment)
The text was updated successfully, but these errors were encountered: