Technical Documentation: imputnet/helium
โน๏ธ Provenance: Multi-Tier Ingestion ยท CodeWiki Reference
Overview (`README.md`)
Downloads
[!NOTE]
Helium is in beta, so unexpected issues may occur.
Please report them if they haven't already been reported.
The easiest way to download Helium is helium.computer.
It'll pick a compatible binary for your platform automatically.
The same releases can also be downloaded from source on GitHub:
Helium supports automatic updates on macOS and Windows.
Helium repos
All Helium packaging, tooling, services, and components are open source
and published on GitHub.
Platform packaging and tooling
Web services
Helium services are Helium's
privacy-first cloud services that handle the extension proxy, !bangs, filter
lists, browser updates, crash reports, and etc. The services are self-hostable
and the repo includes exactly what we use and host, down to Ansible playbooks.
Components
Helium uBlock Origin is a
Helium-specific fork of uBlock Origin that includes our filters, defaults, and
CNAME uncloaking.Helium onboarding includes
the browser setup experience seen athelium://setupon first launch.Helium non-free assets
repo handles non-free assets used in Helium, such as search engine icons and
icons of other browsers.
Tooling
Chromium tarballs creates
prepared Chromium source archives used by Helium builds.Helium Prism is a Svelte UI
Component library used in onboarding and the landing page.
Legal documents
Helium Legal repo includes the
source for Terms of Use and
Privacy Policy documents, along with their
full change history.
Development
macOS and Linux are our primary development platforms, so they're the
recommended development environment for community contributions.
> See development docs in macOS repo
Linux packaging includes a similar development script, so the same guide
can be applied there too.
Contributing
Before contributing to Helium, please read the guidelines in
CONTRIBUTING.md.
Credits
The Chromium project
The Chromium Project is at the core of Helium,
making it possible in the first place.
ungoogled-chromium
Helium originally branched off
ungoogled-chromium.
Special thanks to everyone behind ungoogled-chromium, they made working with
Chromium much easier.
Other Chromium projects
Helium includes some patches from other open source Chromium projects:
All patches are sorted by vendor in the patches directory of this repo.
License
All code, patches, modified portions of imported code or patches, and
any other content that is unique to Helium and not imported from other
repositories is licensed under GPL-3.0. See LICENSE.
Any content imported from other projects retains its original license (for
example, any original unmodified code imported from ungoogled-chromium remains
licensed under their BSD 3-Clause license).
Overview (`devutils/README.md`)
Developer utilities for ungoogled-chromium
This is a collection of scripts written for developing on ungoogled-chromium. See the descriptions at the top of each script for more information.
Overview (`i18n/README.md`)
Helium i18n
This directory contains the translations for Helium browser UI strings.
Files
source.gen.json- Auto-generated list of translatable strings extracted from
from patches. Do not edit manually.languages.json- Map of locale codes to language names for all supported languages.
Do not edit, we are not adding support for additional languages
beyond what is already supported in Chromium.translations/- Per-language translation files.
Submitting translations
Do not open pull requests with new translations! We run translations in
batches, if you would like to contribute to the translation of Helium,
please wait for the next batch.
If you are editing existing strings (e.g. you noticed some string(s) that are
incorrect), feel free to open a pull request as usual.
Translation reviewers
Your responsibility as a reviewer is to ensure the translation is the
best it can be. When reviewing translations for a specific language, focus on:
- Accuracy of the translation relative to the
sourcefield - Correct preservation of `` placeholder tags
- Appropriate formality register for the language
- "Helium" and other brand names should not be translated
If you notice an error or mistranslation in any of the strings, feel free
to open a pull request to resolve it.
Translation owners
If you are a native speaker of a particular language and would be willing to
review any changes made to its translations, you may ask to be added for the
particular language file in owners.yml, if there are no or few
translators for that file. This would be preferrably done in a PR related to
the file itself.
Development
When adding strings to Helium, you might need to regenerate the source
file using ./devutils/i18n.py generate. Do not generate machine translations
of the strings, the maintainers will take care of this.
To apply existing translations to the Chromium tree, use utils/i18n_apply.py.
For more instructions, see the help (-h) output of these scripts.
Format
Each file in translations/ is a JSON array of translated entries.
Entries are matched to source.gen.json by content (name + source),
not by position. Each entry is an object:
{
"name": "IDS_EXAMPLE_STRING",
"source": "Original English text",
"message": "Translated text",
"feminine": "Feminine form (optional)",
"masculine": "Masculine form (optional)"
}The feminine/masculine fields are only present when the
translation genuinely differs by grammatical gender.
Overview (`devutils/third_party/README.md`)
This directory contains third-party libraries used by devutils.
Contents:
- python-unidiff
- For parsing and modifying unified diffs.
Overview (`utils/third_party/README.md`)
This directory contains third-party libraries used by build utilities.
Contents:
- schema
- For validating more sophisticated files such as INIs
--- METRICS ---
- Files Extracted: 5
- Estimated Token Budget: ~1991 tokens
- Canonical Reference: https://codewiki.google/github.com/imputnet/helium