Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rebase v 173 #1

Merged
merged 141 commits into from
Jan 13, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
141 commits
Select commit Hold shift + click to select a range
7dc1b83
Individual initiative fix
RabidOwlbear May 14, 2022
4d44a3a
Merge branch 'vttred:main' into main
RabidOwlbear May 14, 2022
838b9cf
Merge branch 'vttred:main' into main
RabidOwlbear May 17, 2022
b036d66
ability chat card render fix
RabidOwlbear May 21, 2022
573f488
Merge branch 'vttred:main' into main
RabidOwlbear May 25, 2022
0b55120
Merge branch 'vttred:main' into main
RabidOwlbear Jun 3, 2022
e115bee
Merge branch 'vttred:main' into main
RabidOwlbear Jun 18, 2022
9f608a1
fix
RabidOwlbear Jul 5, 2022
bef0168
localized
RabidOwlbear Jul 5, 2022
7e4515c
docs: add troubleshooting for symlink perm error
anthonyronda Aug 11, 2022
f3a8a05
docs: fixed formatting of troubleshooting step
anthonyronda Aug 11, 2022
7cd3610
Merge branch 'main' of https://github.com/RabidOwlbear/ose
RabidOwlbear Aug 12, 2022
b053313
docs: remove "unofficial" from README, add links
anthonyronda Aug 13, 2022
b09ec49
Issue #35: monster abilities and equipment sort
hogwrassler Aug 14, 2022
ac9d73b
New translations en.json (Portuguese, Brazilian)
anthonyronda Aug 23, 2022
f2f75ab
New translations en.json (Portuguese, Brazilian)
anthonyronda Aug 23, 2022
bee9e7f
Merge pull request #204 from vttred/i18n
anthonyronda Aug 28, 2022
1153dfb
Merge pull request #198 from RabidOwlbear/item-summary-fix
anthonyronda Aug 28, 2022
d4697e5
Issue templates (#205)
anthonyronda Aug 29, 2022
d0c28bd
Special ability notation (#206)
anthonyronda Aug 29, 2022
5621c56
Merge branch 'main' of https://github.com/RabidOwlbear/ose
RabidOwlbear Sep 1, 2022
735756f
V10 Compatibility (#208)
anthonyronda Sep 1, 2022
2edfcba
fix: one-time manual change of the system id
anthonyronda Sep 1, 2022
7f7841f
fix: temporarily marked as V10 only
anthonyronda Sep 1, 2022
a9b2e17
fix: missing sheet tabs in v10
anthonyronda Sep 1, 2022
1f26d59
Merge pull request #213 from anthonyronda/fix/missing-tabs-v10
anthonyronda Sep 1, 2022
185c009
Fix/container bugs v10 (#216)
anthonyronda Sep 1, 2022
b62f897
Fix languages, dungeon skills, and rollable items (abilities, weapons…
anthonyronda Sep 6, 2022
d586349
New Crowdin updates (#223)
anthonyronda Sep 6, 2022
03c7c50
fix: item summaries and show item to chat
anthonyronda Sep 6, 2022
555bdd9
Merge pull request #225 from anthonyronda/fix/item-summary-show-descr…
anthonyronda Sep 6, 2022
3b40987
Merge pull request #203 from hogwrassler/test-branch
anthonyronda Sep 7, 2022
dff4f6b
docs: update README.md [skip ci]
allcontributors[bot] Sep 7, 2022
be53c1b
docs: update .all-contributorsrc [skip ci]
allcontributors[bot] Sep 7, 2022
df081e1
Merge pull request #229 from vttred/all-contributors/add-hogwrassler
anthonyronda Sep 7, 2022
048977e
chore: migrate to "ose-dev" package name
anthonyronda Sep 9, 2022
67accc5
Merge pull request #230 from anthonyronda/OSEF-6-migrate-to-dev-ose-p…
anthonyronda Sep 9, 2022
aba2330
docs: CONTRIBUTING file has new symlink info
anthonyronda Sep 14, 2022
ec56f0a
docs: minor typo editing
anthonyronda Sep 14, 2022
ab03b64
docs: additional typo edits
anthonyronda Sep 14, 2022
891888b
Merge branch 'main' of https://github.com/RabidOwlbear/ose
RabidOwlbear Sep 15, 2022
529cadb
fix
RabidOwlbear Sep 18, 2022
ba6fcdb
.
RabidOwlbear Sep 18, 2022
1ea0073
fixed containers
RabidOwlbear Sep 18, 2022
4ed99db
container fix
RabidOwlbear Sep 18, 2022
9e4ed25
Merge pull request #232 from RabidOwlbear/party-sheet
RabidOwlbear Sep 18, 2022
2fe96d5
Revert "Party sheet"
RabidOwlbear Sep 18, 2022
415dfb6
Merge pull request #233 from vttred/revert-232-party-sheet
RabidOwlbear Sep 18, 2022
3b78fc4
utils: completed munging scripts
anthonyronda Sep 20, 2022
863178f
docs: documented munge script step in CONTRIBUTING
anthonyronda Sep 20, 2022
71bdc10
fix: end of file newlines required
anthonyronda Sep 20, 2022
9f1b6b6
fix: filter script path
anthonyronda Sep 20, 2022
80c013b
Merge pull request #234 from anthonyronda/build/gulp-support-multiple…
anthonyronda Sep 20, 2022
2316182
party sheet/container fix
RabidOwlbear Sep 20, 2022
a3b4d3c
Merge pull request #235 from RabidOwlbear/main
anthonyronda Sep 21, 2022
c7dc7c6
Add placeholder text for empty Parties to explain how to add characters
freohr Sep 26, 2022
c9d2d47
Add a missing localization marker for dealing XP to the party
freohr Sep 26, 2022
07436a8
Merge pull request #239 from freohr/feature/add-party-placeholder
anthonyronda Sep 27, 2022
7b2e71f
item template temp fix (#236)
RabidOwlbear Sep 28, 2022
a80d217
Initial Typescript Support (#202)
maschill92 Sep 28, 2022
390b60a
Fix/build issues (#240)
anthonyronda Sep 29, 2022
eef35ae
build: remove cache
anthonyronda Sep 29, 2022
b91a64e
Merge pull request #241 from anthonyronda/fix/gh-action-failure
anthonyronda Sep 29, 2022
3a506cc
fix: Add missing "isV10" conditional to spell sheet template
wyrmisis Oct 7, 2022
81951d2
fix: Add item class to attacks/abilities
wyrmisis Oct 7, 2022
180e465
Merge pull request #243 from wyrmisis/main
anthonyronda Oct 7, 2022
ef8834a
docs: update README.md [skip ci]
allcontributors[bot] Oct 7, 2022
9d18f64
docs: update .all-contributorsrc [skip ci]
allcontributors[bot] Oct 7, 2022
a404b21
Merge pull request #245 from vttred/all-contributors/add-wyrmisis
anthonyronda Oct 7, 2022
d0293bb
Merge pull request #244 from wyrmisis/fix/242-monster-attributes-item…
anthonyronda Oct 7, 2022
5dc5bc9
feature: Delete a monster's loot table by right clicking on it
wyrmisis Oct 7, 2022
9885a03
fix: Loot tables should display on monsters
wyrmisis Oct 7, 2022
ea54170
fix: Get item sheet description to render
wyrmisis Oct 8, 2022
7ecaeec
fix: Get descriptions for abilities to render
wyrmisis Oct 8, 2022
83a0df0
fix: Get treasure under treasure on monster inventory
wyrmisis Oct 8, 2022
0395f84
Merge pull request #248 from wyrmisis/fix/231-render-item-descriptions
anthonyronda Oct 10, 2022
5cf9622
Merge pull request #247 from wyrmisis/fix/226-227-monster-treasure-ta…
anthonyronda Oct 10, 2022
35b247e
feature: E2E Tests for the Character sheet (#252)
wyrmisis Oct 12, 2022
bfc2377
Replace gulp with rollup (#253)
maschill92 Oct 13, 2022
ccd299d
docs: add maschill92 as a contributor for code (#255)
allcontributors[bot] Oct 13, 2022
f7105d1
Fix typescript warnings
maschill92 Oct 13, 2022
056b0ba
Type game.system.id as a const
maschill92 Oct 14, 2022
2eef9c5
Merge pull request #259 from maschill92/typescript-warning-fixes
maschill92 Oct 14, 2022
d39ab0b
fix: Little UX fixes around spellcasting (#256)
wyrmisis Oct 17, 2022
0cb9e02
Fix item tag display (#260)
maschill92 Oct 17, 2022
cff6feb
feat: Add a data model for the Character actor type (#257)
wyrmisis Oct 24, 2022
91199b5
build: disable postinstall scripts, enable cache
anthonyronda Oct 26, 2022
48856e2
chore: bump delay, remove unused var
anthonyronda Oct 26, 2022
b7e6847
chore: remove v9 compatibility code and data objs
anthonyronda Oct 26, 2022
fa6027b
chore: removed test logging
anthonyronda Oct 26, 2022
3beda96
fix: more references to document data obj removed
anthonyronda Oct 28, 2022
c8c6b3b
fix: lessened verbosity of _useConsumable()
anthonyronda Oct 28, 2022
ae92785
fix: removed unused rollData in _rollAttack()
anthonyronda Oct 28, 2022
b6e3652
fix: Correct default values for AC/AAC
wyrmisis Oct 29, 2022
1ca2257
feat: Add data models for items (including tag refactor)
wyrmisis Oct 29, 2022
5553172
feat: Implement new data models (as well as the new container approach)
wyrmisis Oct 29, 2022
01c7588
chore: move an export in our testing setup below our imports
wyrmisis Oct 29, 2022
52afea8
fix: item rolls not working on monsters
anthonyronda Nov 23, 2022
3e8b40e
fix: code style cleanup
anthonyronda Nov 23, 2022
e6f1b04
fix: one-use keys no-longer defined in consts
anthonyronda Nov 23, 2022
5b9c0f8
fix: removed unnecessary optional chaining on this
anthonyronda Nov 23, 2022
ee380d6
fix: implement wymisis's _resetAttacks code golf
anthonyronda Nov 23, 2022
1146ef4
fix: removed more unnecessary optional chaining
anthonyronda Nov 28, 2022
7dd3da5
fix: removed data reference to object update method
anthonyronda Nov 28, 2022
6d88d58
fix: this data.data is not a FVTT V9 API document
anthonyronda Nov 28, 2022
1289168
fix: throw an error if target can't be found
anthonyronda Nov 28, 2022
ad390c7
Updates to Item Piles' integration (#267)
Haxxer Nov 29, 2022
610c5af
fix: removed erroneous .id prop from string filter
anthonyronda Nov 30, 2022
6394ea7
chore: code style, don't push to a const array
anthonyronda Dec 1, 2022
ff8e483
fix: base aac should be 10 for no-target attacks
anthonyronda Dec 1, 2022
1cb83a9
fix: use uuid for treasure table link
anthonyronda Dec 1, 2022
f4916a1
chore: code style, no nesting ifs
anthonyronda Dec 1, 2022
f34c0cd
code style: removed extraneous use of key:val
anthonyronda Dec 1, 2022
7ac830a
fix: hit die roll adds con modifier for each level
anthonyronda Dec 1, 2022
406e8dd
Merge pull request #269 from anthonyronda/fix/hit-die-roll-adds-con-m…
anthonyronda Dec 1, 2022
cef7682
fix: Don't add a tag to a weapon if the tag would toggle a checkbox
wyrmisis Dec 6, 2022
3f90c4f
fix: Use autotags when showing an ability/spell to chat
wyrmisis Dec 6, 2022
2f23c24
docs: add badges and language chart to readme
anthonyronda Dec 8, 2022
332f9ae
docs: fix missing resource error in FHub badges
anthonyronda Dec 8, 2022
44774e4
fix: Restore big icons on weapons in inventory tab
wyrmisis Dec 8, 2022
16cbbaf
fix: Add actor.system getters to sheet context
wyrmisis Dec 9, 2022
4042309
fix: Add folder contents when dropping a folder onto the party sheet
wyrmisis Dec 9, 2022
bb8adbe
fix: Use UUID when dragging from party sheet to scene
wyrmisis Dec 9, 2022
ed6477d
Merge branch 'main' into chore-rip-out-v9-compatibility
anthonyronda Dec 10, 2022
f7dbbdd
Merge pull request #262 from anthonyronda/chore-rip-out-v9-compatibility
anthonyronda Dec 10, 2022
72f58d0
Merge branch 'main' into feature/item-data-models
wyrmisis Dec 10, 2022
8c13827
Merge pull request #273 from wyrmisis/feat/271-attack-modifiers
anthonyronda Dec 10, 2022
6c73c5e
Merge pull request #263 from wyrmisis/feature/item-data-models
anthonyronda Dec 10, 2022
d654184
Merge pull request #274 from wyrmisis/fix/party-sheet-drag-drop
anthonyronda Dec 11, 2022
5110cee
feat: Add a data model for Monster actors (#275)
wyrmisis Dec 30, 2022
e7efe93
fix: async restores treasure result text (#272)
anthonyronda Dec 30, 2022
98a5267
fix: Monster Data Model bugfixes (#279)
wyrmisis Dec 30, 2022
6d8f7ec
fix: don't reroll on round 1 if already rolled (#280)
anthonyronda Dec 31, 2022
2ae9ede
Create CNAME
anthonyronda Jan 2, 2023
afb4a47
docs: add Haxxer as a contributor for code (#281)
allcontributors[bot] Jan 3, 2023
522e244
fix(temporary): removed caching from the build ci
anthonyronda Jan 4, 2023
686ece6
Merge pull request #284 from anthonyronda/fix/remove-cache-again
anthonyronda Jan 4, 2023
fe92b96
fix: AC/AAC display fix + party overview fix (#286)
wyrmisis Jan 6, 2023
a239872
fix: Additional v1.7.x fixes (#289)
wyrmisis Jan 11, 2023
b3ff594
fix: replaced broken chart with "translated" badge
anthonyronda Jan 11, 2023
6cf617d
chore: update README to where people can find the Discord invite
anthonyronda Jan 11, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 38 additions & 1 deletion .all-contributorsrc
Original file line number Diff line number Diff line change
Expand Up @@ -85,12 +85,49 @@
"contributions": [
"translation"
]
},
{
"login": "hogwrassler",
"name": "hogwrassler",
"avatar_url": "https://avatars.githubusercontent.com/u/110945935?v=4",
"profile": "https://github.com/hogwrassler",
"contributions": [
"code"
]
},
{
"login": "wyrmisis",
"name": "Tim",
"avatar_url": "https://avatars.githubusercontent.com/u/1731267?v=4",
"profile": "http://timsnyder.codes",
"contributions": [
"code"
]
},
{
"login": "maschill92",
"name": "Michael Schilling",
"avatar_url": "https://avatars.githubusercontent.com/u/4692066?v=4",
"profile": "https://github.com/maschill92",
"contributions": [
"code"
]
},
{
"login": "Haxxer",
"name": "Adam Oresten",
"avatar_url": "https://avatars.githubusercontent.com/u/12858387?v=4",
"profile": "http://adamoresten.com",
"contributions": [
"code"
]
}
],
"contributorsPerLine": 7,
"projectName": "ose",
"projectOwner": "vttred",
"repoType": "github",
"repoHost": "https://github.com",
"skipCi": true
"skipCi": true,
"commitConvention": "angular"
}
2 changes: 1 addition & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
@@ -1 +1 @@
system.json filter=devLink
system.json filter=mungePackageID
3 changes: 0 additions & 3 deletions .gitconfig

This file was deleted.

5 changes: 5 additions & 0 deletions .gitconfig.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
; Windows users will have to use Windows filepaths
[filter "mungePackageID"]
required = true
smudge = 'sh "./scripts/smudgePackageID.sh"'
clean = 'sh "./scripts/cleanPackageID.sh"'
84 changes: 84 additions & 0 deletions .github/ISSUE_TEMPLATE/bug.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
name: Bug Report
description: File a bug report
labels: ["bug", "triage"]
assignees:
- anthonyronda
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
- type: textarea
id: what-happened
attributes:
label: What happened?
description: Give us the details of the steps taken, and the unexpected result you experienced.
placeholder: |
Reproduction steps:
1. I clicked the token.
2. The token jumped across the scene 10 spaces to the left.
validations:
required: true
- type: textarea
id: expected-behaviour
attributes:
label: What is the expected behaviour?
description: If this is a bug, what would you expect the fix to do?
placeholder: |
When I click the token, it becomes selected and stays in its current position.
- type: textarea
id: logs
attributes:
label: Relevant Errors and Warnings
description: Is there an error message or warning in the browser console when you experienced this behaviour? Right after triggering the bug, press F12 and copy anything relevant in the console window. Paste that here.
render: shell
- type: textarea
id: debug
attributes:
label: Additional Support Details
description: With your Foundry VTT game active, you may click the Game Settings tab, then click the Support button. Please copy the debug information and paste it below.
placeholder: |
Foundry Virtual Tabletop: Version 9, 9.269
Game System: ose, 1.5.1
Active Modules: 9
Performance Mode: 1

OS: Intel Mac OS X 10.15
Client: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:103.0) Gecko/20100101 Firefox/103.0
GPU: Apple M1
Max Texture Size: 8192
...
- type: dropdown
id: core-version
attributes:
label: Foundry VTT Core Version
description: Which version of Foundry VTT is installed? Skip this if you provided Additional Support Details.
options:
- V10
- V9
- 0.8.6-0.8.10
- Earlier than 0.8.6
- type: input
id: system-version
attributes:
label: Old-School Essentials Core Version
description: Which version of Old-School Essentials Foundry VTT Edition are you using? Skip this if you provided Additional Support Details.
- type: dropdown
id: browsers
attributes:
label: Please update your browser regularly. Which (updated) browsers are you seeing the problem on?
multiple: true
options:
- Firefox
- Chrome
- Safari
- Microsoft Edge
- Other
- type: checkboxes
id: code-of-conduct
attributes:
label: Code of Conduct
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/vttred/.github/blob/main/CODE_OF_CONDUCT.md)
options:
- label: I agree to follow this project's Code of Conduct
required: true
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
blank_issues_enabled: true
contact_links:
- name: User Documentation
url: https://vtt.red/ose
about: "Learn how to get started with Old-School Essentials on Foundry VTT."
- name: Old-School Essentials FVTT Edition Discord Community
url: https://discord.gg/y6RM86YgNY
about: "Ask a question in our #foundryvtt-help channel."
32 changes: 32 additions & 0 deletions .github/ISSUE_TEMPLATE/enhancement.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Enhancement Request
description: Request a new feature or improvement to the current functionality.
labels: ["enhancement"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this enhancement request!
- type: textarea
id: new-behaviour
attributes:
label: New Feature or Changed Behaviour
description: Describe your proposed enhancement in detail, and provide examples.
placeholder: |
Example: Create a new character sheet field called "Race" which automatically changes the naked AC based on the race chosen.
validations:
required: true
- type: textarea
id: explanation-of-change
attributes:
label: Why?
description: Would this improve/shorten a player's workflow? Would this be more intuitive? Explain with details and examples.
placeholder: |
Players will be able to make AC modifications without having to use Tweaks, saving them time and removing an extra field from the Tweaks menu.
- type: checkboxes
id: code-of-conduct
attributes:
label: Code of Conduct
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/vttred/.github/blob/main/CODE_OF_CONDUCT.md)
options:
- label: I agree to follow this project's Code of Conduct
required: true
9 changes: 6 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@ jobs:
- name: Checkout repository to add to workspace
uses: actions/checkout@v2

- name: Setup Node.js version 14
- name: Setup Node.js version 16
uses: actions/setup-node@v2
with:
node-version: "16"

# Caching to improve build speed
# # Caching to improve build speed
- name: Enable caching for Node.js modules
uses: actions/cache@v2
with:
Expand All @@ -29,7 +29,7 @@ jobs:

# Get dev dependencies for the package, including Gulp and Rollup
- name: Install dev dependencies
run: npm ci --cache .npm --prefer-offline
run: npm ci #--cache .npm --prefer-offline --ignore-scripts

# Create a build using Gulp build script
- name: Run Gulp build script
Expand All @@ -43,6 +43,9 @@ jobs:
with:
files: "system.json"
env:
name: ose
id: ose
title: "Old-School Essentials"
version: ${{github.event.release.tag_name}}
url: https://github.com/${{github.repository}}
manifest: https://github.com/${{github.repository}}/releases/latest/download/system.json
Expand Down
101 changes: 83 additions & 18 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
# Contributing

For a more hands-on onboarding experience before making your first contributiion to this repo, I recommend joining our [Unofficial OSE on Foundry VTT Discord server](https://discord.gg/qGrxRK2yD5).
We do our best to recognize several ways one can contribute to this project.

- Become a translation contributor from English to your native language
- Become a design contributor by researching, prototyping, and drawing new interfaces and user experiences
- Become a documentation or SRD contributor, using primarily English skills or finding mistakes in our SRD compendia
- **Become a code contributor, using basic or intermediate knowledge of JavaScript to improve how the game system functions**

This guide is focused on the very last type, becoming a code contributor.

## Developer Environment Installation

Expand All @@ -9,49 +16,107 @@ Prerequisites: Node.js (v16 is recommended), a familiarity with command Foundry
[Node installers (beginner-friendly)](https://nodejs.org/en/download/)
[Node on package managers (recommended, I use nvm)](https://nodejs.org/en/download/package-manager/#windows)

1. With Node.js installed, run the command `npm i npm -g && npm -v` in your preferred command line interface to ensure npm 7 or greater is installed.
1. With Node.js installed, run the command `npm i npm -g && npm -v` in your preferred command line interface to ensure **npm 7 or greater** is installed.
1. (Star) and fork this repo.
1. Clone your fork to a directory suitable for containing your code projects, such as `/yourusername/Github/`. It will create the `ose` directory. In the command line, your command should look like `git clone git@github.com:yourusername/ose.git`.
1. Open `ose` in an IDE and/or your Terminal and install dependencies. In the command line, `cd ose && npm i`.
1. Create a `foundryconfig.json` file in the `ose` directory containing a single
1. Copy the `foundryconfig.json.example` file to your repo's root directory, and rename it `foundryconfig.json`

`/foundryconfig.json`
`/foundryconfig.json`

```json
{
"dataPath": "path/to/FoundryVTT REPLACE THIS STRING",
"symLinkName": "ose"
}
```
```json
{
"dataPath": [
"path/to/FoundryVTT-userdata REPLACE THIS STRING",
"path/to/FoundryVTT-userdata-if-you-have-multiple OTHERWISE USE ONLY ONE STRING"
],
"symlinkName": "ose-dev"
}
```

1. In your command line, run `npm run link`. A new system should now appear in your systems directory but it doesn't yet run any code.
1. In your command line, run `npm run build` (build once) or `npm run build:watch` (build whenever a change is saved). You now have a working copy of OSE.
1. In your command line, run `npm run link`. A new system should now appear in your systems directory (or directories) but it doesn't yet run any code.
1. In your command line, run `npm run build` (build once) or `npm run build:watch` (build continuously, whenever a change is saved). You now have a working copy of OSE's developer build. You should be able to install releases of `ose` alongside this build.

### Addendum: Git for Beginners

Many contributors to Unofficial OSE on Foundry VTT are inexperienced with git. GitHub provides their [quickstart tutorial](https://docs.github.com/en/get-started/quickstart/hello-world) which we recommend as a first step toward becoming an OSE Contributor.

Here are some next steps to get started on your first code or translation contribution to Unofficial OSE.
Here are some next steps to get started on your first code contribution.

1. Create a new branch for your patch. In your command line, `git checkout -b a-branchname-of-your-choosing`
1. Make any code contributions you'd like, making sure to confirm the behavior you want in Foundry VTT and testing for edge cases if relevant.
1. When you are satisfied, push the branch to your fork. In your command link, `git push origin a-branchname-of-your-choosing`.
1. Make any code contributions you'd like, making sure to confirm it performs the behavior you want after trying it in Foundry VTT, and testing for edge cases if relevant.
1. When you are satisfied, push the branch to your GitHub fork. In your command link, `git push origin a-branchname-of-your-choosing`.
1. Follow GitHub's instructions for creating a pull request from their website.

## Troubleshooting

**Errors from `node gyp` when running `npm i` on Windows.**
To ask for a hand to help onboard you before making your first contribution to this repo, I recommend joining our [Unofficial OSE on Foundry VTT Discord server](https://discord.gg/qGrxRK2yD5).

### Errors from `node gyp` when running `npm i` on Windows.

[Follow these directions](https://github.com/nodejs/node-gyp#on-windows), then run `npm i` again. If you still have issues after trying to follow Microsoft's Node.js guidelines, chat with us on Discord.

**Error: Cannot find module 'rollup'**
### Error: `Operation not permitted` when trying to run `npm run link`

On Windows you may have to run your shell/command prompt in administrator mode to create a symlink. This should be rare in Linux, but `sudo npm run link` or changing the owner of the Foundry user data directory to the current user should make this command run without errors.

### Error: Cannot find module 'rollup'

You may have skipped `npm i npm -g && npm -v`. If it shows npm version <7.0, then you may have an older version of Node or older operating system and need to upgrade.

**Error: Cannot find module (any module except rollup)**
### Error: Cannot find module (any module except rollup)

You will need to `npm i` occasionally as we put out updates to the build process. We try to communicate whenever there's a change in devDependencies on Discord and in release notes.

## Repeat Contributors

Repeat contributors may ask via Discord direct message (@corporat#1282) or email (ose@vtt.red) to be added to a list of people who are interested in referrals for contract work.

## Addendum: Multiple Builds of OSE in the same Foundry VTT installation

The maintainer of this repository has three versions of OSE installed in any given version of Foundry VTT. And 2 or 3 versions of Foundry VTT installed at any given time. Their home directory looks something like this.

```console
~/
mygithubusername/
ose/
vttred/
ose/
fvtt/
v9/
v9-userdata/Data/
systems/
ose/
ose-dev/
ose-test/
v10/
v10-userdata/Data/
systems/
ose/
ose-dev/
ose-test/
```

This is achieved with a `foundryconfig.json` files in each local version of the github repo on the maintainer's computer. Because of an npm script, each repo can make two symlinks, one for Foundry V9 and one for Foundry V10.

`~/mygithubusername/ose/foundryconfig.json`

```json
{
"dataPath": ["~/fvtt/v9-userdata", "~/fvtt/v10-userdata"],
"symlinkName": "ose-dev"
}
```

`~/vttred/ose/foundryconfig.json`

```json
{
"dataPath": ["~/fvtt/v9-userdata", "~/fvtt/v10-userdata"],
"symlinkName": "ose-test"
}
```

If you want to have two local versions of your repository, there will be an additional build step. Run `git config --local include.path ../.gitconfig` in each of your repositories' root directories. Then make sure they have different symlinkNames in the `foundryconfig.json` files for each repo. Run `npm run link` in each repository.

Note: you will have to provide your own .gitconfig for Windows
Loading