• Git commit messages

    Each commit message consists of a header, a body, and a footer.

    <type>(<scope>): <subject>
    <BLANK LINE>
    <body>
    <BLANK LINE>
    <footer>

    Header

    The header is mandatory and the scope is optional.

    Type

    Must be one of the following:

    • feat: introduces a new feature to the codebase
    • fix: patches a bug in your codebase
    • refactor: improves the code without changing functionality
    • BREAKING CHANGE: major version

    Additional types:

    • build: a change that affects the build system or external dependencies
    • chore: same as build but chore is preferred, also any change that doesn’t fit in any other type
    • ci: changes to the CI configuration
    • docs: changes to the documentation
    • style: white-space, formatting, semi-colons, etc.
    • perf: performance improvements
    • test: adding or fixing

    Scope

    The scope can be empty. Scope can be any of these:

    • category, part or section of the codebase we are affecting, e.g.: api, client, tooling
    • a specific package, library or dependency,e.g.: moment.js, requests
    • a ticket number in case the current commit doesn’t close it, e.g.: chore(123): update dependencies

    Subject

    Short (50 chars or less) summary of the change:

    • use the imperative, present tense: “change” not “changed”
    • don’t capitalize the first letter
    • no dot (.) at the end

    Footer

    The footer should contain a closing reference to an issue if any and breaking changes.

    Closes #123, #345
    
    BREAKING CHANGE:
    
    IE6 not supported anymore.

    Semantic versioning

    Conventional commits are designed to work with Semantic versioning.

    • feat: minor version
    • fix: patch version
    • BREAKING CHANGE: major version

    Examples

    Add a new feature without breaking existing functionality. This bumps a minor version, e.g.: 1.2.0 to 1.3.0.

    feat: add search for transactions
    
    Add new React component for searching transactions with autocompletion.
    
    Include tests.
    
    Closes #123, #234

    Fix a bug. This bumps a patch version, e.g.: 1.3.0 to 1.3.1.

    bug(api): add correct status code for existing resources
    
    We return `409` when trying to create a user with an existing email.
    
    Closes #453

    Add new feature that breaks existing functionality. This bumps a major version, e.g.: 1.3.1 to 2.0.0.

    feat!: add bank sync 
    
    This replace CSV import and use Plaid to connect to people's banks.
    
    Closes #423, #424, #425
    
    BREAKING CHANGE:
    
    People won't be able to import transactions using CSV. Only Bank 
    Sync is available.

    Resources

  • Deploy Gitea to Dokku

    Requirements

    Steps

    Create an application.

    dokku apps:create gitea

    Expose the ports for http and ssh. By default, gitea exposes 3000 for http and 22 for ssh. We want our application to listen externally on port 80, but we need to map our ssh to a different port because 22 is used by the host.

    We will rely on the docker-options plugin to expose ssh properly.

    # expose container `http` port 3000 on host `http` port 80
    dokku proxy:ports-add gitea http:80:3000
    
    # expose the container port 22 on host port 2222
    dokku docker-options:add git deploy -p 2221:22

    Add a rule in your firewall to allow connections on 2221.

    sudo ufw allow 2221/tcp

    Create a storage directory for the Gitea files.

    sudo mkdir /var/lib/dokku/data/storage/gitea_data
    sudo chown user:user /var/lib/dokku/data/storage/gitea_data
    dokku storage:mount gitea /var/lib/dokku/data/storage/gitea_data:/data

    Pull and deploy the Docker image from dockerhub.

    docker pull gitea/gitea:latest
    docker tag gitea/gitea:latest dokku/gitea:latest
    dokku git:from-image gitea dokku/gitea:latest

    Add a Let’s encrypt TLS certificate with the Dokku letsencrypt plugin.

    dokku letsencrypt:set git email <your-email>
    dokku letsencrypt:enable git

    Now, go visit gitea.<yourdomain>, e.g., gitea.yourdomain.com.

    Configuration

    Most of the options are autopopulated, use the following settings as needed.

    • Get the database information from dokku postgres:info gitea.
    • Set the SSH port as 2221. Gitea will use this to format your projects’ SSH connection info in the UI.

    Resources

    No artificial intelligence was used in the making of this post.