CSC/ECE 517 Spring 2016/M1704 Servo Dependency Tool: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
(~~~~~) |
||
Line 1: | Line 1: | ||
The '''[https://github.com/chbrown13/servo-dependency-tool Servo Dependency Tool]''' is a set of python scripts that automatically upgrades Cargo dependencies for the [https://servo.org/ Servo] web browser engine. | The '''[https://github.com/chbrown13/servo-dependency-tool Servo Dependency Tool]''' is a set of python scripts that automatically upgrades Cargo dependencies for the [https://servo.org/ Servo] web browser engine. | ||
== | === Background === | ||
=== Servo === | [https://servo.org/ Servo] is a prototype web browser engine created by [https://www.mozilla.org/en-US/ Mozilla Research] and written in the [https://www.rust-lang.org/en-US/index.html Rust] programming language. It is currently developed on 64-bit OS X, 64-bit Linux, and Android platforms. Servo depends on numerous other Rust libraries that are published on the package manager [https://crates.io/ crates.io]. There are no notifications for when packages are updated so it's up to developers to keep track of when they need to upgrade the dependencies within their projects. | ||
'''The goal of the Servo Dependency Tool is to automatically upgrade Servo's dependencies whenever new versions are released.''' | |||
=== Requirements<ref>https://github.com/servo/servo/wiki/Cargo-upgrade-service-project</ref> === | |||
* Use Python, Node.js, or Ruby to develop the tool | |||
* Tool must be easily ran on hosted services ([https://www.heroku.com/ Heroku], [https://aws.amazon.com/ Amazon AWS], etc) | |||
* Parse a Cargo.lock file to determine the list of dependencies and their current versions | |||
* Compare the list of dependencies and their current versions to a local clone of the crates.io index to find out the latest versions available | |||
* Edit all Cargo.toml files within Servo with the latest versions | |||
* Update the packages by running the cargo-update command using Servo's Mach tool | |||
* Interact with GitHub to create a branch for the updates and then open a pull request on the main Servo repo | |||
=== Project Structure === | |||
==== servo_dependency_tool.py ==== | |||
Text | |||
==== cargo_lock_parser.py ==== | |||
Text | |||
==== crates_io_checker.py ==== | |||
Text | Text | ||
=== | ==== cargo_toml_updater ==== | ||
Text | Text | ||
=== | ==== run_cargo_update.py ==== | ||
Text | Text | ||
==== repo_management.py ==== | |||
Text | |||
=== Project Links === | === Project Links === |
Revision as of 14:30, 23 March 2017
The Servo Dependency Tool is a set of python scripts that automatically upgrades Cargo dependencies for the Servo web browser engine.
Background
Servo is a prototype web browser engine created by Mozilla Research and written in the Rust programming language. It is currently developed on 64-bit OS X, 64-bit Linux, and Android platforms. Servo depends on numerous other Rust libraries that are published on the package manager crates.io. There are no notifications for when packages are updated so it's up to developers to keep track of when they need to upgrade the dependencies within their projects.
The goal of the Servo Dependency Tool is to automatically upgrade Servo's dependencies whenever new versions are released.
Requirements<ref>https://github.com/servo/servo/wiki/Cargo-upgrade-service-project</ref>
- Use Python, Node.js, or Ruby to develop the tool
- Tool must be easily ran on hosted services (Heroku, Amazon AWS, etc)
- Parse a Cargo.lock file to determine the list of dependencies and their current versions
- Compare the list of dependencies and their current versions to a local clone of the crates.io index to find out the latest versions available
- Edit all Cargo.toml files within Servo with the latest versions
- Update the packages by running the cargo-update command using Servo's Mach tool
- Interact with GitHub to create a branch for the updates and then open a pull request on the main Servo repo
Project Structure
servo_dependency_tool.py
Text
cargo_lock_parser.py
Text
crates_io_checker.py
Text
cargo_toml_updater
Text
run_cargo_update.py
Text
repo_management.py
Text
Project Links
- Servo Dependency Tool (Our GitHub): https://github.com/chbrown13/servo-dependency-tool
- Project Request Link: https://github.com/servo/servo/wiki/Cargo-upgrade-service-project
- GitHub Issue Tracker: https://github.com/servo/servo/issues/15600