Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Check pull request

on:
pull_request:
branches: [main]

jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.3"
bundler-cache: true

- uses: actions/setup-node@v4
with:
node-version: "20"

- name: Validate front matter
run: ruby script/validate.rb

- name: Install Tailwind
run: npm install --no-audit --no-fund

- name: Build stylesheet
run: npm run css

- name: Build site
run: bundle exec jekyll build --trace
env:
JEKYLL_ENV: production
60 changes: 60 additions & 0 deletions .github/workflows/pages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: Build and deploy

on:
push:
branches: [main]
workflow_dispatch:
# No scheduled rebuild needed: the browser recomputes which entries are
# ongoing, scheduled or closed from their timestamps (assets/js/status.js).

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: pages
cancel-in-progress: false

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.3"
bundler-cache: true

- uses: actions/setup-node@v4
with:
node-version: "20"

- name: Validate front matter
run: ruby script/validate.rb

- name: Install Tailwind
run: npm install --no-audit --no-fund

- name: Build stylesheet
run: npm run css

- name: Build site
run: bundle exec jekyll build --trace
env:
JEKYLL_ENV: production

- uses: actions/upload-pages-artifact@v3
with:
path: _site

deploy:
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- id: deployment
uses: actions/deploy-pages@v4
21 changes: 21 additions & 0 deletions 404.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
layout: default
title: Page not found
permalink: /404.html
sitemap: false
---

<section class="mx-auto flex max-w-3xl flex-col items-center px-4 py-24 text-center sm:px-6">
<span class="flex h-14 w-14 items-center justify-center rounded-full bg-slate-100 text-slate-400">
{%- include icon.html name="circle-alert" class="h-7 w-7" -%}
</span>
<h1 class="mt-6 text-2xl font-semibold tracking-tight text-slate-900 sm:text-3xl">Page not found</h1>
<p class="mt-2 max-w-md text-sm leading-relaxed text-slate-500">
This announcement does not exist, or the link has changed.
</p>
<a href="{{ '/' | relative_url }}"
class="mt-6 inline-flex items-center gap-1.5 rounded-full bg-vib-900 px-5 py-2.5 text-sm font-medium text-white transition hover:bg-vib-800">
{%- include icon.html name="arrow-left" class="h-4 w-4" -%}
Back to Home
</a>
</section>
7 changes: 7 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
source "https://rubygems.org"

gem "jekyll", "~> 4.4"
gem "jekyll-sitemap", "~> 1.4"

# Required on Ruby 3.x for `jekyll serve`.
gem "webrick", "~> 1.8"
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2026 VIB Data Core

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
150 changes: 150 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
# VIB Data Core — announcements

Public notice board for the services run by VIB Data Core:
**https://vib-data-core.github.io/status**

Everything on that page comes from Markdown files in this repository. Posting
an announcement means adding one file — no HTML, no CSS, no build step on your
side.

## Quick start: post an announcement

Copy [`_announcements/TEMPLATE.md`](_announcements/TEMPLATE.md) to a new file
next to it and edit it. On GitHub: open the template, **Copy raw file**, then
in [`_announcements/`](_announcements/) click **Add file → Create new file**,
name it `YYYY-MM-DD-short-slug.md` — for example
`2026-09-19-project-storage-slow.md` — and paste.


```yaml
---
title: Slower than usual access to Project Storage
start: 2026-09-19 09:30:00
type: unplanned
services_affected:
- project-storage
summary: >-
One or two sentences shown on the card and in the history.
---

Markdown body
```

Leave `end:` out entirely while it is still going on. When it is over, edit the
same file and add the end time:

```yaml
end: 2026-09-19 18:00:00
```

For planned work, set `type: planned` and give both `start` and `end` up front:

```yml
---
title: Planned maintenance of the Electronic Lab Notebook
start: 2026-10-06 19:00:00
end: 2026-10-06 23:00:00
type: planned
services_affected:
- eln
summary: >-
The Electronic Lab Notebook is unavailable for about four hours.
---
```

The page rebuilds automatically after the change lands on `main`.

## Updates during a long announcement

A long-running announcement can carry a list of updates. Newest first or
oldest first, both work; the page sorts them. The most recent update is also
shown on the card on the landing page.

```yaml
updates:
- time: 2026-09-20 11:00:00
body: >-
Performance has improved for most users.
- time: 2026-09-19 10:15:00
body: >-
We are aware of the slower access and are looking into it.
```

## Front matter reference

| Field | Required | Type | Notes |
| --- | --- | --- | --- |
| `title` | yes | text | Keep it under ~90 characters. Describe the impact, not the cause. |
| `start` | yes | date-time | Unquoted, **no timezone offset**: `2026-09-19 09:30:00`. Always Belgian local time — summer and winter time are handled for you. |
| `end` | no | date-time | Omit while it is still going on. Once it is in the past, the entry moves to the history page. |
| `type` | yes | keyword | `unplanned` or `planned`. |
| `services_affected` | yes | list | Ids from [`_data/services.yml`](_data/services.yml). Unknown ids fail the build check. |
| `summary` | recommended | text | One or two sentences, shown on cards and in the history. |
| `updates` | no | list | Chronological updates during a long announcement, each one a `time` and a `body`. See the commented-out block in the template. |

