A 2020 Theme: Externalization

A 2020 Theme: Externalization

Contents

H2: What’s a Rich Text element?

The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.

H3: Static and dynamic content editing

A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!

text

H1: This is a Heading 1

This is some paragraph. lorem epsum.

This is a fig caption. This is how it will look like under a video frame as a description.

H4: How to customize formatting for each rich text

Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.

H5: Sample text is being used as a placeholder. Sample text helps you understand how real text may look. Sample text is being used as a placeholder for real text that is normally present.

Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.

H6: How to customize formatting for each rich text

Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.

Block Quote: Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.

This is a heading 3.

  1. Sample text is being used as a placeholder.
  2. Sample text is being used as a placeholder.
  3. Sample text is being used as a placeholder.

This is a heading 2.

  • Sample text is being used as a placeholder.
  • Sample text is being used as a placeholder.
  • Sample text is being used as a placeholder.
# clone openpilot into your home directory
cd ~
git clone --recurse-submodules https://github.com/commaai/openpilot.git

# setup ubuntu environment
openpilot/tools/ubuntu_setup.sh

# build openpilot
cd openpilot && scons -j$(nproc)

openpilot has come a long way. From supporting 1 car with 0 tests, to supporting 63 cars with a decent test suite. From Python 2.7 to Python 3.7 + a whole lot of C/C++ to make it fast. From having no documentation, to having an onboarding tutorial. From Apple II era graphics to something that would pass for a modern smartphone app. From scattered binary blobs, to 100% open source.

With 0.7, we consider openpilot almost out of alpha and ready to move into beta. Part of this is we want to make it easier than ever for the world to contribute to openpilot. When a fire is small, it needs careful nurturing to become something. But as a fire grows, it begins to consume whether you want it to or not.

Until now, we had a private repo where comma employees developed openpilot; if you saw references to “one”, that’s what it was. Now, we are moving to a completely open style of development, baazar style, not cathedral style. We, and the rest of the world, will be developing on openpilot master.

As an openpilot user, this won’t affect you. release2 will still be where the releases live. But as a developer, you can now develop with the same workflow as us. This should allow us to merge pull requests much easier also.

This has been a change in the works for a while, with cereal, opendbc, and panda becoming standalone and self tested projects that openpilot depends on. Push to opendbc if you have a new car to decode. Push to cereal if you want to add to our messaging structs. And push to panda if you have a new car safety model to add.

We are also bringing openpilot tools back in to the openpilot repo. openpilot master is a great thing to have checked out on your computer, and now it fully builds and runs on Ubuntu 16.04

It’s time for everyone to start developing on openpilot. Improve our hardware, replace our cloud, build better models, what matters is that the future is owned by the world. We are here to witness the creation of a distributed decentralized self driving car platform.

openpilot development flow

  • We will develop on master, which is stripped and minified by CI and pushed to master-ci automatically if the tests pass. You probably should not be using master on devices.
  • When we are ready to start the release process, we’ll push master-ci to devel-staging and open a pull request into devel. This pull request will be the spot for comments on the new release, and hotfixes at this point will be cherry picked from master into devel-staging. Once it’s good, we merge into devel.
  • devel is built by CI, and pushes the built versions to release2-staging and dashcam-staging signed with the official comma release key.
  • After the -staging branches are tested by the community for a few days, we’ll push them to release2 and dashcam.