Skip to content

What To Contribute?

ClementSparrow edited this page Apr 13, 2023 · 3 revisions

This is a page to orient contribution efforts toward the most needed and most easily implemented features. If you're here to contribute, thanks a lot! You may also be interested in reading the page How To Contribute?

Keep P:S in sync with vanilla PuzzleScript

The lowest-effort and highest-value type of contribution is to help keeping Pattern:Script in sync with PuzzleScript. Indeed, Pattern:Script has made many additions to PuzzleScript but is very late on keeping up with increpare's updates on PuzzleScript. The reason is that the numerous changes in P:S code make it harder to merge PS' commits, and most of the merges have to be done manually.

Very often, increpare's change do not have to be merged in P:S because they concern features that are deprecated in P:S (such as the gallery or standalone.html) or because they fix issues that do not exist in P:S due to a different way of handling things.

So, manually merging commits is usually not a lot of work in itself, but it is made more complicated by the need of keeping track of the commits that should be merged and those that need a re-implementation in a way that better fits P:S' philosophy. Indeed, I have plans for some features (notably, PS' debugger) that require a very different way of implementing them, and in this case we don't want to merge PS' commits related to these features.

So, you're invited to contribute PRs that implement in P:S a commit from PS. Please just mention the commit id in the PR so that we can keep track of what has been merged and what has not. If you're unsure whether a specific PS commit should be merged in P:S, please ask me directly! Although, if it's a simple merge, it will probably be faster to directly do the PR and see if I accept it :-) Also, try to check if a specific commit was followed later by another commit that fixed an issue introduced by the former. In this case, please submit a PR for all the related commits and eventually squash them (list all the commits concerned in the extended commit description field).

Bring features from other forks

For instances, @david-pfx listed the following features:

  • mouse controls
  • level select
  • an experimental solver
  • Runtime metadata twiddling
  • Custom font
  • Tweening
  • Transparency
  • Nosave/undo/quit/goto
  • Case sensitive

Some of these features may need work on their design before being added to P:S, in my mind, but others are already on my TODO list. In general, they need more discussion and more work to be implemented but are very valuable features. So, please do not hesitate to start working on them, but start with writing an issue so that we can discuss the design and the implementation of the feature.

Others

TODO