Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft diagrams for governance process #19

Merged
18 commits merged into from
Sep 3, 2024
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
54 changes: 54 additions & 0 deletions .github/workflows/pages_graphs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Pages and Graphviz re-render
on: push

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

jobs:
build:
name: Rebuild graphs and pages
runs-on: ubuntu-latest
defaults:
run:
working-directory: .
steps:
- uses: actions/checkout@v4
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.3' # Not needed with a .ruby-version file
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
cache-version: 0 # Increment this number if you need to re-download cached gems
working-directory: '${{ github.workspace }}'
- name: Setup Pages
id: pages
uses: actions/configure-pages@v3
- name: Build with Jekyll
# Outputs to the './_site' directory by default
# Will this copy the diagrams tho
run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}"
env:
JEKYLL_ENV: production
- uses: ts-graphviz/setup-graphviz@v2
- name: Diagrams
run: chmod +x ./scripts/render_diagrams.sh; bash ./scripts/render_diagrams.sh
- name: Upload artifact
# Automatically uploads an artifact from the './_site' directory by default
uses: actions/upload-pages-artifact@v1
with:
path: "_site"

# Deployment job
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v2
35 changes: 35 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
source "https://rubygems.org"
# Hello! This is where you manage which Jekyll version is used to run.
# When you want to use a different version, change it below, save the
# file and run `bundle install`. Run Jekyll with `bundle exec`, like so:
#
# bundle exec jekyll serve
#
# This will help ensure the proper Jekyll version is running.
# Happy Jekylling!
#gem "jekyll", "~> 4.3.3"
# This is the default theme for new Jekyll sites. You may change this to anything you like.
gem "minima", "~> 2.5"
# If you want to use GitHub Pages, remove the "gem "jekyll"" above and
# uncomment the line below. To upgrade, run `bundle update github-pages`.
gem "github-pages", "~> 231", group: :jekyll_plugins
gem "webrick"
gem "just-the-docs"
# If you have any plugins, put them here!
group :jekyll_plugins do
gem "jekyll-feed", "~> 0.12"
end

# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
# and associated library.
platforms :mingw, :x64_mingw, :mswin, :jruby do
gem "tzinfo", ">= 1", "< 3"
gem "tzinfo-data"
end

# Performance-booster for watching directories on Windows
gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin]

# Lock `http_parser.rb` gem to `v0.6.x` on JRuby builds since newer versions of the gem
# do not have a Java counterpart.
gem "http_parser.rb", "~> 0.6.0", :platforms => [:jruby]
12 changes: 12 additions & 0 deletions _config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
title: UKCEH Research Software Engineering in Environmental Data Science
email: jowals@ceh.ac.uk
description: >- # this means to ignore newlines until "baseurl:"
This repository contains documentation and links for the Research Software Engineering group in Environmental Data Science at the UK Centre for Ecology and Hydrology
baseurl: "" # the subpath of your site, e.g. /blog
url: "" # the base hostname & protocol for your site, e.g. http://example.com
github_username: metazool

# Build settings
remote_theme: riggraz/no-style-please
plugins:
- jekyll-feed
25 changes: 25 additions & 0 deletions scripts/render_diagrams.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#!/bin/bash
# Copilot generated script to render diagrams as SVG

# Set the directory path
DIR="team/governance/diagrams/"
SITE="_site/"


# Loop through each dot file in the subdirectory
for dotfile in "$DIR"*.dot; do
# Get the base name without extension
base_name=$(basename "$dotfile" .dot)
dir_path="_site/${DIR}"
mkdir -p $dir_path
output="$dir_path$base_name.svg"

# Render the dot file to SVG
dot -Tsvg "$dotfile" -o $output

# Print a success message
echo "Rendered $dotfile to $output"
done



61 changes: 61 additions & 0 deletions team/100_days.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
---
title: "A new RSE group, the first 100 days"
author: Jo Walsh (with Alba Gomez Segura, Joe Marsh Rossney, Matt Brown, Matt Coole and Robin Long)
date: September 3rd 2024
output: beamer_presentation
---

# A new RSE group, the first 100 days

## Who we are

* Background to ourselves

## Where we are

* Background to UKCEH

## Why we're here

* Aspirational vision from the governance docs

## What we're aiming for

* A bit about banner projects like NC-UK and FDRI

## Roles and functions

* Context of lots of RSEs or RSE-adjacent attached to groups or projects

## Culture building

