This post assumes you’ve read my previous post on this project. It’s going to be a very short status report.
In aforementioned post I’ve tried to break through my analysis paralysis by listing all the things I had to think about (it helped!). Let me re-iterate, update, and complete the list to once again gather my thoughts:
- ✔ Project and Namespace structure. KISS, so I went with just a single project (plus one for tests) for now.
- ✔ Folder structure. following the lead of popular C# projects, only needing some files in the root and a src folder for the projects.
- ✔ Initializing git. this was actually the biggest mental blockade. I just bursted through: screw TFS history, screw being “optimal”, and just move. I copy-pasted all code, cleaned everything carefully, and initialized the git repo with an already decently sized project.
- ✔ License. MIT.
- ✔ GitHub setup. Let’s start simple. Project created under our organization’s GitHub account. Pushing straight there for now, using my own personal profile. Will think about working with forks and pull requests later.
- NuGet packaging. Haven’t started this yet.
- Re-including the open sourced bits in my closed source solution. Have postponed optimizing this. The not-so-optimal solution for now is that the projects are gone from TFS, and there’s a “lib” folder instead with compiled DLLs from the open source project.
- ✔ Choosing a name. Chosen, but not ready to disclose yet, even though it’s very easy to sherlock this bit.
- .NET Core. We’ll cross that bridge when we get there.
- ✔ What am I forgetting? Looking at some of the “top” C# GitHub projects (Restsharp, NodaTime, dapper-dot-net, AutoMapper) was extremely helpful. Note to self: in-depth code reviews of those projects will be extremely educational.
- ✔ Minimum quality. I actually chose to make this project an exercise in being as “clean” as possible (within -though close to the edge of- reason). But one bullet at a time, so e.g. crafting a great readme is a sub-exercise left for later.
- Early feedback. Still on my list, but want to get to some kind of “alpha” stage before I send out review requests.
- Logo. Was a great excuse to get started with the recently released GitHub Projects feature.
- ✔ XML Documentation. Probably way over the top, but a nice personal exercise, so worth it after all.
- CI. Have not started with this yet, but know I have to at some point.
- GitHub Wiki. Probably way over the top, but would be a nice personal exercise to create one.
- Domain name. Not sure how that plays together with the license, the fact that the repo was initialized under my organization’s account, or any trademark stuff. Will have to figure that out some time soon.
- .NET Framework Versions. Related to the .NET Core bullet I guess, but slightly more important. I found that the popular repo’s I looked at for guidance have some kind of setup with duplicated projects several times over, not sure how that works. For now I’ll have to stick with a (unfortunately slightly older) version, 4.5.1, because that is the highest version I can use in the project that is dog-food-testing the project.
Okay, now I can stop that hurricane of thoughts, and get back to this pet project, and tick some more things off the list!