Upgrading Telar
Keep your Telar site up to date with the latest features, bug fixes, and improvements.
Using the Telar Compositor? If you manage your site through the Telar Compositor, you can upgrade with one click from its Upgrade screen — the manual steps below aren’t needed. If it asks you to approve updated GitHub permissions first, accept them and retry. The instructions below are for upgrading directly on GitHub instead.
Overview
Telar v0.3.4 introduced an automated upgrade system that makes updating your site simple and safe. The upgrade process depends on which version you’re currently running:
- v0.3.4 or later: Use the automated upgrade workflow (one-click upgrades)
- v0.2.0 to v0.3.3: Manual setup required first (one-time only)
Automated Upgrades (v0.3.4+)
If your site is already running Telar v0.3.4 or later, upgrading is fully automated.
How It Works
The upgrade system:
- Detects your current Telar version from
_config.yml - Applies all necessary migrations incrementally (e.g., v0.3.4 → v0.3.5 → v0.3.6)
- Updates framework files and configurations
- Creates an upgrade branch and issue with detailed summary
- Highlights any manual steps you need to complete
Running an Automated Upgrade
Forked repositories only: If you forked your site from another repository, you’ll need to enable issues in your repository settings (Settings → General → check Issues). Sites created using the “Use this template” button already have issues enabled.
- Go to your repository on GitHub
- Click the Actions tab
- Select the “Upgrade Telar” workflow from the left sidebar
- Click Run workflow (green button on the right)
- Click the green Run workflow button in the dropdown
- Wait for the workflow to complete (usually 1-2 minutes)
- Review the automatically created upgrade issue
- Click the link in the issue to create a pull request
- Review changes and merge the pull request to complete the upgrade
Safe and Reversible The upgrade creates an issue and branch, giving you full control. Review the changes via the compare link, create a PR when ready, and merge only after verification.
After Upgrading
- Visit your site to verify it’s working correctly
- Check the upgrade issue for any manual steps (visible in the “After Merging” section)
- If you have custom themes or modifications, test them thoroughly
- Close the upgrade issue once everything is working - this marks the upgrade as complete
- If you encounter issues, check the GitHub Issues or report a bug
v1.5.0 Upgrade Notes
v1.5.0 is a robustness and security release. It is runtime and tooling only — existing stories, objects, and configuration continue to work unchanged, with no CSV edits and no config changes. The automated upgrade handles all framework file replacements; two optional manual steps are described below.
What’s included: author content is now escaped at every render point; TLS certificate verification is enforced on all Google Sheets and IIIF fetches; protected stories are hardened (the build stops rather than ship unencrypted, stronger key derivation, and no byline, description, or SEO leak); the upgrade workflow runs checksum-verified tooling in isolation; and all remote reads are capped with path-traversal guards. WaveSurfer is vendored so audio works offline, framework files install atomically, and several viewer, video, audio, and story-ordering bugs are fixed. None of this needs any action from you — see the CHANGELOG for the full list.
Recommended — update your GitHub Actions workflow files:
For security, GitHub does not allow the automated upgrade to modify workflow files, so two v1.5.0 hardening improvements are not applied for you:
.github/workflows/upgrade.yml— the upgrade process now downloads its tooling as a checksum-verified release asset and runs it in isolation..github/workflows/build.yml— theruby/setup-rubyaction is pinned to a specific commit for supply-chain safety, and the build now installs Node dependencies withnpm ci.
To apply them, use the copy-from-Raw steps in the “Manual Setup for Earlier Versions” section below, once for each file. If you skip this, your site keeps building and deploying normally — these changes only harden your workflows.
If you update
build.yml, also addpackage-lock.json. The newbuild.ymlinstalls Node dependencies withnpm ci, which requires a committedpackage-lock.json. Copy it from the Telar repository (open package-lock.json, click Copy raw contents) into your repository’s root, or the build will fail. New sites created from the template already include it.
Language pack — new protected-story sharing keys:
This release adds keys to the built-in language files (en.yml and es.yml) for the protected-story sharing warnings — the messages shown when a share link or embed code includes the access key. If you have a customized language file, re-apply your changes after upgrading by copying the new keys from the updated _data/languages/en.yml (or es.yml) in the Telar repository.
If you only use GitHub’s web interface:
The automated upgrade handles all framework file replacements. The workflow updates above are optional hardening; if you apply the build.yml update, remember the package-lock.json note.
v1.4.0 Upgrade Notes
v1.4.0 is a runtime-only upgrade. Existing stories, objects, and configuration continue to work unchanged — no CSV edits, no config changes, and no workflow updates are required.
Viewer change — Tify replaced by OpenSeadragon:
The IIIF image viewer has changed from Tify (loaded from a CDN) to a custom OpenSeadragon wrapper (vendored locally). For most sites this is invisible: IIIF images continue to display and zoom. If your site has a customized _sass/_viewer.scss that overrode Tify styles, those overrides are now inert and can be removed, but they will not break the build.
Language pack — six new object.viewer.* keys:
Six new keys are added to the built-in language files (en.yml and es.yml): object.viewer.prev_page, object.viewer.next_page, object.viewer.page_input_label, object.viewer.page_input_aria, object.viewer.image_unavailable_title, and object.viewer.image_unavailable_detail. These drive the multi-page pagination chrome and the error fallback UI in the new viewer.
If you have a customized language file (a copy of en.yml or es.yml with your own translations), you will need to add these six keys manually after upgrading, or the viewer pagination and error messages will fall back to the built-in English strings. Copy the values from the updated _data/languages/en.yml (or es.yml) in the Telar repository and translate as needed.
If you only use GitHub’s web interface:
No manual steps are required. The upgrade handles all file replacements automatically.
v1.3.0 Upgrade Notes
v1.3.0 fixes i18n coverage across the site and introduces a sister-file convention for localizing user pages. No CSV changes are required.
Automated content migration — hash-gated page rewrites:
The upgrade migration rewrites four user-content files (index.md, pages/glossary.md, pages/objects.md, telar-content/texts/pages/about.md) to use the new lang-key templates — but only if each file is byte-for-byte identical to the v1.2.1 default. Any customized content is preserved untouched. For Spanish-language sites whose about.md is unchanged from the v1.2.1 default, the migration also creates telar-content/texts/pages/acerca.md automatically.
New language keys — lang.index_page.welcome and lang.pages.glossary_intro:
Two new keys are added to the built-in language files. If you have a customized language file, you do not need to add them immediately — the layouts use fallback guards — but adding them gives you control over the homepage welcome text and glossary intro sentence in the site’s active language.
If you only use GitHub’s web interface:
No manual steps are required beyond reviewing the automatically created upgrade issue for any files flagged as not matching the default (meaning your customizations were detected and preserved).
v1.2.1 Upgrade Notes
v1.2.1 is a patch release. No manual steps are required.
The upgrade fixes a silent failure in the demo content fetch script that affected sites whose _config.yml carried a v-prefixed version string (e.g. version: "v1.2.0"). If your site showed no demo content after a previous upgrade, this patch resolves it. No config edits are needed; the fix is in the build script.
v1.2.0 Upgrade Notes
v1.2.0 adds a section table of contents, a Back to Start button, and in-story navigation. No manual steps are required.
All new features activate automatically. The section TOC is opt-in per story: add show_sections: yes to a story’s row in project.csv (or mostrar_secciones: si for Spanish-language sites) to display it. Sites without this column continue to work without any CSV changes.
If you only use GitHub’s web interface:
No action required.
v1.1.0 Upgrade Notes
v1.1.0 adds deep linking, title cards, collection mode, bibliography styling, and a share panel position tab. No manual steps are required.
Deep linking and the updated share panel activate automatically. Collection mode is opt-in: set collection_mode: true in _config.yml to switch the homepage layout. The default is false, so existing sites are unaffected. Title cards use existing CSV rows with an empty object field — no new columns required. Bibliography styling is a new markdown widget (:::bibliography) available in panel content.
If you only use GitHub’s web interface:
No action required.
v1.0.0-beta Upgrade Notes
v1.0.0-beta adds multimedia support (video and audio objects), an updated build pipeline, and renames the object_type CSV column to medium.
Manual step — update the build workflow:
The build.yml workflow has new steps for audio processing, Node.js setup, and JavaScript bundling. Copy the latest version from the Telar repository:
- Open build.yml on GitHub
- Click Copy raw contents
- In your repository, navigate to
.github/workflows/build.ymland click Edit - Select all and replace with the copied contents
- Commit the change
Manual step — install Node.js dependencies (local development only):
If you develop locally, run npm install in your repository after upgrading. This installs the JavaScript dependencies required by the new build pipeline (lenis, @vimeo/player, esbuild, vitest).
Optional — audio support:
If your site includes audio objects, install ffmpeg and audiowaveform for clip extraction and waveform peak data:
- macOS:
brew install ffmpeg audiowaveform - Ubuntu:
sudo apt install ffmpeg audiowaveform
Sites without audio objects do not need these tools. GitHub Actions installs them automatically when audio files are detected.
Column rename — object_type to medium:
The object_type column in objects.csv has been renamed to medium. This change is backward compatible — the old column name is still accepted.
If you only use GitHub’s web interface:
- Copy the updated
build.ymlas described above. No other manual steps are required.
v0.7.0 Upgrade Notes
v0.7.0 adds Node.js as a requirement for local development builds:
New requirement for local development:
- Node.js 18+ is now required to run
bundle exec jekyll buildorbundle exec jekyll serve - This enables JavaScript module bundling via esbuild during the build process
- GitHub-based workflows are not affected — GitHub Actions already includes Node.js
If you develop locally:
- Install Node.js 18+ (nodejs.org)
- Run
npm installin your repository to install JavaScript dependencies - Then proceed with normal Jekyll commands
If you only use GitHub’s web interface:
- No action required — your site will continue to build automatically
Manual Setup for Earlier Versions
If your site is running v0.2.0 through v0.3.3, you’ll need to add the upgrade workflow files to your repository first. This is a one-time setup—after this, all future upgrades will be automated.
Step 1: Add the Upgrade Workflow File
You need to add two files to enable automated upgrades: the upgrade workflow and the updated build workflow. The upgrade workflow will automatically fetch all necessary scripts when it runs.
Method A: GitHub Web Interface (Recommended)
Work entirely in the browser without installing anything:
- Open the upgrade workflow in Telar:
- Go to https://github.com/UCSB-AMPLab/telar/blob/main/.github/workflows/upgrade.yml
- Click the Copy raw contents button (📋 icon in the top-right corner)
- Create the file in your repository:
- Go to your repository on GitHub
- Click Add file → Create new file
- Enter the file path:
.github/workflows/upgrade.yml - Paste the copied contents
- Scroll down and click Commit changes
- Add commit message: “Add automated upgrade workflow”
- Click Commit changes
Method B: Desktop/Local Development
If you have your repository cloned locally:
- Download the workflow file from Telar:
curl -o .github/workflows/upgrade.yml https://raw.githubusercontent.com/UCSB-AMPLab/telar/main/.github/workflows/upgrade.yml - Commit and push:
git add .github/workflows/upgrade.yml git commit -m "Add automated upgrade workflow" git push
That’s it! The workflow automatically downloads the latest upgrade scripts from the Telar repository each time it runs, so you don’t need to copy any Python files manually.
Step 2: Replace the Build Workflow File
If you’re upgrading from v0.2.0 through v0.3.3, you also need to replace your .github/workflows/build.yml file with the latest version. This removes deprecated features (cron schedule and git push step) that are no longer needed in v0.3.4+.
Method A: GitHub Web Interface (Recommended)
Work entirely in the browser:
- Open the build workflow in Telar:
- Go to https://github.com/UCSB-AMPLab/telar/blob/main/.github/workflows/build.yml
- Click the Copy raw contents button (📋 icon in the top-right corner)
- Replace the file in your repository:
- Go to your repository on GitHub
- Navigate to
.github/workflows/build.yml - Click the Edit button (pencil icon)
- Select all content (Ctrl+A or Cmd+A) and delete
- Paste the copied contents
- Scroll down and click Commit changes
- Add commit message: “Update build workflow to v0.3.4”
- Click Commit changes
Method B: Desktop/Local Development
If you have your repository cloned locally:
- Download the workflow file from Telar:
curl -o .github/workflows/build.yml https://raw.githubusercontent.com/UCSB-AMPLab/telar/main/.github/workflows/build.yml - Commit and push:
git add .github/workflows/build.yml git commit -m "Update build workflow to v0.3.4" git push
Optional Step: If you skip this step now, the upgrade summary will include instructions to update build.yml manually after your first upgrade. However, doing it now ensures a smoother upgrade experience.
Step 3: Run Your First Automated Upgrade
That’s all the setup needed! Now follow the Automated Upgrades instructions above to upgrade to the latest version.
The workflow will automatically:
- Download the latest upgrade scripts from the Telar repository
- Detect your current version
- Apply all necessary migrations
- Create a pull request with the upgraded files
Troubleshooting
Upgrade Workflow Not Appearing
Problem: The “Upgrade Telar” workflow doesn’t appear in the Actions tab.
Solution:
- Make sure you’ve committed the
.github/workflows/upgrade.ymlfile - Refresh the Actions tab in your browser
- Check that the YAML file is valid (no syntax errors)
Upgrade Fails with Error
Problem: The upgrade workflow fails with an error message.
Solution:
- Check the workflow logs in the Actions tab for details
- Verify your
_config.ymlhas atelar.versionfield - The workflow downloads scripts automatically, so network issues could cause failures
- If the error persists, report an issue with the error message
Issue Not Created
Problem: The upgrade completes but no issue is created.
Solution:
- Check if an issue already exists with title “Upgrade Telar to [version]”
- Verify GitHub Actions has
issues: writepermission in your repository - Check that issues are enabled in your repository settings
- Try running the workflow again
Merge Conflicts
Problem: The upgrade PR has merge conflicts.
Solution:
- Review which files have conflicts
- If conflicts are in files you’ve customized (CSS, layouts), manually resolve them
- If conflicts are in framework files, the upgrade version should usually be preferred
- If unsure, ask for help
Version History
For a complete list of changes in each version, see the Changelog in the Telar repository.
Need Help?
- Documentation: telar.org/docs
- Example Site: telar.org/demo
- Report Issues: GitHub Issues