aboutsummaryrefslogtreecommitdiffstats
path: root/python/servo/package_commands.py
Commit message (Collapse)AuthorAgeFilesLines
* Make the `--release`/`--dev` more consistent and less surprising (#30091)Martin Robinson2023-08-141-28/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There were some issues with the way that the `--release` and `--dev` arguments were handled in mach commands. - Not all commands accepted them in the same way. For instance `./mach test-wpt` didn't really accept them at all. - If you did not pass either of them, mach would try to guess which build you meant. This guess was often quite surprising as it wasn't printed and it depended on the state of the your target directory, which is difficult to remember. - The `dev` profile is colloquially called a "debug" profile and some commands accepted `-d` or `--debug...` like arguments, but `--debug` with `./mach run` meant run in a debugger. It was easy to mix this up. This change: - Centralizes where build type argument processing happens. Now it the same shared decorator in CommandBase. - Uses a `BuildType` enum instead of passing around two different booleans. This reduces the error checking for situations where both are true. - Be much less clever about guessing what build to use. Now if you don't specify a build type, `--dev` is chosen. I think this behavior matches cargo. - Makes it so that `./mach test-wpt` accepts the exact same arguments and has the same behavior as other commands. In addition, the suite correct for `test-wpt` is removed. There are only two suites now and it's quite unlikely that people will confuse WPT tests for rust unit tests.
* Remove homebrew packaging (#30047)Martin Robinson2023-08-011-91/+1
| | | | | | | This hasn't been updated since 2017 and homebrew installation is also provided via a cask which downloads the latest version from the website [^1]. I think this code is basically unused. [^1]: https://github.com/Homebrew/homebrew-cask/blob/9e944ae828ccde27340413ff2ac4de603243f5e0/Casks/servo.rb
* Fix package name for windows nightlyMukilan Thiyagarajan2023-07-091-10/+0
| | | | | | Also remove the 2020 specific packages. Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* Make the choice of layout runtime settingMartin Robinson2023-07-061-10/+2
| | | | Co-authored-by: Samson <16504129+sagudev@users.noreply.github.com>
* Remove UWP / Hololens supportMartin Robinson2023-07-051-114/+2
|
* Default nightly builds to layout 2020Mukilan Thiyagarajan2023-06-211-3/+7
| | | | Signed-off-by: Mukilan Thiyagarajan <me@mukilan.in>
* Fix windows nightly build failure.Mukilan Thiyagarajan2023-06-161-20/+28
| | | | | | | | | | | | | PR #29865 changed the target directory for windows to be different from the source folder. However, the 'upload-nightly' command assumes the packages are stored in the default cargo target directory (./target), so the nightly jobs for windows were failing to find the packages. This PR fixes the 'upload-nightly' command to account for non-default target directories specified via CARGO_TARGET_DIR.
* Clean up cross-compilation and featuresMartin Robinson2023-05-251-6/+8
| | | | | | | | | | | | Integrate cross-compilation and media-stack handling into the `build_like_command_arguments` decorator. This removes a lot of repetition in the code and standardizes how targets are selected for all similar commands. Now cross compilation targets, feature flags, and helper variables are stored in the CommandBase instance. This also avoids having to continuously pass these arguments down to functions called by the commands.
* Upload nightly builds for layout2020 variantMukilan Thiyagarajan2023-05-241-0/+7
| | | | | | | | We'd like to start offering servo nightly builds with layout 2020 engine so that users can test the new layout without building servo. These new builds will be offered in addition to the current 2013 builds until we switch over to 2020 as the default.
* Remove unused importmichaelgrigoryan252023-05-221-1/+0
|
* Patched a bugmichaelgrigoryan252023-05-221-1/+1
|
* Removed MagicLeap occurrences from Python filesmichaelgrigoryan252023-05-221-73/+9
|
* Remove some unused python codeMartin Robinson2023-05-201-19/+1
| | | | | | | | | This change removes: - The custom `--dry-run` support for `cargo-update`. The real cargo command now has `--dry-run` support and this code was broken for Python 3. - The Python 2 version of TemporaryDirectory. This is no longer needed as we require Python 3.
* Consume official GStreamer binaries on MacOSMukilan Thiyagarajan2023-05-121-65/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This PR re-enables support for the gstreamer mediastack in macOS by consuming the official binary '.pkg' files from gstreamer.freedesktop.org To maintain symmetry with other platforms, the '.pkg' files are uploaded to servo-build-deps and fetched from there using the new script 'etc/install_macos_gstreamer.sh'. Unlike the Homebrew version, the official GStreamer is distributed as a 'relocatable' framework i.e the dylibs all have @rpath-relative install names and also link to other dylibs using @rpath relative path. To address this difference the 'servo' binary needs to be patched with 'install_name_tool' to add an LC_RPATH command that sets the relative paths that the dynamic linker should search when trying to satify dependencies. In Servo's case, this will be a path relative to the 'servo' binary itself i.e '@executable_path/lib/' The additional 'lib' is due to a flaw in the gstreamer packaging where the install names of some of the dylibs have the prefix '@rpath/lib' and some of them just have '@rpath'. This PR also fixes a couple of issues present in the `mach build` process on MacOS: 1. `mach build` process was not copying transitive dependencies of servo binary but only the first level dylibs 2. `mach build` process didn't patch the links to dylibs in servo binary (and dependencies). This meant though (some) dylibs were copied to local path, the binary still loaded the dylibs from system GStreamer installation i.e homebrew instead of the copieds dylibs The build and runtime dependencies in etc/homebrew/Brewfile and etc/homebrew/Brewfile-build have also been removed in This PR. Signed-off-by: Mukilan Thiyagarajan <me@mukilan.in>
* Build on Mac with the dummy media stackMartin Robinson2023-04-231-2/+6
| | | | | | This is a temporary fix for broken GStreamer homebrew packages. Fixes 29653.
* Fix nightly upload to GH release logic.Mukilan Thiyagarajan2023-04-131-5/+9
| | | | | | | | | | | | | The boto3 S3 client automatically closes the given fileobj after the transfer is complete. This prevents us from reusing the package_hash_fileobj between s3 and github upload methods. This PR changes fixes the issue by creating fresh instances of io.BytesIO within the upload_to_* methods. Signed-off-by: Mukilan Thiyagarajan <me@mukilan.in>
* Upload nightly builds to Github ReleasesMukilan Thiyagarajan2023-04-121-14/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | This change extends the `mach upload-nightly` command to publish the nightly builds for all platforms as GH Release assets. The GH releases are made on a separate repository so that we can persist older nightly builds without having to accumulate git tags for them. Some design tradeoffs in this approach are: 1. To allow the 'latest' link from servo.org to remain stable, the release assets are named 'servo-latest.{ext}' instead of containing the release tag/date. 2. The release is created as draft and published atomically when all platforms have been built successfully. This allows us to link to the 'latest' alias from servo.org while gauranteeing that it contains builds for all platforms. The other option here would be to have code in servo.org UI that uses GH API to find the most recent release with a successful build for a given platform. 3. The tags in the nightly repo are all based on the same commit that has no relation to servo code base. Signed-off-by: Mukilan Thiyagarajan <me@mukilan.in>
* Remove more Taskcluster and Treeherder integrationMartin Robinson2023-04-101-33/+5
| | | | | Servo no longer uses Taskcluster and Treeherder, so this change removes script references to those services and support files.
* Replace usage of six.moves.urllib with urllibMartin Robinson2023-04-101-1/+1
| | | | | | Also organize some of the imports. Now that Servo only uses Python 3, this module is unnecessary. This is part of the gradual migration to using only Python 3.
* Package and upload linux w/ layout-2020 engine.Mukilan Thiyagarajan2023-03-101-0/+3
| | | | | | | | | | | | | The layout-2020 variant will be consumed by the internal WPT trend [dashboard][1] only and won't be made available on servo.org. This change will be removed once the layout engine we will use going forward is finalized. [1]: https://servo.github.io/internal-wpt-dashboard/ Signed-off-by: Mukilan Thiyagarajan <me@mukilan.in>
* Invalidate latest nightly files in CloudFront.Mukilan Thiyagarajan2023-01-261-1/+24
| | | | | | | | | | | | | | | | | | | | | | | | | After a new nightly build is uploaded to S3, bust the cache in CloudFront Edge servers with the CreateInvalidation AWS API. For each platform we use the `/nightly/<platform>/servo-latest.<ext>*` pattern to invalidate both package and sha256 files. As part of this change, a new policy has been attached to the "download.servo.org-uploads-from-travis" IAM user to allow the "cloudfront:CreateInvalidation" action. Since CloudFront [invalidates every version][1] of the cached file, regardless of the headers used for that version, this change should invalidate the different caches for 'Accept-Encoding' header. [1]: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html#invalidation-specifying-objects Closes #29034 Signed-off-by: Mukilan Thiyagarajan <mukilanthiagarajan@gmail.com>
* Load codesigning secret without JSON.Josh Matthews2021-07-021-2/+2
|
* Add UWP builds to github actions.Josh Matthews2021-05-291-0/+5
|
* Convert more taskcluster jobs to Github Actions.Josh Matthews2021-05-231-1/+8
|
* Fix bytes/string py3 confusion.Josh Matthews2021-05-031-1/+1
|
* Fix encoding call.Josh Matthews2021-02-241-1/+1
|
* Fix str/bytes confusion when uploading to s3.Josh Matthews2021-02-191-1/+1
|
* Port some code to Python3Vincent Ricard2021-02-181-1/+6
|
* Use new S3 bucketsSimon Sapin2020-11-111-2/+2
| | | | CC https://github.com/servo/project/issues/25
* Add gstreamer plugins to nightly package.Josh Matthews2020-07-201-1/+2
|
* Load explicit set of gstreamer plugins on macos, and include them in the ↵Josh Matthews2020-07-161-0/+2
| | | | nightly package.
* Fix remaining flake8 warningsKagami Sascha Rosylight2020-06-211-11/+11
|
* Set Content-Type for sha256 uploads.Josh Matthews2020-06-191-1/+3
|
* Fix file extension for Linux nightlycamelid2020-05-141-3/+3
|
* Only upload latest hashcamelid2020-05-131-7/+1
|
* Add integrity hash for nightly buildscamelid2020-05-131-0/+22
|
* Only create UWP archive if the app packages are signed.Josh Matthews2020-04-171-7/+9
|
* Remove version number from generated UWP archive.Josh Matthews2020-04-171-10/+13
|
* Find upload package extension correctly.Josh Matthews2020-04-161-2/+2
|
* python: Use updated mako path in package_commands.py.Emilio Cobos Álvarez2020-04-161-1/+1
|
* Properly sign UWP packagePaul Rouget2020-03-091-12/+69
|
* Always construct TC API URLs from $TASKCLUSTER_PROXY_URL or ↵Simon Sapin2019-11-051-1/+1
| | | | $TASKCLUSTER_ROOT_URL
* Use urllib from six module in order to be compatible with Python3marmeladema2019-10-161-2/+2
|
* Create a zip of all UWP packaging artifacts.Josh Matthews2019-10-101-1/+9
|
* Make APPX build part of package command. Add nightly build for UWP.Josh Matthews2019-09-121-3/+45
|
* Add --magicleap option to mach installAlan Jeffrey2019-08-191-7/+27
|
* Package both Servo2D and Servo3D in one magicleap mpkAlan Jeffrey2019-08-151-4/+3
|
* Added gstreamer support to the magicleap portAlan Jeffrey2019-08-081-0/+6
|
* Add Servo3D immersive demo for magicleapAlan Jeffrey2019-06-131-12/+17
|
* Package DLLs correctly for Windows cross builds.Josh Matthews2019-06-031-1/+1
|