-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
Combine V4 & V5 together #2248
Combine V4 & V5 together #2248
Conversation
@FredyC awesome for picking this up! I think it is greatly gonna help managing the two versions. As initial thought I would still keep the build, test and source process completely separate. The reason for this is that v4 has (iirc, and otherwise probably will in the future) different browser and compatibility requirements, so the build and TS configuration might very well differ over time, and it would be a shame that v5/6/7 is build with unnecessary polyfills or language restrictions because of v4. For the same reason I would keep tests apart, so that we can be picky about what we backport and what not. Also it might make developing a feature easier if you can focus on first getting it right in one of the two. Edit: same for flow types. Note that MST has also a multi package setup. I think always releasing both on the same time would be ok by the way, even if it means that one of them occassionally has no actual change. |
I am not that familiar with Flow and I am not sure how could that be split by version. However, I do think that having the same API layer for both versions and thus the same types is a sort of sanity check as well.
Yea, but that's just a regular Lerna based monorepo. I believe this is something different. I don't even think Lerna allows to publish to the same package with two different versions at once. I can really imagine over time to have an I agree with everything else. Take it slowly, for now, and expand on the idea later. I also want to update the PR template to explain how to contribute to this new structure. Currently, I am waiting for that new PR to be resolved to avoid painful patching. Then I will jump right into it. |
I'd just put two packages into one repo for starter, and wire up the scripts. Lerna is probably overkill here and has it's own issues. This is not an |
1bbe1ce
to
4b15120
Compare
Alright, I am done here. By tomorrow I will merge this and we can figure out possible issues later. Probably best not to keep this PR open for too long. Summary of changes
As for publishing, we agreed with Michel it's fine to keep versions in sync even if there would be a change in either major version only. An updated publishing script does streamline this process. Generally, tests are working. The "mixed-versions" test is broken completely and I did not want to bother with that now and delay this PR more. The "webpack-regression" tests are green in CI build, but failing nonetheless. Not sure if it's even needed anymore and what was the purpose of that. |
Move them over to a separate PR for now in that case?
It's really old, to verify somewhere in the past that we bundled correctly. Feel free to drop it if it is in the way. One critical issue I found is that version 4 will be published under the Beyond that LGTM. So feel free to merge if above things are addressed. Than we can deal with the fallout later. |
Thanks for pointing out about dist-tag, did not realize that, so that's fixed now. Removed webpack tests. Who knows how long have been the mixed-versions tests broken, it wasn't executing as part of CI. I will open a PR with that added to CI and someone can hopefully look at that later. |
awesome, thanks for doing this! |
We talked about in #2120.
I created
src/v4
and copiedmobx4-master
over to it. Thesrc/v5
is source of a current master. That was an easy part :) In some distant future, we might have acommon
folder with code that is the same for both versions.Next steps