Closed
Bug 1471888
Opened 6 years ago
Closed 6 years ago
[mozprofile] Add support for Python 3
Categories
(Testing :: Mozbase, enhancement, P3)
Tracking
(firefox64 fixed)
VERIFIED
FIXED
mozilla64
Tracking | Status | |
---|---|---|
firefox64 | --- | fixed |
People
(Reporter: davehunt, Assigned: slepushkin, Mentored)
References
Details
(Keywords: good-first-bug)
Attachments
(2 files)
+++ This bug was initially created as a clone of Bug #1425399 +++
Without dropping support for legacy python, we need to add support for Python 3. Whilst some aspects were taken care of in bug 1425399 we are now able to run the unit tests against Python 3, and many of these are failing.
To work on this bug you will need to install and configure Mercurial, which will enable you to download the Firefox source code. It will also be used to commit your changes locally and prepare a patch for review. See the installation guide at https://mozilla-version-control-tools.readthedocs.io/en/latest/hgmozilla/installing.html for help getting Mercurial on your system. Once installed, there are some extensions we recommend installing, details of these can be found here: https://mozilla-version-control-tools.readthedocs.io/en/latest/hgmozilla/extensions.html
To clone the Firefox source code we recommend using the unified repository. Details of this and how to create a bookmark for your work can be found here: https://mozilla-version-control-tools.readthedocs.io/en/latest/hgmozilla/unifiedrepo.html
As this bug relates to Python 3, you will need to have this installed on your system. Our continuous integration is currently using Python 3.5, so for best results we recommend using the same version locally. There are a number of ways to install Python, and they vary depending on your environment. We suggest reading over the guides at http://docs.python-guide.org/en/latest/starting/installation/#python-3-installation-guides to find the best method for you. Note that we also need to maintain support for Python 2, so you'll also need to have Python 2.7 installed.
Whilst we're moving towards adding support for Python 3, we've disabled any tests that fail against this version. This means that in order to work on this bug you will need to enable the tests. This can be done by removing "skip-if = python == 3" from the manifest file in `testing/mozbase/mozprofile/tests/manifest.ini`
To run the tests against Python 3, execute the following command:
```
mach python-test --python=3.5 testing/mozbase/mozprofile
```
Work through the test failures, and update the tests and source code for the package to simultaneously support Python 2.7 and Python 3.5. You can always check that your changes have not inadvertently broken support for Python 2 by using `--python=2.7` on the command line.
If you're new to Python 3, the guide at https://docs.python.org/3/howto/pyporting.html may help you to get started with understanding the differences. To assist with supporting both Python 2 and 3, we have vendored the "six" package. You can read more about this and how to use it at https://pythonhosted.org/six/
Note that this package depends on others that may not yet support Python 3. If these dependencies are preventing tests from passing, then we can block this bug on getting support in those packages. If there are circular dependencies then we may need to coordinate landing a sequence of patches between bugs,
Once the package supports Python 3 and the tests pass, we will also need to prepare for a new release. Bump the version number in `testing/mozbase/mozprofile/setup.py` to "2.0.0", and update the classifiers so they reflect the versions of Python that we now support.
Finally, to prepare a universal distribution, create a `testing/mozbase/mozprofile/setup.cfg` file with the following contents:
```
[bdist_wheel]
universal=1
```
When your patch(es) are ready, you will need to push them for review. We are use MozReview for this, and instructions for how to prepare your machine and how to structure your commit messages can be found in our guide: https://mozilla-version-control-tools.readthedocs.io/en/latest/mozreview-user.html
There may be some review issues to address, but once your contribution has been approved and subsequently landed, we will release the new version of the package!
Updated•6 years ago
|
Priority: -- → P3
Comment 1•6 years ago
|
||
Hello! I'd like to fix this bug , in case no one is working on this .
I did setup the build environment for Firefox, and any further mentoring would be great!
Assignee | ||
Comment 2•6 years ago
|
||
Hi. Can I work on this or should I choose something else?
Reporter | ||
Comment 3•6 years ago
|
||
(In reply to Pavel Slepushkin from comment #2)
> Hi. Can I work on this or should I choose something else?
I'll assign this to you Pavel, but would you first be able to look at bug 1483794?
Assignee: nobody → slepushkin
Status: NEW → ASSIGNED
Assignee | ||
Comment 4•6 years ago
|
||
FYI: Patch is ready, but https://reviewboard.mozilla.org/ is down for second day in row and I cannot push it
Comment 5•6 years ago
|
||
Sorry, but please note that Mozreview has been shutdown by last week. From now on you will have to use Phabricator to submit your patches. Have a look at http://moz-conduit.readthedocs.io/ in how to set it up.
Assignee | ||
Comment 6•6 years ago
|
||
Hello.
I've submitted patch for review
https://phabricator.services.mozilla.com/differential/diff/12722/
There's 1 obvious error - I've submitted 3 files (.arcconfig , .hgignore, .gitignore) - it was my first time with arcanist and diff was submitted as a result of 'arc diff --preview'
And now I don't know how to delete these files from diff or my diff as a whole.
Also the patch somehow is not attached to this bug as it was with mercurial.
Assignee | ||
Comment 7•6 years ago
|
||
Bug 1471888 - [mozprofile] Add support for Python 3.
Assignee | ||
Comment 8•6 years ago
|
||
Hello.
I've submitted the patch, fixed all issues from reviewbot and waiting for review.
Please let me know if I've missed anything.
Flags: needinfo?(dave.hunt)
Reporter | ||
Updated•6 years ago
|
Flags: needinfo?(dave.hunt)
Reporter | ||
Comment 9•6 years ago
|
||
Assignee | ||
Comment 10•6 years ago
|
||
Updated revision - https://phabricator.services.mozilla.com/D5187?id=14158
Reporter | ||
Comment 11•6 years ago
|
||
Comment on attachment 9007020 [details]
Bug 1471888 - [mozprofile] Add support for Python 3. r=davehunt
Dave Hunt [:davehunt] ⌚️UTC+1 has approved the revision.
Attachment #9007020 -
Flags: review+
Comment 12•6 years ago
|
||
Pushed by dhunt@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/30ec08a53991
[mozprofile] Add support for Python 3. r=davehunt
Comment 13•6 years ago
|
||
Backed out for awsy test failures.
Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&tochange=db2ac775e38ade2e7cbbf4318d5866bafaedc2f6&fromchange=30ec08a539919dc56d4a2930885f6ea49a80dc70&filter-searchStr=Linux%20x64%20QuantumRender%20opt%20Are%20we%20slim%20yet%20tests%20by%20TaskCluster%20with%20e10s%20test-linux64-qr%2Fopt-awsy-base-e10s%20SY-e10s(ab)&selectedJob=198626262&filter-resultStatus=testfailed&filter-resultStatus=busted&filter-resultStatus=exception&filter-classifiedState=unclassified
Failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=198626262&repo=autoland&lineNumber=1002
Backout link: https://hg.mozilla.org/integration/autoland/rev/db2ac775e38ade2e7cbbf4318d5866bafaedc2f6
Flags: needinfo?(slepushkin)
Reporter | ||
Comment 14•6 years ago
|
||
I keep forgetting the dependency version identifiers! Pavel, could you please update the following files:
https://searchfox.org/mozilla-central/source/testing/tps/setup.py#17 - to pin to ==2.0.0
https://searchfox.org/mozilla-central/source/testing/mozbase/mozrunner/setup.py#20 - to pin to >=1.1.0,<3
Thanks, and sorry for the failures.
Comment 16•6 years ago
|
||
Pushed by dhunt@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/0ec82a778ced
[mozprofile] Add support for Python 3. r=davehunt
Reporter | ||
Comment 17•6 years ago
|
||
Comment 18•6 years ago
|
||
Pushed by dhunt@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/9b967e3e8d5f
Update mozprofile version used by raptor; r=rwood
Comment 19•6 years ago
|
||
Comment on attachment 9008204 [details]
Bug 1471888 - Update mozprofile version used by raptor; r?rwood
Robert Wood [:rwood] has approved the revision.
Attachment #9008204 -
Flags: review+
Comment 20•6 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/0ec82a778ced
https://hg.mozilla.org/mozilla-central/rev/9b967e3e8d5f
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
status-firefox64:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla64
Reporter | ||
Comment 21•6 years ago
|
||
I've released mozprofile 2.0.0 to PyPI. Thank you Pavel for your contribution! Are you interested in picking another bug that's blocking bug 1093212? Maybe bug 1471648?
Status: RESOLVED → VERIFIED
Assignee | ||
Comment 22•6 years ago
|
||
Yes, sure, I'd like to work on another one.
Please assign it to me.
Reporter | ||
Comment 23•6 years ago
|
||
(In reply to Pavel Slepushkin from comment #22)
> Yes, sure, I'd like to work on another one.
> Please assign it to me.
Done. I've also mentioned you in the upcoming 'Friends of the Tree' as this is your first contribution, and we really appreciate it! You can watch the weekly meeting on Monday live to hear your name read out at https://onlinexperiences.com/Launch/Event.htm?ShowKey=44908&DisplayItem=E301343 or use the same link to watch later, and you can see the agenda here: https://wiki.mozilla.org/WeeklyUpdates/2018-09-17
Thanks again!
Comment 24•6 years ago
|
||
Bumping the version of mozprofile in tps/setup.py causes TPS to fail to launch, because mozrunner 7.0.1 still depends on mozprofile<2 D:
You need to log in
before you can comment on or make changes to this bug.
Description
•