Files
FTStore/CONTRIBUTING.md
T
Felitendo 2cdca9994c feat: merge the web dashboard into the monorepo as ftstore admin
FTStore now holds both halves of the product:

  ios/   the swift app — the fork of claration/Feather, unchanged apart
         from its new home
  web/   FTStore Admin, formerly its own repository. serves the
         dashboard at /admin, the ftstore.json feed and IPA downloads

app-repo.json and Images/ stay at the repo root on purpose: the former is
a published AltStore source whose raw.githubusercontent URL is what
installed copies resolve updates through, so moving it would break every
subscriber.

The admin server is renamed throughout: package ftstore-admin, images
ghcr.io/<owner>/ftstore-admin-{app,worker}, postgres role/db ftstore,
session cookie ftstore_session, temp dir /tmp/ftstore, backup type
ftstore-settings, outbound user-agent FTStoreAdmin. backups written under the old
name still import, and compose is pinned to name: ftstore so the
volume prefix does not follow the directory name.

apply-rebrand.sh gains a relocation step: upstream's tree is rooted at
the repo root while ours lives in ios/, so a merge drops Feather's files
next to ios/ and the script folds them in before renaming. it never
touches web/. still idempotent.

release tags are namespaced — v* for the app, web-v* for the server —
so a server release no longer triggers a macOS build or rewrites
app-repo.json. workflows are prefixed ios-/web- and path-filtered.
2026-08-03 10:25:03 +02:00

2.9 KiB

Contributing

FTStore is a sideloading app meant to be used on stock versions, to keep compatibility we have to utililize stock features to keep it working. As such, we have specific contribution rules in place to maintain this and FTStores integrity.

Any contributions should follow the Code of Conduct.

Rules

  • No usage of any exploits of any kind.
  • No contributions related to retrieving any signing certificates owned by companies.
  • Modifying any hardcoded links should be discussed before changing.
  • If you're planning on making a large contribution, please make an issue beforehand.
  • Your contributions should be licensed appropriately.
    • FTStore: GPLv3
    • AltSourceKit: MIT
    • NimbleKit: MIT
    • Zsign: MIT
  • Typo contributions are okay, just make sure they are appropriate.
    • This includes localizations
  • Code cleaning contributions are okay.

Contributing to FTStore

FTStore is a monorepo. The iOS app is in ios/, and the admin/feed server (FTStore Admin) is in web/ — for that half, see web/CONTRIBUTING.md. Everything below is about the app.

Compiling requirements

  • Xcode 16.0
  • Swift 6.0
  • iOS 16.0
  1. Clone repository

    git clone https://github.com/FTStuff/FTStore --recursive
    
    • Zsign is a submodule, recursive is required.
  2. Opening with Xcode

    cd FTStore/ios && open FTStore.xcworkspace
    

Localizations

  • For localizations, you will need Xcode 15 or higher to edit the ios/FTStore/Resources/Localizable.xcstrings file, or some alternative software which allows you to edit an .xcstrings file.
  • We use a newer format for convenience, but at a cost of less accessibility when it comes to actually editing it.
    • Disclaimer: do NOT edit by hand.
  • Some localizations were imported from V1, if they don't make sense please feel free to change them.
  • After localizing, please have another person review your localizations (unless the owners have asked you personally to help translate).
    • We want high quality localizations and have them actually make sense when in the application.
    • They will not be merged unless the latter was done.

Making a pull request

  • Make sure your contributions stay isolated in their own branch, and not main.
  • When contributing don't be afraid of any reviewers requesting changes or judging how you wrote something, it's all to keep the project clean and tidy.

Contributing to Zsign

When contributing to Zsign, head over to khcrysalis/Zsign-Package and make your contributions.

Any contributions to here will be immediately updated to here, to keep things consistent.

Contributing to the wiki

  • If you want to add a page or suggest edits, make an issue with your proposed changes.