Skip to content

Commit

Permalink
Add CI for releases, set a versioning scheme for the proto (#4)
Browse files Browse the repository at this point in the history
  • Loading branch information
Ostrzyciel authored Jan 7, 2023
1 parent 0288f04 commit 03284b7
Show file tree
Hide file tree
Showing 5 changed files with 62 additions and 4 deletions.
22 changes: 22 additions & 0 deletions .github/workflows/pre-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: "pre-release"

on:
push:
branches:
- main

jobs:
pre-release:
name: "Pre-release"
runs-on: "ubuntu-latest"
steps:
- name: Checkout repository
uses: actions/checkout@v2

- uses: "marvinpinto/[email protected]"
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
automatic_release_tag: "dev"
prerelease: true
title: "Development build"
files: '*.proto'
20 changes: 20 additions & 0 deletions .github/workflows/tagged-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: "tagged-release"

on:
push:
tags:
- "v*"

jobs:
pre-release:
name: "Tagged release"
runs-on: "ubuntu-latest"
steps:
- name: Checkout repository
uses: actions/checkout@v2

- uses: "marvinpinto/[email protected]"
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
prerelease: false
files: '*.proto'
18 changes: 17 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,20 @@ Protocol Buffers and gRPC specifications for the Jelly protocol.
- `grpc.proto` – Jelly's gRPC protocol service specifications.

## Usage
The protocol is not stable yet and will change. Expect a first stable release in Q1 2023.
The protocol is not stable yet and will change. Expect a first stable release in Q1 2023.

## Versioning
This protocol follows the [Semantic Versioning 2.0 scheme](https://semver.org/). The current major version is 1, and after it stabilizes, backward compatibility with it will be kept in future 1.x.y versions.

### Releases
The `dev` release tag corresponds to the main branch in the repository and is updated automatically.

Tagged (versioned) releases are created manually. To create a new tagged release (example for version 1.2.3):
```sh
git checkout main
git pull
git tag v1.2.3
git push origin v1.2.3
```

The rest (packaging and release creation) will be handled automatically by the CI.
2 changes: 1 addition & 1 deletion grpc.proto
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
syntax = "proto3";
package eu.ostrzyciel.jelly.core.proto;
package eu.ostrzyciel.jelly.core.proto.v1;

// gRPC service specifications for RDF streaming.

Expand Down
4 changes: 2 additions & 2 deletions rdf.proto
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
syntax = "proto3";
package eu.ostrzyciel.jelly.core.proto;
package eu.ostrzyciel.jelly.core.proto.v1;

// Protocol Buffers Rdf serialization.
// Jelly RDF serialization with Protocol Buffers.

// === Rdf Terms ===
message RdfIri {
Expand Down

0 comments on commit 03284b7

Please sign in to comment.