CodeProject

Semantic Versioning, Conventional Commits and Release Pull Requests for .NET with Google's Release Please Project

Release Please is an excellent library from Google that simplifies the management of releases for projects. However, it is not immediately apparent from the Release Please documentation that you can very easily get this working for your .NET projects. In this article we’ll take a quick tour of how to configure release please for a .NET project and how it can save you time and effort. What is Release Please? In a nutshell, Release Please is a tool that can be run as a CLI or a GitHub action, that looks over the commit history for a repository.
Read more

TODO

installation and setup GOROOT src bin Source Code Structure Modules TODO definition of a module Packages TODO definition of a packge The go.mod File module github.com/dwmker/jac go 1.20 Protobufs Note that if using: protoc --go_out=. --go-grpc_out=. --go-grpc_opt=paths=source_relative proto/*.proto You will spit out a folder tree like github.com/dwmkerr/whatever, to omit this tree and use relative paths, include the options below: protoc --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative proto/*.proto " Press ? for help
Read more

A simple Makefile 'help' command

In this article I’m going to show you how to add a make help command to your makefiles that quickly and easily shows simple documentation for your commands: To add the help command to your makefile, add a recipe like so: .PHONY: help help: # Show help for each of the Makefile recipes. @grep -E '^[a-zA-Z0-9 -]+:.*#' Makefile | sort | while read -r l; do printf "\033[1;32m$$(echo $$l | cut -f 1 -d':')\033[00m:$$(echo $$l | cut -f 2- -d'#')\n"; done Now just make sure that each of your recipes has a comment that follows the recipe name, which will be used as its documentation.
Read more

Building Least Privilege Policies with the AWS Policy Advisor - and a Demo with the Serverless Application Framework

In this article I’m going to give a brief overview of some techniques to build ’least privilege’ roles in AWS. This assumes a basic knowledge of AWS and Identity and Access Management. It uses the (at time of writing) newly announced features in the AWS IAM Access Analyser I’ll be demoing the techniques using a project built on The Serverless Framework but you don’t need to know anything about how this framework works to follow the article - it is just used to demonstrate the concepts.
Read more

Unit Testing the Windows Registry

I’ve been updating some of my .NET projects recently (read more about this in Modernising .NET projects for .NET Core and beyond!). In one of these projects I have to work with the Windows Registry - which can be quite painful, particularly if you want to make your code unit test friendly. In this article I’m going to introduce a simple approach to make testing the registry a little easier. If you are just interested in the code and not so much the story behind it, you can skip straight to the project at github.
Read more

Modernising .NET projects for .NET Core and beyond!

The world of .NET is going through a transformation. The .NET Framework is reaching end of life, .NET Core is an increasingly feature rich and robust platform to develop solutions which target Linux, MacOS, embedded devices, containers and more. There’s also the .NET Standard. But what does this mean for .NET Framework projects? In this article I’ll describe how to modernise your .NET Framework projects for .NET Core, the .NET Standard and .
Read more

Observations, tips and tricks for the CKA certification

In this article I’ll share some observations, tips and tricks for the Linux Foundation’s “Certified Kubernetes Administrator certification and exam. I’ve been operating Kubernetes in multiple environments for a few years now. I thought this would be an easy certification to get, but I was surprised by how hard it was! I took this exam without doing any formal training, I mostly focused on the areas of the curriculum which I knew I was a little weak at.
Read more

Supercharge your Java Projects with Conventional Commits, Semantic Versioning and Semantic Releases

In this article we’ll look at a few simple techniques which can really supercharge your Java project and make them much easier to work with! Semantic Versioning Why Does This Matter? The Semantic Versioning Specification Using Semantic Versions The Challenge of Semantic Versions Conventional Commits Time for Magic Enforcing Conventional Commits with Git Hooks How the Hook Works Creating the Initial Release Go Forth And DevOps The Gradle Version That’s It tl;dr If you know the concepts, then just jump straight to my fork of standard-version at github.
Read more

Effective Shell for Beginners

I have rebuilt my “Effective Shell” series as an online book - it’s available now on: https://effective-shell.com The whole site is built from a GitHub repo at github.com/dwmkerr/effective-shell. It is open for contributions, changes, issues and suggestions. I’ve also added a comment section to each page to get input. To keep the material as accessible as possible, I have added a new section for beginners, to help anyone who has not used a shell before.
Read more

Effective Shell Part 7: The Subtleties of Shell Commands

In this chapter, we’ll take a look at the various different types of shell commands that exist and how this can affect your work. By the end of this chapter, you might even be able to make sense of the horrifying and perfectly syntactically valid code below: which $(where $(what $(whence $(whereis who)))) Part 1: Navigating the Command Line Part 2: Become a Clipboard Gymnast Part 3: Getting Help Part 4: Moving Around Part 5: Interlude - Understanding the Shell Part 6: Everything You Don’t Need to Know About Job Control Part 7: The Subtleties of Shell Commands What Are Commands?
Read more