Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Distributing a theme: start here

The map for publishing a theme - GitHub repository, version numbers and permanent tags, releases and changelogs, Packagist, licensing choices, screenshots and demo sites, and the community sites share.exponential.earth…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/designers/distribution/distribution-start-here.md

On this page

Distributing a theme: start here

This section is for designers whose theme extension works and who want others to find, install and trust it. Build the extension first (Theme extensions: start here).

The one rule to remember

A published release is permanent. A tag pushed to a public repository, and the Composer version Packagist reads from it, can never be corrected. A mistake in a release is fixed by the next release. Read A pushed tag is permanent before your first release.

A reading order

  1. Where and how: Choosing where to publish, Creating the GitHub repository, A README that explains and sells.
  2. Licensing: Licensing choices: an overview.
  3. Versions and releases: Choosing a version number, Checking what is already published, Bumping the version before the tag, GitHub releases.
  4. Composer: Submitting a theme to Packagist, Keeping Packagist up to date automatically.
  5. Being found: Screenshots, Demo sites, projects.exponential.earth, share.exponential.earth.
  6. Final check: Checklist: before you publish.

Every page of this section

PageWhat it answers
Choosing where to publishGitHub, Packagist, project pages, your own site
Creating the GitHub repositoryStep by step with gh
Repository name, description and topicsBeing found on GitHub
A README that explains and sellsThe first page people read
The first push and the default branchmain and the first push
Choosing a version numberWhich number for which change
After .9 comes .10Only the last position counts
Sorting tags correctly--sort=version:refname
Checking what is already publishedTags and releases first
Bumping the version before the tagThe release commit
Annotated tagsTags with a message
A pushed tag is permanentWhy and what follows
GitHub releasesgh release create
Writing release notesWhat users need to know
When a release goes wrongFix forward
Changelog entriesAdded, Updated, Removed, Renamed, Fixed
Keeping a CHANGELOG.mdThe history file
Submitting a theme to PackagistOne-time setup
Keeping Packagist up to date automaticallyThe GitHub hook
Packagist shows an old versionDiagnosis
Version constraints your users write~, ^ and pins
File checksumsshare/filelist.md5
Licensing choices: an overviewCode, docs, images
The GPL for theme codeWhy most themes are GPL
The GFDL for theme documentationDocs under the GFDL
Creative Commons for imagesImages and graphics
Third-party fonts, icons and librariesOthers' work inside yours
Commercial terms next to the GPLWhat can be sold, what cannot be restricted
Copyright notices in filesHeaders and notices
Screenshots for a themeWhat to show
Screenshot checklistBefore you upload
Running a demo siteA live preview
Demo content for a themeContent worth showing
Listing on projects.exponential.earthThe community forge
Announcing on share.exponential.earthForums and blogs
Documenting on eZpediaThe community wiki
Issue tracker and support channelWhere users ask
A security policy for a themePrivate reports
Checklist: before you publishThe final check

Become an Exponential Partner

Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x