Skip to content

Commit 047a75e

Browse files
Added tweaks suggested by Fred to prepare for Natron website transition (#14)
* Tweak installation guide with more accurate information * Added requested information for Apple Silicon * Added requested information for Apple Silicon - Downloads section now shows that the main macOS downloads are for Intel only - Information added about how to run Natron on Apple Silicon macs below main downloads - Link to the Natron 2.6.0 pre-release (that has Apple Silicon support) added to `_config.yml` - Also changed the `branch` field in `_config.yml` (even though we don't use it for anything right now) to match Natron 2.5's branch to avoid future confusion * A few minor wording edits for better flow * Updated README with detailed information for creating a new release * Changes * to - in lists * Spelling fix and link fix * Change link text Improves accessibility, "here" is not descriptive link text * Update about.md copy with Hank's suggestions Co-authored-by: Henry Wilkinson <[email protected]> * Punctuation fix * Adds link to GitHub past releases --------- Co-authored-by: Henry Wilkinson <[email protected]>
1 parent 2f53d72 commit 047a75e

File tree

7 files changed

+87
-31
lines changed

7 files changed

+87
-31
lines changed

DEVELOP.md

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,16 @@
22

33
Natron's website uses Jekyll, a static site generator. It usually saves us a lot of time reduces our trouble, but we know it can be confusing to many newer developers and get *them* in lots of trouble. So, here is a reliable means of developing Natron's website for Mac users, Windows users, and GNU/Linux users!
44

5+
If you're an absolute beginner, we recommend taking a look at the [terminal cheat sheet](https://terminalcheatsheet.com/) as well as the [Atlassian tutorials on version control and git](https://www.atlassian.com/git/tutorials/what-is-version-control) before continuing. In addition, it may be helpful to look through the [Jekyll setup guide](https://jekyllrb.com/docs/step-by-step/01-setup/).
6+
57
If you run into any issues, look at the FAQ and [Development Gotchas](#development-gotchas) section at the bottom of this guide.
68

79
## Installing prerequisites for development
810

911
### Prerequisites for all operating systems
1012

13+
Before doing anything, check that you have a reliable internet connection. Additionally, Windows users should run all the listed commands in **powershell**, not the command prompt.
14+
1115
Make sure you have `git` installed. If you are using macOS or GNU/Linux, you likely already have it installed; Windows users can download and run the installer from [its official download page](https://git-scm.com/download/). Check that you have `git` correctly installed by running this on Mac/Linux:
1216

1317
```bash
@@ -22,7 +26,7 @@ where git; if %errorlevel% neq 0 echo git is not installed.
2226

2327
Now, head to correct instructions for your operating system:
2428

25-
- [GNU/Linux](#gnu/linux-instructions)
29+
- [GNU/Linux](#gnulinux-instructions)
2630
- [Windows](#windows-instructions)
2731
- [macOS](#macos-instructions)
2832

@@ -68,7 +72,7 @@ If you would like to troubleshoot Jekyll, run `bundle exec jekyll doctor` which
6872
Finally, you can run bundler which automatically installs Jekyll as well as starts a development server:
6973

7074
```bash
71-
DISABLE_WHITELIST=true # allows plugings to run
75+
DISABLE_WHITELIST=true # allows plugins to run
7276
bundle install && bundle exec jekyll serve
7377
```
7478

@@ -111,7 +115,16 @@ $env:RBENV_ROOT = "$HOME\Ruby-on-Windows"
111115
& "$env:RBENV_ROOT\rbenv\bin\rbenv.ps1" init
112116
```
113117

114-
Now open another powershell terminal, and rbenv should automatically start downloading the Ruby toolchain. If it does not, run:
118+
`rbenv` also requires that the free 7-zip file archiver is installed. If not, then [head to the 7-zip website](https://www.7-zip.org/). Then run `notepad $profile` and add the following line:
119+
120+
```powershell
121+
# Add 7zip to PATH
122+
$env:Path += ';C:\Program Files\7-Zip'
123+
```
124+
125+
Test by running `7z`, if it simply shows a bunch of options (it is quite verbose!) but no "executable not found"-style error, you may proceed with the rest of these steps.
126+
127+
Now (assuming you either have installed 7-zip or have followed the steps to install it) open another powershell terminal, and rbenv should automatically start downloading the Ruby toolchain. If it does not, run:
115128

116129
```powershell
117130
rbenv install 3.3.3
@@ -155,7 +168,7 @@ Follow the same steps as in the GNU/Linux guide, with the one difference being t
155168

156169
Our development workflow uses Git, which tracks development changes so that we can easily synchronize work by multiple developers, locate any change in history, and not worry about losing work. Git relies on the concept of _branches_ and _commits_. A commit is any change: it can be anything from editing an existing file, creating a new file, to deleting a file. Commits happen on _branches_, which are like paths for commits. A quick reference to Git's many, many commands, as well as links to resources for beginners, can be found [here](https://learnxinyminutes.com/docs/git/). We host our Git repository and collaborate on [GitHub](https://github.com/), and a starting guide for GitHub can be found [here](https://docs.github.com/en/get-started/start-your-journey).
157170

158-
It is *strongly encouraged* to create a new branch for any new additions, via `git checkout -b my-new-branch-name`, as this will avoid [many issues](https://stackoverflow.com/questions/64369860/github-no-file-changes-but-many-commits-when-comparing-branches). Open a [pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests) once you are finished making your changes and have pushed them to GitHub.
171+
It is _strongly encouraged_ to create a new branch for any new additions, via `git checkout -b my-new-branch-name`, as this will avoid [many issues](https://stackoverflow.com/questions/64369860/github-no-file-changes-but-many-commits-when-comparing-branches). Open a [pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests) once you are finished making your changes and have pushed them to GitHub.
159172

160173
### Important contributing information
161174

@@ -171,10 +184,12 @@ Due to the nature of our development setup, there are lots of hidden surprises t
171184
- This is because the correct syntax is `{% include component.html param="value" %}`, with the include html path **not surrounded by quotes** (i.e. not `"component.html"`)
172185
- My site variables are not being updated!
173186
- Reload the development server, open a new terminal if necessary, as Jekyll's development server does not seem to reload config files
187+
- I am getting some variation of the error `"<command> not found"` or `"<command> is not recognized as a file, script, or operable command"`
188+
- Try opening a new terminal window and navigating to the natron website folder again. This reloads the shell and allows it to find any newly-installed developer tools and components
174189

175190
## FAQ
176191

177192
- Why did you use Jekyll? Why not Hugo/Next.js/Gatsby?
178193
- This is because Jekyll is native to GitHub, and we originally wanted to use GitHub pages' native Jekyll support, though we ended up switching to GitHub actions to reduce dependencies and use a more recent version of Jekyll
179194
- Why is the Git repo so big?
180-
- We include images, brand assets and third-party binary files necessary for Natron that are not available anymore, the Jekyll site itself is relatively small
195+
- We include images, brand assets and third-party binary files necessary for Natron that are not available anymore, the Jekyll site itself is relatively small

Gemfile.lock

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ GEM
6565
PLATFORMS
6666
x64-mingw-ucrt
6767
x86_64-darwin-20
68+
x86_64-darwin-23
6869
x86_64-linux
6970

7071
DEPENDENCIES

README.md

Lines changed: 40 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,25 @@
44

55
## Development
66

7-
We're open to any contributions! To contribute, make sure you have a decent grasp of these things:
7+
We're open to any contributions! To contribute, make sure you have a decent grasp of these things (or have a willingness to learn them!):
88

9-
* The command line
10-
* Web design
11-
* HTML/CSS and SCSS
12-
* Some prior experience with Jekyll
9+
- The command line
10+
- Web design
11+
- HTML/CSS and [SCSS](https://sass-lang.com/)
12+
- Some prior experience with [Jekyll](https://jekyllrb.com/)
1313

1414
Note that if you're a beginner programmer and this is your first time working on an open-source project, we advise you to read [the detailed development guide](DEVELOP.md). The guide is also helpful if you encounter issues in the setup process. The process described below assumes a pre-existing knowledge of version control systems and Jekyll in general. If that's ok with you, follow these steps to quickly get started:
1515

1616
### Getting Dependencies
1717

1818
Make sure you have `git` already installed. This website also requires Jekyll, a static site generator we use to generate markup from templates. Installing Jekyll is generally a variation of these steps:
1919

20-
* Step 1: Install `rbenv` via `brew install rbenv` on macOS with [Homebrew](https://brew.sh/) installed, `sudo apt install rbenv` on Debian Linux distros, `yay -S rbenv` on Arch-based distros, or compiling manually from its sources at <https://github.com/rbenv/rbenv>. For Windows, follow the instructions for [rbenv for Windows](https://github.com/ccmywish/rbenv-for-windows), just making sure to substitute `$env:RBENV_ROOT = "$HOME\Ruby-on-Windows"` wherever it is mentioned.
21-
* Step 2: Run `rbenv init` and open a new terminal (not necessary on Windows)
22-
* Step 3: Run the command `rbenv install 3.3.3 && rbenv global 3.3.3` (or any recent version) (not necessary on Windows, it auto-installs)
23-
* Step 4: Now, open a new terminal again, and run `gem install bundler` - this gives you access to the `bundle` command which (confusingly) is what installs Jekyll!
20+
- Step 1: Install `rbenv` via `brew install rbenv` on macOS with [Homebrew](https://brew.sh/) installed, `sudo apt install rbenv` on Debian Linux distros, `yay -S rbenv` on Arch-based distros, or compiling manually from its sources at <https://github.com/rbenv/rbenv>. For Windows, follow the instructions for [rbenv for Windows](https://github.com/ccmywish/rbenv-for-windows), just **making sure** to substitute `$env:RBENV_ROOT = "$HOME\Ruby-on-Windows"` wherever it is mentioned.
21+
- Step 2: Run `rbenv init` and open a new terminal (you may not _have_ to do this depending on your system and terminal setup, but it's recommended)
22+
- Step 3: Run the command `rbenv install 3.3.3` and then `rbenv global 3.3.3` (other versions of Ruby _may_ work but are untested and may break things). This is *usually* not necessary on Windows (it auto-installs) but if the next step(s) don't work, run the aforementioned command and try again
23+
- Be aware that this may take a while (~5 min. depending on your internet connection)
24+
- On windows, this assumes you have 7-Zip installed and on your PATH. Read the [detailed developer guide](DEVELOP.md) otherwise.
25+
- Step 4: Now, open a **new** terminal again, and run `gem install bundler` - this gives you access to the `bundle` command which (confusingly) is what installs Jekyll!
2426

2527
## Building With Jekyll
2628

@@ -32,9 +34,9 @@ git clone https://github.com/Shrinks99/NatronGitHub.github.io && cd NatronGitHub
3234

3335
Build with Jekyll in three steps:
3436

35-
* `bundle install` to install all the dependencies
36-
* `bundle exec jekyll build` to build the site
37-
* `bundle exec jekyll serve --incremental` to start Jekyll at <http://localhost:4000>
37+
- `bundle install` to install all the dependencies - this may take quite a while! Windows users may need to run this in a Powershell session with **administrator permissions**
38+
- `bundle exec jekyll build` to build the site
39+
- `bundle exec jekyll serve --incremental` to start Jekyll at <http://localhost:4000>. You may also add the `--livereload` flag so that the development server reloads automatically on edits to the source code (which can be a big time-saver!)
3840

3941
Navigate to <http://localhost:4000> in the browser and get going!
4042

@@ -66,14 +68,32 @@ All color variables are referenced as both P3 and an sRGB fallback. Variables c
6668

6769
SVGs can only have their colors set with variables if they exist in the DOM. This matters most for SVGs set to our brand colors & 100% white. If the SVG is not using these colors _it doesn't have to be embedded!_ Otherwise, it should be.
6870

69-
### Authoring an Update Post
70-
71-
After building and setting up the release through GitHub Releases...
72-
73-
1. Create a standard release graphic: Natron project file and instructions on how to do this are available in the releasegraphic folder in `/templates`. Place the generated image in `/img/news/releases`.
74-
2. Author an update post: Markdown template also available in `/templates`, be sure to change the relevant info in both the file name and the front matter section, most of the body text can be copied from the GitHub `CHANGELOG.md`, please include any extra information about the release before the "Major Changes" section.
75-
3. Change the download links by setting the variables in `_config.yml`.
76-
4. Publish to main! Bonus points for testing the site locally first ;)
71+
### Authoring an Update Post (for new releases)
72+
73+
> **Note:** This assumes stable releases, _not_ pre-releases
74+
75+
After building and setting up the release through GitHub Releases, the website can be updated as follows:
76+
77+
1. Create a standard release graphic:
78+
- A Natron project file that automatically generates a release graphic is available in the releasegraphic folder in `/templates`. The instructions for using it are [here](templates/releasegraphic/README.md).
79+
- After generating the release graphic, place it in `/img/news/releases`.
80+
2. Author an update post:
81+
- Copy the markdown post template in `/templates` (the one titled `yyyy-mm-dd-release-x-y-z.md`) to the `/site_collections/_posts/` folder
82+
- In the post, change the relevant info in both the file name (i.e. rename the file following the `yyyy-mm-dd-release-x-y-z` name format) and the front matter section.
83+
- Most of the body text can be copied from the GitHub `CHANGELOG.md`, please include any extra information about the release before the "Major Changes" section.
84+
3. Change the download links by setting the variables in `_config.yml`:
85+
- Ensure that the release information entered is the same as the **latest release** on GitHub, i.e. the release linked to [releases/latest](https://github.com/NatronGitHub/Natron/releases/latest)
86+
- Under the `natron` field:
87+
- Set the branch to the latest release's branch name (at the moment, however, this is a semi-redundant field that we don't use for anything)
88+
- Set `version` to the version number **set in the Github release**. This should **always** be in X.Y.Z format (e.g. 2.5.0, 2.4.3, etc.)
89+
- Set `date` to the release date in `YYYY-MM-DD` format
90+
- All the other variables will be under the `downloads` field (which is at the top of the `_config.yml`)
91+
- We assume that release binaries follow the general format `Natron-<VERSION><BUILDNAME>` except for non-GitHub distribution channels (as of the moment, the only one is Flatpak and that shouldn't need to be changed anyways). For all other (i.e. GitHub-based) distribution channels, the `url` fields _must_ be left blank.
92+
- The `suffix` fields for all the downloads provide the `<BUILDNAME>` mentioned above for each of the different platforms
93+
- In theory there should be no need to touch any of the `suffix` fields unless there is a major naming convention change in the build scripts. Changing the **version, date, and branch** should be **the only changes required** for every new release.
94+
- In addition to macOS, Windows, and Linux, the `other` field contains download links for alternate distribution channels and for non-binary downloads (though again, these links probably don't need to be changed, at least not often). New links can be freely added to this section, but **don't** remove any existing links or change their associated variable names.
95+
- In general: unless if there is a specific reason, it is advisable to only change the variable _values_, not the variable names, as doing otherwise will require a change in the templates. In particular, the categories for Windows, macOS, and Linux should stay as-is, please **only** change the values and do _not_ rename the fields/remove any fields within those categories unless you know what you are doing.
96+
4. **Test out the site locally first** by running the live server with `bundle exec jekyll serve` (following instructions as given above), then publish to main!
7797

7898
## Licensing
7999

_config.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ facebook: https://facebook.com/groups/NatronNation/
1313

1414
# Values to change when setting up a new Natron release
1515
natron:
16-
branch: 2.5
16+
branch: RB-2.5
1717
release:
1818
version: 2.5.0
1919
date: "2022-11-25"
@@ -61,6 +61,7 @@ downloads:
6161
url: ""
6262
suffix: "-OSX-Universal.dmg"
6363
other:
64+
silicon-prerelease: https://github.com/NatronGitHub/Natron/releases/tag/v2.6.0-alpha1
6465
freshports: https://www.freshports.org/graphics/natron/
6566
examples: https://sourceforge.net/projects/natron/files/Examples/
6667
natron-plugins: https://github.com/NatronGitHub/natron-plugins

_sass/_index.scss

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,21 @@
173173
}
174174
}
175175

176+
.index-downloads-extrainfo {
177+
margin-top: 4rem;
178+
margin-left: auto;
179+
margin-right: auto;
180+
max-width: 40ch;
181+
text-align: center;
182+
183+
p.p-small {
184+
font-size: smaller;
185+
color: var(--grey);
186+
margin-left: auto;
187+
margin-right: auto;
188+
}
189+
}
190+
176191
.index-downloads-other {
177192
margin-top: 4rem;
178193

about.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ title: About Natron
77

88
![An animated cartoon shot open in Natron](img/about-screenshot.png)
99

10-
## Cross-platform open-source compositor for the visual effects industry
10+
## Cross-platform open-source compositor for the VFX industry
1111

12-
Natron is a powerful free and open-source VFX compositor geared towards digital post-production work, with industry-standard UI, 100+ nodes, and support for OpenFX and community-made plugins. With its robust OpenFX based engine and support for OpenImageIO and OpenColorIO, Natron can handle all of your VFX post-production needs.
12+
Natron is a powerful, free, and open-source VFX compositing application geared towards digital post-production work. Natron sports a familiar UI, over 100 nodes, and support for OpenFX and community-made plugins. With its robust OpenFX-based engine and support for OpenImageIO and OpenColorIO, Natron can handle all of your VFX post-production needs.
1313

1414
Natron was a proud recipient of [Inria](https://www.inria.fr/en) funding from 2013–2018, and is currently being developed by a team of open-source contributors as a community effort.
1515

@@ -29,7 +29,7 @@ Yes, Natron is free software. Free to use, free to modify, and free to share, du
2929

3030
### What can Natron do?
3131

32-
Natron is a powerful digital compositor capable of handling a multitude of VFX and post-production tasks. Natron's capabilities include but are not limited to:
32+
Natron is a powerful digital compositor capable of handling a multitude of VFX and post-production tasks. Natron's capabilities include (but are not limited to):
3333

3434
- Linear node-based workflow
3535
- 32bit/channel floating-point linear processing pipeline
@@ -41,7 +41,7 @@ Natron is a powerful digital compositor capable of handling a multitude of VFX a
4141
- Extensive OpenFX and community plugins support
4242
- And much more!
4343

44-
Natron can be used in conjunction with [Blender](https://www.blender.org/) to extend it's capabilities by utilising Blender's 3D environment. This is facilitated by Natron's support for CHAN files for transferring camera tracking data.
44+
While Natron **does not yet have a 3D workspace**, it can be used in conjunction with [Blender](https://www.blender.org/) to extend its capabilities by utilizing Blender's 3D environment. Natron additionally supports CHAN files for transferring camera tracking data.
4545

4646
### Does the Natron Project accept donations?
4747

index.html

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ <h2 class="h2 center-text">Download Natron</h2>
108108
<div class="index-downloads-oscontainer">
109109
<div class="index-downloads-os">
110110
<div>
111-
<h3 class="h3"><i class='bx bxl-apple'></i>macOS</h3>
111+
<h3 class="h3"><i class='bx bxl-apple'></i>macOS (Intel only)*</h3>
112112
</div>
113113
<div>
114114
<p class="p-small">
@@ -158,9 +158,13 @@ <h3 class="h3"><i class='bx bxl-tux'></i>GNU/Linux</h3>
158158
</div>
159159
</div>
160160
</div>
161+
<div class="index-downloads-extrainfo">
162+
<p class="p-small center-text">* The latest stable release runs on Apple Silicon Macs via Rosetta 2. A <a href="{{ site.downloads.other.silicon-prerelease }}" class="intext-link intext-link-glow">beta build with native support for Apple Silicon</a> is available for those who'd like to try it!</p>
163+
</div>
161164
<div class="index-downloads-other">
162165
<h4 class="h4 center-text">Other Downloads:</h4>
163166
<p class="p-small center-text">
167+
<a href="https://github.com/NatronGitHub/Natron/releases/" class="intext-link intext-link-glow">Past Releases</a>
164168
<a href="{{ site.downloads.other.freshports }}" class="intext-link intext-link-glow">FreeBSD: Freshports</a>
165169
<a href="{{ site.downloads.other.examples }}" class="intext-link intext-link-glow">Sample projects</a>
166170
<a href="{{ site.downloads.other.natron-plugins }}" class="intext-link intext-link-glow">Community Plugins</a>

0 commit comments

Comments
 (0)