Add contribution guideline

This commit is contained in:
NaitLee 2022-05-16 10:20:14 +08:00
parent 1f47d2ae57
commit fec31bd168
4 changed files with 83 additions and 8 deletions

73
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,73 @@
# Contributing
Thank you for considering this project.
Let's 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 you're interacting with the whole world. Use English.
But you may also use another if you're confident enough that someone in community could understand it & help you.
## Sharing
Let's 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, don't mention the "original" or "official" app(s).
## Translating
See [i18n.md](./i18n.i18n/i18n.md) for what to do.
You can seek for help here, to do grammar extensions & leftovers.
## Coding
1. Whether big or small, pull requests are welcome.
2. See file `TODO` for what's next. But don't limit imagination, do whatever you think is useful.
3. Keep the existing "way". Here are details:
- Think about the Unix Philosophy before doing.
- Follow coding style & naming convention.
- Consider the use cases, support Web UI and/or command-line backend
- Test the code well. Document if necessary.
- Don't forget internationalization & necessary accessibility features.
4. Finally, "rules". Just skim these, don't feel pressure as I trust you won't mistake:
- Don't leak development/test cache/junk to the repo. Please.
And never put pictures/executables/any big binary to this repo. Try uploading to an issue/discussion instead.
- Don't connect to an online service to fetch resource.
- No more 3rd-party blackbox dependencies/assets, without explaining & using its most functionality.
Consider using existing system programs, or implementing it in your own.
If that really happened, make it optional (i.e. don't fail the load just for its non-existence),
And don't push the dependency source code.
For big dependencies, if you really love it, it's suggested to fork this repo & develop in your own way.
- Don't make anti-features. Don't be someone yourself dislike most. Examples:
- You can do: simple borders & stickers, simple PostScript interpreter, another common printing protocol
- Considering previous rule, discuss first: Bar/QR Code, formula, Native (non-Web) UI
- You shouldn't do: Way too fancy UI/editor, Cloud storage, camera integration & OCR
- Never consider: Accounting, non-free service integration, advertisement injection
- Please don't 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.
5. You can take any part of this project to do something else. It's still contribution!
## Footnote
Nothing could go wrong. Trust yourself & try your best.
Let's together build a better project, and a better world.

8
TODO
View File

@ -3,17 +3,19 @@ Note: not ordered. do whatever I/you want
+ Cookbook of basic things + Cookbook of basic things
+ Write good help/manual + Write good help/manual
+ Some sort of Wiki
+ Make error notice short while let users see detailed help/manual for what-to-do + Make error notice short while let users see detailed help/manual for what-to-do
+ Even better CUPS/IPP support + Even better CUPS/IPP support
+ Even better frontend usability, more functions + Even better frontend, language-friendly text printing
+ Make a build guide for android: + Make a build guide for android:
Summary the hacks to p4a, bleak p4a recipe, p4a webview bootstrap, and AdvancedWebView Summary the hacks to p4a, bleak p4a recipe, p4a webview bootstrap, and AdvancedWebView
+ Try to implement enough without more dependencies + Try to implement enough without more dependencies
+ Plugin, for including community features
+ ... + ...
? Optimize PF2 text printing? It seems a bit slow (in algorithm). ? Optimize PF2 text printing? It seems a bit slow (in algorithm).
? Built-in PostScript? (Even if very basic) ? Built-in PostScript (Even if very basic)
? Data compression for GB03. Optional ? Data compression for GB03. Optional
? Put Android APP on F-Droid? But it needs automatic build system... ? Put Android APP on F-Droid? But it needs automatic build system...
Android guys can help this! Android guys can help this!
? ... Or put to APKPure? ? ... Or put to APKPure? But wait for good frontend before doing all of these

View File

@ -12,7 +12,7 @@ In the future, there can be other manual files.
## What to do ## What to do
In simple cases, you just make a copy of already-there language file, and modify it to your local language. In simple cases, you just make a copy of already-there language file, and modify it to your local language.
You should know what's your locale "code", for example "English (US)" is `en-US`. You can look at your browser locale configuration, or gather from the Web. You should know what's your locale "code", for example "English (US)" is `en-US`. You can look at your browser locale configuration, or gather from the Internet.
After that, add an entry in `list.json`. After that, add an entry in `list.json`.
## Naming ## Naming
@ -27,7 +27,7 @@ With parameter(s):
"there-are-0-apples-in-1-baskets": "There are {0} apples in {1} baskets" "there-are-0-apples-in-1-baskets": "There are {0} apples in {1} baskets"
``` ```
With Conditions: *(language dependent)* With Conditions: *(differs by language)*
```json ```json
"0-apples": { "0-apples": {
"single": "{0} apple", "single": "{0} apple",
@ -53,9 +53,9 @@ That doesn't mean difficulty:
- Here almost everyone could do programming. Coding grammar needs much less work -- it's what a junior programmer could do to improve his/her skill. - Here almost everyone could do programming. Coding grammar needs much less work -- it's what a junior programmer could do to improve his/her skill.
- Don't forget me! There are Issue and Discussion. - Don't forget me! There are Issue and Discussion.
- Or you actually can do code? Look at file `www/i18n-ext.js` then you could get the point. Also see `www/i18n.d.ts` for typing details. You may modify *anything*, **to be better**. - Or you actually can do code? Look at file `www/i18n-ext.js` then you could get the point. Also see `www/i18n.d.ts` for typing details. You may modify *anything* around, **to be better**.
- You can also make "example" files (like `en-US-ex.jsonc`), for testing grammar points, or showing what could be done. - You can also make "example" files (like `en-US-ex.jsonc`), for testing grammar points, or just showing what could be done.
The `jsonc` format is JSON allowing comments. At the moment please use only `//` The `jsonc` format is JSON allowing comments. At the moment please use only `//`
- Use a test file: - Use a test file:
- Load project Web Interface - Load project Web Interface

View File

@ -1 +1 @@
0.5.1 0.5.2