You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Update meta documentation and build scripts (#398)
This pull request aims to reformat the changelog, relocate both
`CONTRIBUTING.md` and `CHANGELOG.md` to the solution root folder, and
separate out the custom build commands into its own batch script. This
is to help the CMake build pipeline.
This pull request also updates the version release checklist to include
Dn-help updating.
This pull request has a corresponding pull request in
Dn-Programming-Core-Management/Dn-help#15, please merge that first.
---
Changes:
- Reformat change log to not use bulleted headers (@Gumball2415#398)
- Move `CONTRIBUTING.md` and `CHANGELOG` to root folder (@Gumball2415#398)
- Refactor custom build commands in `.vcxproj`s (@Gumball2415#398)
- Update CMake build scripts (@Gumball2415#398)
- Update CMake source list in `exe.cmake` (@Gumball2415#398)
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+48-38Lines changed: 48 additions & 38 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,41 +2,7 @@
2
2
3
3
Welcome! Thank you for considering to contribute to Dn-FamiTracker. We really need all the help we can get, since there aren't many people who help maintain FamiTracker and its forks. The following serves as a guide to those who want to get started with contributing.
4
4
5
-
## Code Guidelines and Formatting
6
-
7
-
- The code mostly follows Unix style (LF) line endings and TAB indentation format.
8
-
- Remove trailing whitespace whenever you edit nearby lines.
9
-
- There is not much documentation regarding the FamiTracker source code, so you might need to do some code reading first before you implement or modify a component.
10
-
- Document Dn-FamiTracker code behavior as much as possible whenever you are learning about them, this may be useful to other contributors.
11
-
- FamiTracker (and most of its forks) is an MFC application with project files made in Visual Studio. Dn-FamiTracker supports being built by Visual Studio and CMake, so if you have implemented a change, be sure to update the CMake files as required.
12
-
- If implementing a new feature that affects tracker behavior (such as effects, UI), please update documentation in Dn-help and other areas of the tracker.
13
-
- If implementing a new feature that affects file formats (such as envelopes, new data format storage), ***please increment the respective file block version***.
14
-
- if this necessitates a new file block, please increment the module file version.
15
-
16
-
## Git guidelines
17
-
18
-
- Write pull requests that passes CI builds and tests.
19
-
- Make sure to adhere to the [pull request template](Dn-FamiTracker/docs/pull_request_template.md) message guidelines.
20
-
- Base your pull request on the `main` branch.
21
-
- If a merge conflict happens due to not being updated in a long time, resolve merge conflicts and rebase your pull request to the latest compatible version of the `main` branch.
22
-
- Be sure to update [Dn-help](https://github.com/Dn-Programming-Core-Management/Dn-help) on your pull request as needed.
23
-
- Create a corresponding pull request on Dn-help that links to your main pull request.
24
-
- Then once the PR in Dn-help is merged, update the submodule to point to the main branch
25
-
26
-
### For Dn-FT maintainers:
27
-
28
-
-***Do not push directly to the `main` branch***. Instead, push your changes to a branch first before writing a pull request.
29
-
- These branches are designated to be reoccurring may be used for the following:
30
-
- `app-emu-module-nsf_driver-dev`
31
-
- This branch is for modifying the application itself, such as the NSF driver, the module format, loading and saving code, emulator core, audio drivers, etc.
32
-
- `docs-license-ver-meta-dev`
33
-
- This branch is for meta related development, such as documentation, updating icons and logos, updating version info and license year text, etc.
34
-
- `ci-dev`
35
-
- This branch is for continuous integration development, such as GitHub Actions and AppVeyor.
36
-
- You will most likely force push this branch to hell and back, so be sure to do it on your own fork repo.
37
-
- Other branches may be made for more niche/specific modifications and fixes.
38
-
- If your pull request touches two or more of these categories, it's fine but please keep it minimal.
39
-
- Otherwise, create a new branch.
5
+
---
40
6
41
7
## Dependencies and Building
42
8
@@ -52,7 +18,7 @@ To edit and/or build the source, you may use Visual Studio 2022, or alternativel
52
18
- For miscellaneous custom build scripts:
53
19
- [Python 3.10+](https://www.python.org/)
54
20
- For any IDE that supports building via CMake:
55
-
- CMake
21
+
- CMake version 3.16+
56
22
- The latest MSVC build tools
57
23
- may be installed by VS Installer or by other sources
58
24
- Windows 11 SDK (10.0.26100.0)
@@ -63,17 +29,61 @@ To edit and/or build the source, you may use Visual Studio 2022, or alternativel
63
29
- For Visual Studio 2022:
64
30
- Windows Universal CRT SDK
65
31
- The **Desktop development with C++** workload, including:
66
-
- MSVC v142 - VS 2019 C++ x64/x86 build tools (latest version)
32
+
- MSVC v143 - VS 2022 C++ x64/x86 build tools (latest version)
67
33
- C++ CMake tools for Windows
68
34
- C++ AddressSanitizer
69
35
- C++ ATL for latest v143 build tools (x86 & x64)
70
36
- C++ MFC for latest v143 build tools (x86 & x64)
71
-
- Windows 10 SDK version 2104 (10.0.20348.0)
37
+
- Windows 11 SDK (10.0.26100.0)
72
38
- Alternatively, you can install the components mentioned via the [provided .vsconfig file](../Dn-FT_VS_Dependencies.vsconfig).
73
39
40
+
---
41
+
42
+
## Code Guidelines and Formatting
43
+
44
+
- The code mostly follows Unix style (LF) line endings and TAB indentation format.
45
+
- Remove trailing whitespace whenever you edit nearby lines.
46
+
- Document Dn-FamiTracker code behavior as much as possible whenever you are learning about them, this may be useful to other contributors.
47
+
- There is not much documentation regarding the FamiTracker source code, so you might need to do some code reading first before you implement or modify a component.
48
+
- FamiTracker (and most of its forks) is an MFC application with project files made in Visual Studio. Dn-FamiTracker supports being built by Visual Studio and CMake, so if you have implemented a change, be sure to ***update the CMake files as required***.
49
+
- If implementing a new feature that affects tracker behavior (such as effects, UI), please ***update documentation*** in Dn-help and other areas of the tracker.
50
+
- If implementing a new feature that affects file formats (such as envelopes, new data format storage), ***please increment the respective file block version***.
51
+
- if this necessitates a new file block, please increment the module file version.
52
+
53
+
---
54
+
55
+
## Git guidelines
56
+
57
+
- Write pull requests that passes CI builds and tests.
58
+
- Make sure to adhere to the [pull request template](Dn-FamiTracker/docs/pull_request_template.md) message guidelines.
59
+
- Base your pull request on the `main` branch.
60
+
- If a merge conflict happens due to not being updated in a long time, resolve merge conflicts and rebase your pull request to the latest compatible version of the `main` branch.
61
+
- Be sure to update [Dn-help](https://github.com/Dn-Programming-Core-Management/Dn-help) on your pull request as needed.
62
+
- Create a corresponding pull request on Dn-help that links to your main pull request.
63
+
- Then once the PR in Dn-help is merged, update the submodule to point to the main branch
64
+
65
+
---
66
+
74
67
## Important Things to Note
75
68
76
69
- When committing changes, ***file extension case must be the same as the original file!***
77
70
- This might result in merge conflicts, because Git is case sensitive, but in Windows systems, the file system is case insensitive by default.
78
71
- Additionally, case sensitivity in Windows can be enabled through WSL, but it **must only be enabled to resolve merge conflicts regarding file extension case sensitivity**.
79
72
- If case sensitivity is left enabled, Visual Studio throws a lot of errors due to the way IntelliSense capitalizes paths internally.
73
+
74
+
---
75
+
76
+
## For D.P.C.M. maintainers
77
+
78
+
-***Do not push directly to the `main` branch***. Instead, push your changes to a branch first before writing a pull request.
79
+
- These branches are designated to be reoccurring may be used for the following:
80
+
- `app-emu-module-nsf_driver-dev`
81
+
- This branch is for modifying the application itself, such as the NSF driver, the module format, loading and saving code, emulator core, audio drivers, etc.
82
+
- `docs-license-ver-meta-dev`
83
+
- This branch is for meta related development, such as documentation, updating icons and logos, updating version info and license year text, etc.
84
+
- `ci-dev`
85
+
- This branch is for continuous integration development, such as GitHub Actions and AppVeyor.
86
+
- You will most likely force push this branch to hell and back, so be sure to do it on your own fork repo.
87
+
- Other branches may be made for more niche/specific modifications and fixes.
88
+
- If your pull request touches two or more of these categories, it's fine but please keep it minimal.
0 commit comments