123 lines
6.3 KiB
Markdown
123 lines
6.3 KiB
Markdown
# How to contribute to FoxBin2Prg
|
|
|
|
## Bug report?
|
|
- Please check [issues](https://github.com/fdbozzo/foxbin2prg/issues) if the bug is reported
|
|
- If you're unable to find an open issue addressing the problem, open a new one. Be sure to include a title and clear description, as much relevant information as possible, and a code sample or an executable test case demonstrating the expected behavior that is not occurring.
|
|
- Please add your current configuration creating a config file via
|
|
```
|
|
CD 'path-to-source'
|
|
DO FOXBIN2PRG.PRG WITH '-C','FoxBin.cfg'
|
|
```
|
|
**Do not include your normal config**
|
|
|
|
### Did you write a patch that fixes a bug?
|
|
- Open a new GitHub merge request with the patch.
|
|
- Ensure the PR description clearly describes the problem and solution.
|
|
- Include the relevant version number if applicable.
|
|
- See [New version](#new-version) for additional tasks
|
|
|
|
## Coding conventions
|
|
Start reading our code and you'll get the hang of it. We optimize for readability:
|
|
|
|
- Beautification is done like:
|
|
- Keywords: Mixed case
|
|
- Symbols: First occurence
|
|
- Indentation Tabs, 1
|
|
- Indent anything then Comments
|
|
- Please do not run BeautifyX with mDots insertion against the code.
|
|
- We ALWAYS put spaces after list items and method parameters (`[1, 2, 3]`, not `[1,2,3]`), around operators (`x = 1`, not `x=1`).
|
|
- This is open source software. Consider the people who will read your code, and make it look nice for them. It's sort of like driving a car: Perhaps you love doing donuts when you're alone, but with passengers the goal is to make the ride as smooth as possible.
|
|
- Please kindly add comments where and what you change
|
|
|
|
## New version
|
|
Please note, there are some tasks to set up a new version.
|
|
Stuff is a bit scattered, so this is where to look up.
|
|
- New fork
|
|
1. Please create a fork at github
|
|
- See this [guide](https://www.dataschool.io/how-to-contribute-on-github/) for setting up and using a fork
|
|
2. clone your fork to your computer
|
|
- Existing fork
|
|
1. If already forked, gather the recent state of the master to your fork (for example: "Sync fork" in github on top of your repository)
|
|
2. Pull the recent state,
|
|
3. or get most recent version otherwise.
|
|
**Note: You must run FoxBin2Prg against itself to create the binaries and exes:**
|
|
```
|
|
CD "path_to_FoxBin2Prg"
|
|
*This uses a special configuration
|
|
DO ReCreate_FoxBin2Prg.prg
|
|
```
|
|
**Note: Do not run FoxBin2Prg.prg directly.**
|
|
3. Do your changes
|
|
4. On top of _FoxBin2Prg.prg_ there are two version numbers:
|
|
```
|
|
#DEFINE DN_FB2PRG_VERSION 1.21
|
|
#DEFINE DC_FB2PRG_VERSION_REAL '1.21.01'
|
|
```
|
|
5. Please set the **minor** part of _DC_FB2PRG_VERSION_REAL_ to a new number.
|
|
**Do not** alter the **1.21** part. This is written to the text files.
|
|
Alteration might force that the files must be newly commited, what is not everybodies taste.
|
|
The value might be altered, if the file structure of the text files is changed.
|
|
6. Add a meaningful description of the change in the changes list on top of _FoxBin2Prg.prg_.
|
|
The most recent entries for changes in the middle of this section around _* </HISTORIAL DE CAMBIOS Y NOTAS IMPORTANTES>_,
|
|
The most recent bugs are listed above _* </TESTEO Y REPORTE DE BUGS (AGRADECIMIENTOS)>_
|
|
7. Alter version in _README.md_
|
|
8. Add a description to _docs\ChangeLog.md_
|
|
9. If a change to the config files is made, please add the description to the various properties (multi lang)
|
|
- _C_FOXBIN2PRG_SYNTAX_INFO_EXAMPLE_LOC_cfg:_ for general settings
|
|
- _C_FOXBIN2PRG_SYNTAX_INFO_EXAMPLE_LOC_tab_cfg:_ for settings per table
|
|
10. If a change to the parameters is made, change _C_FOXBIN2PRG_SYNTAX_INFO_EXAMPLE_LOC_ properties.
|
|
11. For changed functionality, add descriptive text on the appropriate _.md_ file in _docs_ folder.
|
|
12. Please alter the footer of \*.md files touched to recent date.
|
|
13. Alter the version number for the EXE to the version used above.
|
|
14. Create the text representation of the binary sources running like
|
|
```
|
|
CD "path_to_FoxBin2Prg"
|
|
*This uses a special configuration
|
|
DO Create_FoxBin2Prg.prg
|
|
```
|
|
**Note: Do not run FoxBin2Prg.prg directly.**
|
|
15. **The following steps are not neccesary, if you use *VPXDeployment* to create a new version that is applicable for Thor use.**
|
|
16. Compile to EXE **in VFP9 SP2**
|
|
17. Change Thor ([see below](#thor-conventions))
|
|
18. commit
|
|
19. push to your fork
|
|
20. Create a pull request
|
|
|
|
## Thor conventions
|
|
This project is part of [VFPX](https://vfpx.github.io/) and published via [Thor](https://github.com/VFPX/Thor).
|
|
Some steps must be done to create the information for Thor
|
|
### Using VFPXDeployment
|
|
The standard procedure to create the Thor files is runing VFPXDeployment via Thor.
|
|
<comment>1. If you add or remove files to FoxBin2Prg, that you need in the release:
|
|
- alter *BuildProcess/installedfiles.txt*, see [here](https://github.com/VFPX/VFPXDeployment/blob/main/docs/Documentation.md#installedfilestxt)
|
|
- open the *Helper/Clean_ThorFolder.prg* file
|
|
- navigate to *Get_CompareFiles procedure*
|
|
- alter the TEXT .. ENDTEXT section to remove all files deleted and add new files, check the block for examples.
|
|
- There is a programm *Helper/GetRevisions.prg* to create the list, but this need to run VFPXDeployment one time to create the INSTALLEDFILES directory before.</comment>
|
|
2. Run VFPXDeployment. It will set version number to EXE, compile, set several documentation and create the files for Thor.
|
|
3. commit
|
|
4. push to your fork
|
|
5. create a pull request
|
|
|
|
### Without VFPXDeployment
|
|
If you do not use VFPXDeployment
|
|
There are some considerations to make to add a new version to Thor.
|
|
Please check [Supporting Thor Updater](https://vfpx.github.io/thorupdate/)
|
|
In special:
|
|
- Update _Project.txt_, in special the version number
|
|
<comment>- update the *Helper/Clean_ThorFolder.prg* file, see above
|
|
- add files to _FoxBin2Prg.zip_, namely
|
|
- FoxBin2Prg.prg,
|
|
- FoxBin2Prg.exe,
|
|
- the config files templates
|
|
- Clean_ThorFolder.prg
|
|
- Update the version number in _FoxBin2PrgVersion.txt_
|
|
- Update the changelog in _FoxBin2PrgVersion.txt_
|
|
- The use of CreateThorUpdate.ps1 is not longer recommended.</comment>
|
|
- Right-click CreateThorUpdate.ps1 in the ThorUpdater folder and choose *Run with PowerShell*.
|
|
|
|
Thanks
|
|
|
|
----
|
|
Last changed: _2023/12/05_ 
|