to_shmem_derive

Latest version: 0.1.0 registry icon
Maintenance score
100
Safety score
100
Popularity score
31
Check your open source dependency risks. Get immediate insight about security, stability and licensing risks.
Security
  Vulnerabilities
Version Suggest Low Medium High Critical
0.1.0 0 0 0 0 0
0.0.0 0 0 0 0 0

Stability
Latest release:

0.1.0 - This version is safe to use because it has no known security vulnerabilities at this time. Find out if your coding project uses this component and get notified of any reported security vulnerabilities with Meterian-X Open Source Security Platform

Licensing

Maintain your licence declarations and avoid unwanted licences to protect your IP the way you intended.

MPL-2.0   -   Mozilla Public License 2.0

Not a wildcard

Not proprietary

OSI Compliant



Stylo

This repo contains Servo’s downstream fork of Stylo.

The branches are as follows:

  • upstream has upstream mozilla-central filtered to the paths we care about (style.paths), but is otherwise unmodified
  • main has our downstream patches, plus the scripts and workflows for syncing with mozilla-central, to be rebased onto upstream

Building Servo against your local Stylo

Assuming your local servo and stylo directories are siblings, you can build servo against stylo by adding the following to servo/Cargo.toml:

[patch."https://github.com/servo/stylo.git"]
derive_common = { path = "../stylo/derive_common" }
malloc_size_of = { path = "../stylo/malloc_size_of" }
selectors = { path = "../stylo/selectors" }
servo_arc = { path = "../stylo/servo_arc" }
servo_atoms = { path = "../stylo/atoms" }
size_of_test = { path = "../stylo/size_of_test" }
static_prefs = { path = "../stylo/style_static_prefs" }
style_config = { path = "../stylo/style_config" }
style_derive = { path = "../stylo/style_derive" }
style = { path = "../stylo/style" }
style_traits = { path = "../stylo/style_traits" }

Syncing upstream with mozilla-central

Start by generating a filtered copy of mozilla-central. This will cache the raw mozilla-central in _cache/upstream, storing the result in _filtered:

$ ./sync.sh _filtered

If _filtered already exists, you will need to delete it and try again:

$ rm -Rf _filtered

Now overwrite our upstream with those commits and push:

$ git fetch -f --progress ./_filtered master:upstream
$ git push -fu --progress origin upstream

Rebasing main onto upstream

Start by fetching upstream into your local repo:

$ git fetch -f origin upstream:upstream

In general, the filtering process is deterministic, yielding the same commit hashes each time, so we can rebase normally:

$ git rebase upstream

But if the filtering config changes or Mozilla moves to GitHub, the commit hashes on upstream may change. In this case, we need to tell git where the old upstream ends and our own commits start (notice the ~):

$ git log --pretty=\%H --grep='Servo initial downstream commit'
e62d7f0090941496e392e1dc91df103a38e3f488

$ git rebase --onto upstream e62d7f0090941496e392e1dc91df103a38e3f488~
Successfully rebased and updated refs/heads/main.

start-rebase.sh takes care of this automatically, but you should still use git rebase for subsequent steps like --continue and --abort:

$ ./start-rebase.sh upstream
$ ./start-rebase.sh upstream -i     # interactive
$ git rebase --continue             # not ./start-rebase.sh --continue
$ git rebase --abort                # not ./start-rebase.sh --abort

Or if we aren’t ready to rebase onto the tip of upstream:

$ ./start-rebase.sh upstream~10 -i