mirror of
https://github.com/Ranchero-Software/NetNewsWire.git
synced 2024-12-22 15:50:17 +01:00
Technotes: Swift Packages, AppDefaults not DB5
Revise additonal reference to Git submodules.
This commit is contained in:
parent
3842e1c368
commit
336f3e7a17
@ -23,9 +23,9 @@ There will also be a number of repository forks that NetNewWire developers will
|
|||||||
|
|
||||||
Each release should be tagged using [Semantic Versioning](https://semver.org/). Candidates will continue to be tagged using the current convention which denotes the difference between developer, alpha and beta releases. Additionally, we will need to use a convention to avoid tag name collisions between iOS and macOS products. macOS releases will be suffixed with "mac-" and iOS releases will be suffixed with "ios-". (See the above diagram for examples.)
|
Each release should be tagged using [Semantic Versioning](https://semver.org/). Candidates will continue to be tagged using the current convention which denotes the difference between developer, alpha and beta releases. Additionally, we will need to use a convention to avoid tag name collisions between iOS and macOS products. macOS releases will be suffixed with "mac-" and iOS releases will be suffixed with "ios-". (See the above diagram for examples.)
|
||||||
|
|
||||||
## Submodules
|
## Packages
|
||||||
|
|
||||||
NetNewsWire uses Git submodules to manage project dependencies. All the submodules are under the same project umbrella as NetNewWire and there are no third party dependencies to manage. These submodules are mostly stable at this point. For simplicity sake, all development on the submodules will continue on their repository Main branch. These submodules won’t be managed as separate projects with separate releases/tags at this time.
|
NetNewsWire uses Swift Packages to manage project dependencies. All the packages are under the same project umbrella as NetNewWire and there are no third party dependencies to manage. These packages are mostly stable at this point. For simplicity sake, all development on the packages will continue on their repository Main branch. These packages won’t be managed as separate projects with separate releases/tags at this time.
|
||||||
|
|
||||||
## Summary
|
## Summary
|
||||||
|
|
||||||
|
@ -102,7 +102,7 @@ Don’t fight the built-in frameworks and don’t try to hide them. Let’s not
|
|||||||
|
|
||||||
NetNewsWire is layered into frameworks. There’s an app level and a bunch of frameworks below that. Each framework has its own reason for being. Dependencies between frameworks should be as minimal as possible, but those dependencies do exist.
|
NetNewsWire is layered into frameworks. There’s an app level and a bunch of frameworks below that. Each framework has its own reason for being. Dependencies between frameworks should be as minimal as possible, but those dependencies do exist.
|
||||||
|
|
||||||
Some frameworks are not permitted to add dependencies, and should be treated as at the bottom of the cake: RSCore, RSWeb, RSDatabase, RSParser, RSTree, and DB5. This simplifies things for us, and makes it easier for us and other people to use these frameworks in other apps.
|
Some frameworks are not permitted to add dependencies, and should be treated as at the bottom of the cake: RSCore, RSWeb, RSDatabase, RSParser, and RSTree. This simplifies things for us, and makes it easier for us and other people to use these frameworks in other apps.
|
||||||
|
|
||||||
### User Interface
|
### User Interface
|
||||||
|
|
||||||
@ -110,7 +110,7 @@ Stick to stock elements, since this tends to eliminate bugs and future churn. Th
|
|||||||
|
|
||||||
Storyboards are preferred to xibs — except when the problem is xib-sized.
|
Storyboards are preferred to xibs — except when the problem is xib-sized.
|
||||||
|
|
||||||
Use DB5 where parameters (sizes, colors, etc.) are needed.
|
Use AppDefaults where parameters (sizes, colors, etc.) are needed.
|
||||||
|
|
||||||
Auto layout is used everywhere except in table and outline view cells, where performance is critical.
|
Auto layout is used everywhere except in table and outline view cells, where performance is critical.
|
||||||
|
|
||||||
|
@ -1,23 +0,0 @@
|
|||||||
# Git Submodules
|
|
||||||
|
|
||||||
NetNewsWire uses [Git submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules) to include shared frameworks. At this writing (June 2018) they are DB5, RSCore, RSDatabase, RSWeb, RSTree, and RSParser.
|
|
||||||
|
|
||||||
After your first checkout:
|
|
||||||
|
|
||||||
git submodule init
|
|
||||||
git submodule update
|
|
||||||
|
|
||||||
To add a submodule:
|
|
||||||
|
|
||||||
git submodule add https://github.com/username/path
|
|
||||||
|
|
||||||
(It’s unlikely you’ll need to do that. Adding a submodule is done super-rarely, if ever, and it’s Brent’s call.)
|
|
||||||
|
|
||||||
To update all submodules to their latest commits:
|
|
||||||
|
|
||||||
git submodule foreach git pull origin master
|
|
||||||
|
|
||||||
If you messed around with those projects and want to reset them to where the current project thinks
|
|
||||||
they should be, you can use the command:
|
|
||||||
|
|
||||||
git submodule foreach --recursive git reset --hard
|
|
7
Technotes/SwiftPackages.md
Normal file
7
Technotes/SwiftPackages.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# Swift Packages
|
||||||
|
|
||||||
|
NetNewsWire uses the [Swift Package Manager](https://swift.org/package-manager/) to include shared frameworks. At this writing (April 2021) they are RSCore, RSDatabase, RSWeb, and RSParser. NetNewsWire also utilizes four packages hosted within the NetNewsWire repository itself: Articles, ArticlesDatabase, Secrets, and SyncDatabase.
|
||||||
|
|
||||||
|
After your first checkout, when you open the project Xcode will automatically download the external packages and their dependencies. Until this process is complete, you will not be able to build or run NetNewsWire. On a fast internet connection this will normally only take a few seconds.
|
||||||
|
|
||||||
|
Xcode automatically keeps these packages up to date on subsequent occasions you open the Xcode project. Unless you are actively working on changes to the packages at source, this should be all that is necessary. However, if you do need to force an update you co do this in Xcode by selecting File > Swift Packages > Update to Latest Package Versions.
|
Loading…
Reference in New Issue
Block a user