* Ourselves (team agreement)
* Our collaborators (EDS, Discussions)
* Our communities ()
* Our networks (groups in parallel orgs, local interest communities)

## Outreach and skills development

* Mob programming, working with individuals
* Luxury of doing this while governance still being worked out
* SSI training conversations (they need funding allocation too)
* Clinics (ways to connect when people are heads-down; BGS example)

## Moving to the open

* "How do we communicate"
* Handbooks, common patterns
* How many RSE groups' needs are the same

## Being welcoming

* Balance of larger and smaller commitments
* Staying aspirational while not putting people off
* Finding ways to focus on longer term plans (like workshop/clinic series)

## Thoughtful conclusion

* We have a lot more questions than we have answers
* We want to find the common ground
* Talk to us! (pictures of everyone)

23 changes: 23 additions & 0 deletions team/governance/diagrams/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Governance diagrams

_Note: these are a draft intended to focus discussion about putting in place that "lightweight governance process" for shared workload with correct oversight.

While this note is present, the diagrams are definitely not to be read as representative of consensus reality._

A set of graphviz dotfiles intended to be read end to end. Drawn in [SketchViz](https://sketchviz.com/) where they render nicely. There's a lot of detail missing, but it's a step downwards from the high level principles.

## Diagrams

### Concept phase

Outline of the flow from a group seeking RSE contribution to a proposed project, to deciding whether it's appropriate to take forward or there are preferable routes (e.g. towards Scientific Computing or People Development).

### Triage phase

Outline of the flow from receiving a definite expression of interest through EDS Enquiries, to gauging whether a project is suitable to take forward to the committee. It's probably this phase that needs the most consideration from, and adaptation by, members of the RSE group.

### Proposal phase

Outline of the flow from receiving a proposal through a formal channel, to the committee including Science Area representatives and budget holders, to a decision about whether the group has the capacity to work on it in the timeline.


20 changes: 20 additions & 0 deletions team/governance/diagrams/application.dot
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
digraph G {

bgcolor=white;
node [fontname = "Handlee"];
edge [fontname = "Handlee"];

application [ label="Application"];
is_complete [ label="Is it complete?" shape=diamond]
committee [label="Science Committee"]
timeline_ok [label="Resources fit the timeline?" shape=diamond]
exco_hr [label="ExCo / HR conversation"]

application -> is_complete;
is_complete -> timeline_ok [label="Yes"];
is_complete:ne -> application:se [label="No"];

timeline_ok -> committee [label="Yes"];
timeline_ok -> exco_hr [label="No"];

}
33 changes: 33 additions & 0 deletions team/governance/diagrams/concept.dot
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
digraph G {

bgcolor=transparent;
node [fontname = "Handlee"];
edge [fontname = "Handlee"];


starting [ label = "Concept"];
pm_support [ label = "PM support"];
funded [ label = "Is it funded?" shape=diamond ];
extra_support [label="What are you looking for?" shape=diamond]
help_tech [label="Type?" shape=diamond]
go_to_it [label="Go to IT channels"]
offered [label="Is this within RSE scope?" shape=diamond]
proposal[label="Proposal for future RSE capability"]

starting -> funded;

funded -> pm_support[label="Externally?"];
funded -> pm_support[label="Internally?"];
funded -> extra_support[label="Not yet?"];

extra_support:w -> pm_support[label="Help with grantwriting"];
extra_support -> help_tech[label="Technical support"];
extra_support:e -> offered[label="Consultancy"];

help_tech -> offered[label="Skills development"];
help_tech -> go_to_it[label="Debugging and repair"];

offered -> pm_support[label="Yes"]
offered -> proposal[label="No"]

}
25 changes: 25 additions & 0 deletions team/governance/diagrams/triage.dot
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@

digraph G {

bgcolor=transparent;
node [fontname = "Handlee"];
edge [fontname = "Handlee"];

enquiry [ label="Enquiry"];
logged_once [ label="Logged FAIRly" shape=rectangle];
make_forum [label="Make a forum" shape=rectangle];
review_discussion [label="Review discussion" shape=rectangle]
criteria [label="Fits the criteria?" shape=diamond]

application [ label="Application"]
log_decision [label="Log decision"]

enquiry -> logged_once;
logged_once -> make_forum;
make_forum -> review_discussion;
review_discussion -> criteria;
criteria -> application[label="Ready?"];
criteria:ne -> review_discussion[label="Needs work?"];
criteria -> log_decision [label="Not really"];

}
Loading