Step zero
Welcome to Creative Commons (CC) software development! We are glad you are here! ❤️
Before engaging with our projects, please ensure you have a working knowledge of the following technologies:
- Slack
- Command line interface (CLI)
- Code editor
- GitHub and git
- Docker
Slack
Slack is currently our primary channel for chat and lower latency communication.
For more information, see Join the CC Developer Community.
Command line interface (CLI)
Often shortened to just "command line" or referred to as the "console" or "terminal", the command line interface (CLI) is where quite a bit of software development work happens.
Getting started with the CLI
Code editor
A code editor or integrated development environment (IDE) provides strong support for software development. Which one you use is up to personal preference. The two editors used by the Technology team are currently Visual Studio Code (recommended) and Vim.
Visual Studio Code
- Visual Studio Code - Code Editing. Redefined
- Highlighted features:
- Recommended plugins:
- Docker - Visual Studio Marketplace makes it easy to build, manage, and deploy containerized applications from Visual Studio Code. It also provides one-click debugging of Node.js, Python, and .NET inside a container.
- Prettier - Code formatter - Visual Studio Marketplace: is an
opinionated code formatter.
- Prettier is especially helpful for Web develoment (HTML, JavaScript, etc.)
- Rewrap - Visual Studio Marketplace
- Some of our repositories hard wrap code and text at 80 characters
Vim
- welcome home : vim online
- Recommended plugins (install Vundle first):
- godlygeek/tabular: Vim script for text filtering and alignment
- (required by vim-markdown)
- preservim/vim-markdown: Markdown Vim Mode
- VundleVim/Vundle.vim: Vundle, the plug-in manager for Vim
- godlygeek/tabular: Vim script for text filtering and alignment
GitHub and git
All of our projects require a working knowledge of GitHub. It is our primary repository for code and we utilize many of the sites features for managing code and higher latency communication.
Git (/ɡɪt/) is a distributed version control system that tracks versions of files. It is often used to control source code by programmers who are developing software collaboratively.
Installing GitHub
As a web service, GitHub doesn't require any installation. However, once you become more familiar with it, you may benefit from installing the GitHub command line utility:
Installing git
- Linux: Git is optimally installed using your distribution's package manager. See Git- Download for Linux and Unix for a wide range of popular distros.
- macOS: Mac users can install Git using these instructions: Git - Installing Git - Installing on macOS
- Windows:
- You must use Windows 10 or 11 with Windows Subsystem for Linux (WSL2). For installation instructions: see Install WSL | Microsoft Learn.
- Git should be installed within WSL2, using the appropriate Linux
installation method. For WSL2 Ubuntu, the command is:
sudo apt-get install git
Getting started with GitHub and Git
Thankfully GitHub's documentation is relatively robust. Please see:
- Get started with GitHub documentation - GitHub Docs
- GitHub Training Manual
- Fork a repository - GitHub Docs
CC specifics for GitHub
For some specifics on how we use GitHub, please see the following information on this site:
- Pull Request Guidelines — Creative Commons Open Source
- GitHub Repo Guidelines — Creative Commons Open Source
- Repository Labels — Creative Commons Open Source
Docker
Docker (software) - Wikipedia:
Docker is a set of platform as a service (PaaS) products that use OS-level virtualization to deliver software in packages called containers. [...]
Docker is a tool that is used to automate the deployment of applications in lightweight containers so that applications can work efficiently in different environments in isolation.
Installing Docker
- Linux: Both Docker Desktop and Docker Engine are separately supported on
Linux. Both include the required Compose command plugin, but Docker Engine is
typically much easier to install:
- Recommended: See Install Docker Engine | Docker Docs for links to installation instructions for Docker Engine and Compose for various Linux distributions.
- See Install Docker Desktop on Linux | Docker Docs for links to instructions for the graphical desktop app that includes the commandline interface and Compose
- macOS: Docker Desktop can be installed using these instructions: Install Docker Desktop on Mac | Docker Docs.
- Windows: Docker Desktop should be installed on Windows itself and integrated with Windows Subsystem for Linux (WSL2) as explained in Docker Desktop WSL 2 backend on Windows | Docker Docs. Unlike Git, you should not install Docker within your WSL2 environment. For installation instructions: see Install WSL | Microsoft Learn.
Getting started with Docker
Docker compose
Our projects use Docker Compose | Docker Docs.
Next steps
We have added a lot of documentation (ex. language guides) and tooling (issue finder) to this site that cover frequently asked questions and confusions. Please explore this site and reach out on Slack for additional assistance.