Times carry no offset because every time on this page is Belgian local time.
[`_plugins/local_times.rb`](_plugins/local_times.rb) reads them that way; YAML
would otherwise take a bare time for UTC and the page would move the entry an
hour or two late.

### Services

Defined in [`_data/services.yml`](_data/services.yml), and they mirror the Data
Core catalogue (the services listed in Connect). One announcement can cover
several of them. Use the `id` in front matter; the `name` is what readers see:

```yaml
- id: project-storage
name: Project Storage
description: Laboris nisi ut aliquip ex ea commodo consequat.
```

The `description` only surfaces as the tooltip on a service chip, and the ones
checked in are placeholder text — replace them with the catalogue wording.

If the catalogue gains a service, add it here in the same change. Ids are
lowercase with dashes and should not change afterwards — they appear in
shareable filter links such as `/history/?services=project-storage,usegalaxy`.

## Working on it locally

You need Ruby (3.1+) and Node (18+).

```bash
bundle install # Jekyll and friends
npm install # Tailwind CLI

npm run serve # builds the CSS, watches it, and serves on http://localhost:3002/status/
```

Other commands:

```bash
npm run css # one-off, minified stylesheet
npm run build # CSS + full Jekyll build into _site/
npm run validate # check all entries against the vocabularies
```

`assets/css/main.css` is generated and git-ignored — never edit it by hand,
edit [`assets/css/tailwind.css`](assets/css/tailwind.css) instead.


### Checks on every change

[`script/validate.rb`](script/validate.rb) runs in CI and fails on:

- missing `title`, `start` or `type`
- an unknown `type`, or a retired `severity:`/`kind:` key
- quoted or malformed date-times, and an `end` before the `start`
- a `Z` or `+00:00` offset on a time, which is indistinguishable from a bare
Belgian local time and would silently shift the entry by an hour or two
- missing or unknown service ids
- malformed `updates` entries

It also prints warnings (empty body, missing summary, odd file name) that do
not block the change.


## Licence

Code in this repository is MIT licensed (see [LICENSE](LICENSE)).
14 changes: 14 additions & 0 deletions _announcements/2026-06-02-nulla-vitae-elit-libero.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
title: Nulla vitae elit libero a pharetra augue
start: 2026-06-02 16:00:00
end: 2026-06-02 16:45:00
type: planned
services_affected:
- software-hosting
summary: >-
Sed posuere consectetur est at lobortis, aenean eu leo quam pellentesque
ornare.
---

Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac
cursus commodo, tortor mauris condimentum nibh.
13 changes: 13 additions & 0 deletions _announcements/2026-06-19-cras-mattis-consectetur.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
title: Cras mattis consectetur purus sit amet
start: 2026-06-19 08:50:00
end: 2026-06-19 09:25:00
type: unplanned
services_affected:
- eln
summary: >-
Fermentum nibh, ut fermentum massa justo sit amet risus.
---

Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum.
Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
14 changes: 14 additions & 0 deletions _announcements/2026-07-08-vivamus-sagittis-lacus.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
title: Vivamus sagittis lacus vel augue laoreet
start: 2026-07-08 12:00:00
end: 2026-07-08 14:00:00
type: planned
services_affected:
- software-licenses
summary: >-
Rutrum faucibus dolor auctor, cras mattis consectetur purus sit amet
fermentum.
---

Aenean lacinia bibendum nulla sed consectetur. Etiam porta sem malesuada magna
mollis euismod, donec sed odio dui.
13 changes: 13 additions & 0 deletions _announcements/2026-07-30-donec-ullamcorper-nulla.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
title: Donec ullamcorper nulla non metus auctor
start: 2026-07-30 10:40:00
end: 2026-07-30 13:15:00
type: unplanned
services_affected:
- data-deposition
summary: >-
Fringilla, duis mollis est non commodo luctus nisi erat porttitor ligula.
---

Curabitur blandit tempus porttitor. Vivamus sagittis lacus vel augue laoreet
rutrum faucibus dolor auctor, sed posuere consectetur est at lobortis.
16 changes: 16 additions & 0 deletions _announcements/2026-08-14-maecenas-sed-diam.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
title: Maecenas sed diam eget risus varius
start: 2026-08-14 18:00:00
end: 2026-08-15 02:00:00
type: planned
services_affected:
- project-storage
- compute
summary: >-
Blandit sit amet non magna, curabitur blandit tempus porttitor.
---

Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Aenean eu
leo quam, pellentesque ornare sem lacinia quam venenatis vestibulum.

Nullam quis risus eget urna mollis ornare vel eu leo.
18 changes: 18 additions & 0 deletions _announcements/2026-08-27-etiam-porta-sem.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
title: Etiam porta sem malesuada magna mollis
start: 2026-08-27 14:05:00
end: 2026-08-27 17:20:00
type: unplanned
services_affected:
- compute
- secure-compute
summary: >-
Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Nullam id dolor
id nibh ultricies.
---

Cras justo odio, dapibus ac facilisis in, egestas eget quam. Vestibulum id
ligula porta felis euismod semper. Sed posuere consectetur est at lobortis.

Nulla vitae elit libero, a pharetra augue. Donec ullamcorper nulla non metus
auctor fringilla, duis mollis est non commodo luctus.
Loading
Loading