Merging submodules in web-platform-tests [was: Re: csswg-test merge into web-platform-tests]

On 28/03/17 15:30, Geoffrey Sneddon wrote:
> On Fri, Mar 24, 2017 at 4:22 PM, Geoffrey Sneddon <me@gsnedders.com> wrote:
>>  * Monday, afternoon PDT: the Mercurial repo and Shepherd will become
>> read-only, and Mercurial will stop being sync'd with GitHub.
>
> This is now done.
>
>>  * Tuesday afternoon BST: the merge will land on master on
>> web-platform-tests; all future pull requests and issues should be
>> filed on the web-platform-tests repository. csswg-test will become a
>> historical archive, and almost everyone with write access will lose
>> it. Hopefully (though not quite certainly) all issues on csswg-test
>> will be moved over on Tuesday afternoon as well (failing that,
>> Wednesday morning).
>
> This is on track. I expect issues to be moved tomorrow at this point.

Once this work lands I intend to "monorepo all the things" i.e. move the 
various submodules of web-platform-tests that are really only used  by 
web-platform-tests (or primarily used by web-platform-tests, but also as 
e.g. a package from pypi) in as normal subdirectories.

This has several advantages (not just "submodules are evil", although 
that might be enough); it makes cross-cutting changes easier (e.g. 
things that affect both wpt-tools and the stability checker). It also 
makes it easier for browsers with two-way sync to make changes to things 
that are currently submodules.

Ideally we would do (or at least start) this next week. I realise that 
for people importing wpt there might be some work associated with this 
change; please let me know if I need to hold back. For the record I 
think the affected modules are:

testharness.js
wpt-tools
wptserve
wdclient*

* This is currently under MPL2.0; see below

This would leave the following submodules:
resources/webidl2
tools/html5lib
tools/pytest
tools/pywebsocket
tools/six

I think these are mostly/entirely? external code that it doesn't make 
much sense to include directly, although we could consider using git 
subtree instead of submodules.

At the same time (or at least soon after) I would like to inline 
wptrunner into web-platform-tests, for largely the same reason e.g. it 
will allow us to update wptrunner without breaking pull requests due to 
unsynchronised changes, allow us to remove code from the stability 
checker, and allow us to build-in a simple way to run tests from the 
command line (e.g. |wptrun edge dom/historical.html|). However like 
wdclient this was originally written at Mozilla in a way that put it 
under MPL2.0 by default. I will start a process of trying to relicense 
this code, but it's not clear how long that may take. Would inlining 
these despite the different license cause issues for anyone in the short 
term? I"m happy to delay if it's an issue, of course.

Assuming this plan is OK, it would be great to close out as many PRs and 
issues in the affected submodules as possible. I don't expect we will 
clean out everything, but it will still be possible to move PRs by hand 
after the merge, and of course the issue trackers will still work.

Received on Tuesday, 28 March 2017 15:50:34 UTC