diff --git a/.github/workflows/pages_graphs.yml b/.github/workflows/pages_graphs.yml new file mode 100644 index 0000000..a1ecb7f --- /dev/null +++ b/.github/workflows/pages_graphs.yml @@ -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 \ No newline at end of file diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..7139f47 --- /dev/null +++ b/Gemfile @@ -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] \ No newline at end of file diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..66ff2d7 --- /dev/null +++ b/_config.yml @@ -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 diff --git a/scripts/render_diagrams.sh b/scripts/render_diagrams.sh new file mode 100644 index 0000000..dbd4e68 --- /dev/null +++ b/scripts/render_diagrams.sh @@ -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 + + + diff --git a/team/100_days.md b/team/100_days.md new file mode 100644 index 0000000..48f762a --- /dev/null +++ b/team/100_days.md @@ -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) + diff --git a/team/governance/diagrams/README.md b/team/governance/diagrams/README.md new file mode 100644 index 0000000..8f96de1 --- /dev/null +++ b/team/governance/diagrams/README.md @@ -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. + + diff --git a/team/governance/diagrams/application.dot b/team/governance/diagrams/application.dot new file mode 100644 index 0000000..4dacb2a --- /dev/null +++ b/team/governance/diagrams/application.dot @@ -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"]; + +} \ No newline at end of file diff --git a/team/governance/diagrams/concept.dot b/team/governance/diagrams/concept.dot new file mode 100644 index 0000000..84c0d93 --- /dev/null +++ b/team/governance/diagrams/concept.dot @@ -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"] + +} \ No newline at end of file diff --git a/team/governance/diagrams/triage.dot b/team/governance/diagrams/triage.dot new file mode 100644 index 0000000..8413c7b --- /dev/null +++ b/team/governance/diagrams/triage.dot @@ -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"]; + +} \ No newline at end of file