Cat-Printer/CONTRIBUTING.md
NaitLee 70cdd84359 Write Android build guide; fixed:
error when LANG=None
initial config have incorrect strength/energy
adjustments to docs and scripts
2022-09-12 02:20:08 +08:00

3.8 KiB
Raw Permalink Blame History

Contributing

Thank you for looking into this project.

Lets keep short & be positive:

Communication

  1. Use Issue for a potential bug and Discussion for feature request.
    But do whichever you feel better. This is just a hint.

  2. Consider youre interacting with the world. Use English.
    But you may also use another if youre confident enough that someone in community could understand it & help you.

Sharing

Lets just call it “sharing”. You can of course share your experience of this project with your friends, online or offline.

This is also one step toward Software Freedom.

But note that, if necessary, disclaim that you have no relationship with any of the printer vendors. Neither the author(s) here.

Also for avoiding potential hassle, dont mention the “original” or “official” app(s).

Translating

See i18n.md for what to do.

As a special note, try to correctly use marks & symbols:

  • Use “”‘’ in place of "', except when in a terminal
  • Localize marks right, e.g. “” in English shall correspond to „“ in German or »« in French, etc.
  • Keep spaces consistent, e.g. “” will be rendered full-width in CJK font, so leave no space around them in CJK context

Hint: a Keyboard Layout other than default maybe helpful, especially those with AltGr/Level 3 Shift keys.

You can seek for help here, to do grammar extensions & leftovers.

Coding

  1. Any contribution welcome.

  2. See file TODO for whats next. But dont limit imagination, do whatever you think is useful.

  3. Keep the existing “way”. Here are details:

  • Think about the Unix Philosophy before doing. Try to suck less.
  • Follow coding style & naming convention.
  • Think about the use cases: Web UI and/or command-line backend, average and/or advanced users
  • Test the code well. Document if necessary.
  • Dont forget internationalization & necessary accessibility features.
  1. Finally, “rules”. Just skim these, dont feel pressure as I trust you wont mistake:
  • Dont leak development/test cache/junk to the repo. Please.
    And never put pictures/executable/any big binary to this repo. Try uploading in an issue/discussion instead.
  • No more 3rd-party blackbox dependencies/assets, without explaining & using its most functionality.
    Consider using existing system programs, or implementing enough from scratch.
    If that really happened, make it optional (i.e. dont fail the load just for its non-existence),
    And dont push the dependency source code.
    For big dependencies, if you really love it, its suggested to fork this repo & develop in your own way.
  • Dont connect to an online service to fetch resource.
    If necessary, ask the user first. Again, such functionality shall be elsewhere.
  • Dont make anti-features. Dont be someone yourself dislike most.
    Examples:
    • You can do: simple borders & stickers, scribbling, simple PostScript interpreter, another common printing protocol
    • Considering previous rule, discuss first: Bar/QR Code, formula, Native (non-Web) UI
    • You shouldnt do: Way too fancy UI/editor, Cloud storage, camera integration & OCR
    • Never consider: online account, non-free service integration, analysis/telemetry
  • Please dont violate the license (GNU General Public License version 3)
    Modification to existing files are released under its existing license,
    mostly GPL3 or CC0, according to statement in readme.
  • If you want to preserve your copyright & use other license, create new file(s) for your work.
    But, never release your code under any non-free license.
  1. You can take any part of this project to do something else. Its also contribution! Let the ideas spread!

Footnote

Nothing could go wrong. Trust yourself & try your best.

Lets together build it better. Thank you.