Jannis02/22/2020, 12:01 PM
. • It being in its own repo means other repos will use a snapshot version of it. This means that the changes we are testing are not present in the compiled code of
. As an example: I have a pr that changes the signature of a method in
we have, in
, a law which uses
which both come from the snapshot of
. This means they don't have the changes and this leads to `AbstractMethodError`'s at runtime. This was partially solved by @Rachel with a short term workaround already by recompiling
with a current version of the current repo before testing. For this pr this meant that the tests using
worked fine, but
still failed because it came from
and that is not being recompiled (it does not even have the required changes!). There are probably other compile issues similar to this, which are less discover-able and harder to debug. • Any change in a core repo that changes a datatypes representation, it's equality instance or any method signature covered by laws has to first change
otherwise it will never pass a test. This is a significant hindrance for changes as it leads to lots of fractured prs. In my opinion the best way out of this is to split
for each repo, such that
etc. Then force
to only depend on local projects (or other
). This would mean that changes to, for example,
that would otherwise need to go to
are now local. It still means we need to create follow up prs in the other repos, but solves the issues with the laws. Splitting this up is also a fast process which can be done incrementally: Create a new module per repo, copy all laws/generators and eq instances for this repo and last make all local tests depend on it. This technically should mean no test has to change (although some laws may have to change, like
). Unrelated to this I'd also propose to rename
to something like
as it really only contains laws, generators and equality instances, not actual tests. Thoughts/opinions/other ideas?
pakoito02/22/2020, 12:03 PM
Thoughts/opinions/other ideas?Back to monorepo 😄
Jannis02/22/2020, 12:05 PM
is a good idea even with a monorepo. It was always such a mess 😅
raulraja02/22/2020, 12:13 PM
simon.vergauwen02/22/2020, 12:17 PM
raulraja02/22/2020, 12:31 PM
Jannis02/22/2020, 12:34 PM
raulraja02/22/2020, 12:35 PM
Jannis02/22/2020, 12:58 PM
where we can discuss this approach further, because this really needs to be solved asap, because it will be blocking for some pull requests...
for some reason has a dependency on all of arrow (through
which comes from
). This makes my initial plan of copying the source and just deleting/changing everything that fails to compile impossible for now, because you can actually do
etc in `arrow-core`^^ I'll add the pr when this is fixed, already wrote rachel because I have no idea how that even happens 😅
Rachel02/24/2020, 9:31 AM
are the two "hot" points.
should be re-organized as well. It was split and it doesn't contain the site. However, it still has source code that is used for code snippets from the apidocs and it can be split as well for every library.
Rachel02/25/2020, 1:58 AM
. It will be improved during next days.
Arkadii Ivanov02/25/2020, 11:38 AM
was archived. Aaaaaandd, my PR (https://github.com/arrow-kt/arrow-test/pull/10) was abandoned, again 😄 How should I proceed with the PR? It blocks my another PR (https://github.com/arrow-kt/arrow-fx/pull/33).
aballano02/25/2020, 11:39 AM
Rachel02/25/2020, 11:40 AM
simon.vergauwen02/25/2020, 12:05 PM
Arkadii Ivanov02/25/2020, 12:11 PM
Rachel02/25/2020, 12:12 PM
Arkadii Ivanov02/25/2020, 12:13 PM