|
| 1 | +_model: page |
| 2 | +--- |
| 3 | +_template: page-with-toc.html |
| 4 | +--- |
| 5 | +title: Foundational technologies |
| 6 | +--- |
| 7 | +description: Most or many of Creative Commons' projects require a working |
| 8 | +knowledge of these foundational technologies. |
| 9 | +--- |
| 10 | +body: |
| 11 | + |
| 12 | + |
| 13 | +## Step zero |
| 14 | + |
| 15 | +Welcome to Creative Commons (CC) software development! We are glad you are |
| 16 | +here ❤️ |
| 17 | + |
| 18 | +Before engaging with our projects, please ensure you have a working knowledge |
| 19 | +of the following technologies: |
| 20 | +1. Slack |
| 21 | +2. Command line interface (CLI) |
| 22 | +3. GitHub and git |
| 23 | +4. Docker |
| 24 | + |
| 25 | + |
| 26 | +## Slack |
| 27 | + |
| 28 | +Slack is currently our primary channel for chat and lower latency communication. |
| 29 | + |
| 30 | +For more information, see [Join the CC Developer Community](/community/). |
| 31 | + |
| 32 | + |
| 33 | +## Command line interface (CLI) |
| 34 | + |
| 35 | +Often shortened to just "command line" or referred to as the "console" or |
| 36 | +"terminal", the command line interface (CLI) is where quite a bit of software |
| 37 | +development work happens |
| 38 | + |
| 39 | + |
| 40 | +### Getting started with the CLI |
| 41 | + |
| 42 | +- [Terminal Tutor – learn the Command Line interactively][terminal-tutor] |
| 43 | + |
| 44 | +[terminal-tutor]: https://www.terminaltutor.com/ |
| 45 | + |
| 46 | + |
| 47 | +## GitHub and git |
| 48 | + |
| 49 | +All of our projects require a working knowledge of GitHub. It is our primary |
| 50 | +repository for code and we utilize many of the sites features for managing |
| 51 | +code and higher latency communication. |
| 52 | + |
| 53 | +[Git - Wikipedia](https://en.wikipedia.org/wiki/Git): |
| 54 | +> Git (/ɡɪt/) is a distributed version control system that tracks |
| 55 | +> versions of files. It is often used to control source code by programmers who |
| 56 | +> are developing software collaboratively. |
| 57 | +
|
| 58 | + |
| 59 | +### Installing GitHub |
| 60 | + |
| 61 | +As a web service, GitHub doesn't require any installation. However, once you |
| 62 | +become more familiar with it, you may benefit from installing the GitHub |
| 63 | +command line utility: |
| 64 | +- [GitHub CLI | Take GitHub to the command line](https://cli.github.com/) |
| 65 | + |
| 66 | + |
| 67 | +### Installing git |
| 68 | + |
| 69 | +- **Linux:** Git is optimally installed using your distribution's package |
| 70 | + manager. See [Git- Download for Linux and Unix][linux-git] for a wide range |
| 71 | + of popular distros. |
| 72 | +- **macOS:** Mac users can install Git using these instructions: [Git - |
| 73 | + Installing Git - Installing on macOS][macos-git] |
| 74 | +- **Windows:** |
| 75 | + - You must use Windows 10 or 11 with Windows Subsystem for Linux (WSL2). For |
| 76 | + installation instructions: see [Install WSL | Microsoft Learn][wsl2]. |
| 77 | + - Git should be installed within WSL2, using the appropriate Linux |
| 78 | + installation method. For WSL2 Ubuntu, the command is: |
| 79 | + ```shell |
| 80 | + sudo apt-get install git |
| 81 | + ``` |
| 82 | + |
| 83 | +[linux-git]: https://git-scm.com/download/linux |
| 84 | +[macos-git]: https://git-scm.com/book/en/v2/Getting-Started-Installing-Git#_installing_on_macos |
| 85 | +[wsl2]: https://docs.microsoft.com/en-us/windows/wsl/install |
| 86 | + |
| 87 | + |
| 88 | +### Getting started with GitHub and Git |
| 89 | + |
| 90 | +Thankfully GitHub's documentation is relatively robust. Please see: |
| 91 | +- [Get started with GitHub documentation - GitHub Docs][github-start] |
| 92 | + - [GitHub flow - GitHub Docs][github-flow] |
| 93 | +- [GitHub Training Manual][github-training] |
| 94 | +
|
| 95 | +[github-start]: https://docs.github.com/en/get-started |
| 96 | +[github-flow]: https://docs.github.com/en/get-started/using-github/github-flow |
| 97 | +[github-training]: https://githubtraining.github.io/training-manual/#/ |
| 98 | +
|
| 99 | +
|
| 100 | +### CC specifics for GitHub |
| 101 | +
|
| 102 | +For some specifics on how we use GitHub, please see the following information |
| 103 | +on this site: |
| 104 | +- [Pull Request Guidelines — Creative Commons Open Source][ccos-prs] |
| 105 | +- [GitHub Repo Guidelines — Creative Commons Open Source][ccos-repos] |
| 106 | +- [Repository Labels — Creative Commons Open Source][ccos-labels] |
| 107 | +
|
| 108 | +[ccos-prs]: /contributing-code/pr-guidelines/ |
| 109 | +[ccos-repos]: /contributing-code/github-repo-guidelines/ |
| 110 | +[ccos-labels]: /contributing-code/repo-labels/ |
| 111 | +
|
| 112 | +
|
| 113 | +## Docker |
| 114 | +
|
| 115 | +[Docker (software) - Wikipedia][wikipedia-docker]: |
| 116 | +> Docker is a set of platform as a service (PaaS) products that use OS-level |
| 117 | +> virtualization to deliver software in packages called containers. [...] |
| 118 | +> |
| 119 | +> Docker is a tool that is used to automate the deployment of applications in |
| 120 | +> lightweight containers so that applications can work efficiently in different |
| 121 | +> environments in isolation. |
| 122 | +
|
| 123 | +[wikipedia-docker]: https://en.wikipedia.org/wiki/Docker_(software) |
| 124 | +
|
| 125 | +
|
| 126 | +### Installing Docker |
| 127 | +
|
| 128 | +- **Linux:** Both Docker Desktop and Docker Engine are separately supported on |
| 129 | + Linux. Both include the required Compose command plugin, but Docker Engine is |
| 130 | + typically much easier to install: |
| 131 | + - _Recommended:_ See [Install Docker Engine | Docker |
| 132 | + Docs][linux-docker-engine] for links to installation instructions for |
| 133 | + Docker Engine and Compose for various Linux distributions. |
| 134 | + - See [Install Docker Desktop on Linux | Docker Docs][linux-docker-desktop] |
| 135 | + for links to instructions for the graphical desktop app that includes the |
| 136 | + commandline interface and Compose |
| 137 | +- **macOS:** Docker Desktop can be installed using these instructions: [Install |
| 138 | + Docker Desktop on Mac | Docker Docs][macos-docker]. |
| 139 | +- **Windows:** Docker Desktop should be installed on Windows itself and |
| 140 | + integrated with Windows Subsystem for Linux (WSL2) as explained in [Docker |
| 141 | + Desktop WSL 2 backend on Windows | Docker Docs][windows-docker]. Unlike Git, |
| 142 | + you should not install Docker within your WSL2 environment. For installation |
| 143 | + instructions: see [Install WSL | Microsoft Learn][wsl2]. |
| 144 | +
|
| 145 | +[linux-docker-engine]: https://docs.docker.com/engine/install |
| 146 | +[linux-docker-desktop]: https://docs.docker.com/desktop/install/linux-install |
| 147 | +[macos-docker]: https://docs.docker.com/desktop/install/mac-install |
| 148 | +[windows-docker]: https://docs.docker.com/desktop/windows/wsl |
| 149 | +[wsl2]: https://docs.microsoft.com/en-us/windows/wsl/install |
| 150 | +
|
| 151 | +
|
| 152 | +### Getting started with Docker |
| 153 | +
|
| 154 | +- [A Docker Tutorial for Beginners][docker-tutorial] |
| 155 | +
|
| 156 | +[docker-tutorial]: https://docker-curriculum.com/ |
| 157 | +
|
| 158 | +
|
| 159 | +### Docker compose |
| 160 | +
|
| 161 | +Our projects use [Docker Compose | Docker Docs][docker-compose]. |
| 162 | +
|
| 163 | +[docker-compose]: https://docs.docker.com/compose/ |
| 164 | +
|
| 165 | +
|
| 166 | +## Next steps |
| 167 | +
|
| 168 | +We have added a lot of documentation (ex. language guides) and tooling (issue |
| 169 | +finder) to this site that cover frequently asked questions and confusions. |
| 170 | +Please explore this site and reach out on Slack for additional assistance. |
0 commit comments