Contributing to ScriptShifter
All contributions to ScriptShifter are done via the Git repository at
[https://github.com/lcnetdev/scriptshifter].
Most scripts can be handled simply via editing script tables, which does not
require any programming skills, but requires an understanding of how the
tables are laid out.
Contributing to the transliteration & transcription tables
For non-developers who want to improve, fix issues, or add whole new script
tables:
- You need a Github account to perform any edits to the code.
- Read [doc/config.md] first, which should provide the necessary understanding
of ScriptShifter tables.
- Open a new issue by clicking the "New issue" button in
[https://github.com/lcnetdev/scriptshifter/issues]. Describe clearly and
concisely the need for the changes you want to commit. IMPORTANT: if you have
multiple items to resolve, such as more than one major area of a script or
multiple scripts, open one issue for each, and commit one set of changes per
issue.
- If you are modifying an existing table, navigate on Github to the table in
question (in [scriptshifter/tables/data]) while logged into Github, and click
on the pencil button on the right on top of the code to edit the file in
place.
- You can perform as many edits as you like within a branch. Just keep adding
until you are satisfied. Just remember to keep the scope of the PR specific
to the one issue you are resolving.
- Once you are done editing, click the green "Commit changes" button. This will
open a form window.
- If you are changing rules in a script table, or adding a whole new table,
please add sample strings to the test table (see detailed instructions
below).
- Replace the generic commit message with an informative message about what
you did. Please be concise and clear. In the "Extended description" field,
enter
Fixes #<issue ID>
, where <issue ID>
is the identifier of the issue
you opened earlier (it shows in the title).
- From the radio button at the bottom, select "create a new branch" if not
already selected. Leave the provided branch name if you can't come up with a
better one.
- Confirm creating the branch and opening a pull request (PR), which is a
request to merge your changes into the main branch (the one that runs on the
live service).
- (Note: the steps up to here may be achieved by different means if you are
familiar with code editors and Git).
- Go to the pull request and request a review from at least one of
@thisismattmiller
, @kefo
, or @scossu
. The pull request will be reviewed
and may be accepted, or sent back to you for edits (normally with clear
indications of what needs to be changed).
- If you are request edits, keep adding edits to the same PR and re-request
a review when you think you satisfied your reviewers' comments.
- After the request is approved, you can merge it to the main branch using the
button present in the PR page, if someone hasn't done that already.
- At this point, your job is done, but the code must still be deployed to the
live service. Please coordinate with the repository managers (Matt or Kevin)
if you don't see your changes reflected in Marva within a day or two.
Adding test strings
Adding string to the test table is the single
most important thing to do, after your contribution, to keep ScriptShifter
free from error and well-maintained. This table is used as a source of test
strings by the automated tests that run before deploying a new version of
ScriptShifter.
If you modify in any way rules in a table (almost certainly), or even add a
whole new script table, you will want to verify that your changes work as
intended.
The test table is a CSV file, which you can download from Github and open with
a spreadsheet editor such as LibreOffice or Excel. Only the first four columns
are mandatory and used by the automated tests, the others are for annotation
purposes. Add brief and self-contained strings as the ones already present in
the table, covering a wide range of cases and in particular, complex and
ambiguous cases. Enter one line per test string, repeating the language,
script, and table key values. It is important to add the table key on column C,
because without that, tests won't run for that script.
If you edited the file with a spreadsheet editor, make sure you export the
fileas CSV (and not as Excel or LiberOffice). Then, go back to the branch that
you opened your PR on, navigate to the original file, and replacethe file with
your CSV.