Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
lwjohnst86 committed Oct 27, 2023
2 parents 89e382d + a9a83b1 commit 0cce5d2
Show file tree
Hide file tree
Showing 12 changed files with 317 additions and 29 deletions.
6 changes: 6 additions & 0 deletions .github/sync.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ group:
seedcase-project/seedcase-registry
seedcase-project/seedcase-theme
seedcase-project/seedcase
steno-aarhus/sdca_admin
- files:
- source: .github/workflows/python-style.yml
dest: .github/workflows/python-style.yml
Expand All @@ -21,3 +22,8 @@ group:
repos: |
seedcase-project/seedcase-registry
seedcase-project/seedcase
- files:
- source: common/justfile-web
dest: justfile
repos: |
seedcase-project/seedcase-project
2 changes: 1 addition & 1 deletion .github/workflows/python-style.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: Style Python Code

on: [push, pull_request]
on: push

jobs:
lint:
Expand Down
72 changes: 61 additions & 11 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,32 +13,82 @@ dev/
.env
.env.*
**/.env.*
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Python venv folder
# Python specific content
venv
__pycache__/
*.py[cod]
*$py.class
.ipynb_checkpoints
profile_default/
ipython_config.py

# Python packaging and distribution
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# Python testing and code coverage
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/
junit/

# MacOS specific files
# MacO
.DS_Store

# R specific files
# R and RStudio
.Rbuildignore
.Rhistory
.RData
.Rproj.user

# Quarto files
# Quarto
/.quarto/

# Site files
# Website generation
_site
_book
public

# Ignore test coverages and results
htmlcov/
junit/
coverage.xml
.coverage
site

# Local data files
**/datafile/*

# Python Django
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
20 changes: 18 additions & 2 deletions common/justfile-dev
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
default:
@just --list --unsorted
@_default:
just --list --unsorted

# Run Python code styler.
style-python:
Expand All @@ -14,3 +14,19 @@ style-python:
# Generate PNG images from PlantUML files
generate-puml:
docker run --rm -v $(pwd):/puml -w /puml ghcr.io/plantuml/plantuml:latest -tpng "**/*.puml"

# Start up the docker container (with build)
start-docker:
docker compose -f docker-compose.yml up -d --build

# Close the docker container
stop-docker:
docker compose -f docker-compose.yml down

# Resume running docker container (without build)
resume-docker:
docker compose -f docker-compose.yml up -d

# Update the Django migration files
update-migrations:
python manage.py makemigrations
6 changes: 5 additions & 1 deletion common/justfile-web
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
default:
@_default:
just --list --unsorted

# Generate PNG images from PlantUML files
generate-puml:
docker run --rm -v $(pwd):/puml -w /puml ghcr.io/plantuml/plantuml:latest -tpng "**/*.puml"

# Build the website using Quarto
build-website:
quarto render
42 changes: 42 additions & 0 deletions entries/1-on-1-meetings.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
title: "1-on-1 meetings"
date: last-modified
---

Working together in a team on a project means all team members need to
get the right support to effectively do the work and make progress in
the project. These types of meetings are between a team member and the
team lead, and their main aim is to provide a consistent and frequent
space to talk about needs for working and growing in a team environment
that is safe and supportive.

To help achieve this aim, here are a few things to keep in mind as some
expectations for these meetings:

- The focus is on team member, how they're doing, and their needs in
relation to the job.
- We want to create a space that is as non-judgmental and safe (and
confidential) as possible, so that we can discuss topics openly and
without consequences.
- While there will be a general agenda, it is mostly informal.

Some questions we might want to discuss or cover are:

- How can the team lead or the team structure how we work or do things
to better support you in your work?
- What can the team lead or the team do to make you feel safe,
supported, and secure in doing your work?
- Do you feel like you are growing and learning the things you want to
learn from this job? What can the team lead or the team do to help
you in that?
- Are there any personal or work related things that are blocking you
or making it more difficult for you to do your tasks effectively?
- What are things you want to learn or gain from this job for the next
check in? What can the team lead or the team do to help with that?

Before the meeting, preferably think about things you would like to
discuss and include that in the agenda.

At the end of the meeting, set the next meeting in the calendar, along
with a basic agenda and any action items that came up during this
meeting.
4 changes: 2 additions & 2 deletions entries/communication.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: "Communication across team and collaborators"
---

Our general philosophy regarding communication is described in more
detail in the page on [Documentation-First Culture](). Our within-team
detail in the page on [Documentation-First Culture](https://seedcase-project.org/community/guide-entries/documentation-first/). Our within-team
philosophy is:

- Limit meetings as much as is necessary, excluding our [weekly
Expand All @@ -13,7 +13,7 @@ philosophy is:
- Always include an agenda as well as minutes afterwards
- Limit the time to what is reasonably required to come to a
decision
- Assign people to chair/faciliator role and to notetaking rol
- Assign people to chair/faciliator role and to notetaking role
- Limit emails as much as is necessary, unless communication is with
someone external to our team or requires a more formal written
record for potential audit purposes
Expand Down
7 changes: 6 additions & 1 deletion entries/create-puml-images.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,16 @@ title: Creating PlantUML images
date: last-modified
---

On the Seedcase Project website, we use [PlantUML](https://plantuml.com) to create diagrams, such as:

1. [C4 diagrams](https://c4model.com) to visualise the software architecture.
2. [Sequence diagrams](https://plantuml.com/sequence-diagram) that visualise a how, and in what order (e.g., the user, web interface, api, and backend), work together.

To create or regenerate the PlantUML files, run the command:

``` bash
just generate-puml
```

You do need to have Docker and Just installed (see the [software
entry](software.qmd)) for more details.
entry](software.md)) for more details.
53 changes: 53 additions & 0 deletions entries/onboarding.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
title: Onboarding
date: last-modified
---

{{< include /includes/_wip.qmd >}}

## Welcome to Seedcase

If you landed on this post, you are most likely a new team member on the Seedcase Project. Welcome!

To get you started, there are some first steps you'll need to do and some posts for you to read and review.

## First steps

1. **Send your GitHub username and Discord username to the Team Leader**
- We use Discord as our communication platform and this way so you can be added to the Seedcase Project server right away. If you don't have a Discord account, you can go to [discord.com](https://discord.com) and create one.
- You will need to be added to the SDCA and Seedcase organizaions (and potentially other repositories) on GitHub. If you don't have a GitHub account, you can go to [github.com](https://github.com) and create one.
2. **Set up GitHub two-factor authentication (2FA)**
- See [this post](github.md) (you will need 2FA to access the Seedcase repositories)
3. **Order IT equipment**
- Talk to the Team Leader about which IT equipment you will need (e.g., computer, mouse, keyboard, and dock station) and Team Leader will help you with ordering it.

## Posts to read and review

In the Seedcase project, we practice a "documentation first" culture. This means that when you read through posts, we encourage you to create issues and pull requests, when you stumble upon something that's unclear or information that's missing or outdated.

Therefore, before you start to read and review the pages in the list below, we encourage you to read the following posts
with introductions and guidelines to our workflows:

1. [Documentation First Culture](https://seedcase-project.org/community/guide-entries/documentation-first/)
2. [Workflows for adding content](workflow.md)
3. If you will need to add new posts: [Adding posts](https://seedcase-project.org/community/guide-entries/adding-posts/) (this post contains guidelines on that)

Now that you have read the above, you can review the pages below:

1. [Onboarding SDCA website](https://steno-aarhus.github.io/research/onboarding.html)
- This website is for general onboarding at SDCA and covers general onboarding, such as the general code of conduct and details on varous social activities and events
- Any subpages of particular interest? Maybe "Welcome and getting started (as a PhD student?)", "General practicalities" and "IT basics"?
2. [Our Seedcase Team Docs website](https://team.seedcase-project.org/) (which is where this post is located)
- This website covers the documentation, contributing guidelines, onboarding material, and event details/agendas for the Seedcase Project team
3. [General contributing guidelines website](https://seedcase-project.org/community/contributing)
- This website covers the contributing guidelines of the Seedcase project
- Potentially start with the "Decisions" section, describing *why* we choose to use the tools that we use: [Why Discord?](https://seedcase-project.org/community/decisions/why-discord/) and [Why Quarto?](https://seedcase-project.org/community/decisions/why-quarto/)
- Then go to the [individual guide entries](https://seedcase-project.org/community/contributing) covering guidelines for contributing
4. [Design documentation](https://seedcase-project.org/design/)
- The design documentation covers stakeholders, design decisions, software architecture, data architecture, and more.

If something is unclear to you, you are more than welcome to reach out to the other team members on Discord. We'd love to help you out.

## Software

When you have received your IT equipment, there are some software you'll need to install. Go to the [Software we use](software.md) post.
47 changes: 36 additions & 11 deletions entries/software.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,45 @@
title: "Software we use"
---

## Software

These are the software we use as a team:

- IDE:
- [RStudio](https://posit.co/download/rstudio-desktop/)
- [VS Code](https://code.visualstudio.com/download)
- [PyCharm](https://www.jetbrains.com/pycharm/download/) (not the
Professional version)
- [Git](https://git-scm.com/downloads)
- [Justfile](https://just.systems/man/en/chapter_4.html)
- [Docker](https://docs.docker.com/get-docker/)
- [Python 3](https://www.python.org/downloads/)
- [Discord](https://discord.com/download)
- IDEs:
- [VS Code](https://code.visualstudio.com/download)
- A lightweight but powerful source code editor that comes with built-in support for multiple languages and has a rich ecosystem of extensions (such as C++, C#, Java, Python, PHP, Go, .NET).
- [PyCharm](https://www.jetbrains.com/pycharm/download/) (the Community Edition, not the
Professional version)
- An integrated development environment used for programming in Python.
- [Discord](https://discord.com/download)
- Our main communication software. If you are interested in why we chose Discord, see the [Why Discord](https://seedcase-project.org/community/decisions/why-discord/) decision post.
- [Docker](https://docs.docker.com/get-docker/)
- The containerization software we use. If you are interested in why we use Docker, see the
[why Docker](https://seedcase-project.org/design/decisions/why-docker/index.html) decision post.
- [Git](https://git-scm.com/downloads)
- We use Git for version control and our code is located at GitHub. As to you we chose GitHub, see the Why GitHub decision post (not created as of October 2023)
- [Justfile](https://just.systems/man/en/chapter_4.html)
- Just is a command runner that we use to manage many workflow and build tasks, such as creating or re-generating diagrams that were created with PlantUML. For more information, see the [Creating PlantUML images](create-puml-images.md) post.
- [Python 3](https://www.python.org/downloads/)
- Python is main development language we use. Check out the [Why Python](https://seedcase-project.org/design/decisions/why-python/index.html) post, if you are interested in why this decision was made.
- [Quarto](https://quarto.org/docs/get-started/)
- We use Quarto to build the website and write general documentation. If you are interested in why we chose Quarto, see the [Why Quarto](https://seedcase-project.org/community/decisions/why-quarto/index.html) decision post.

These are the recommended helper or workflow type software:

- [GitHub CLI](https://cli.github.com/manual/installation)
- [GitHub CLI](https://cli.github.com/manual/)
- GitHub CLI (command line interface) is a command-line tool that brings pull requests, issues, GitHub Actions, and other features specific to GitHub to the terminal.
- [Homebrew](https://docs.brew.sh/Installation)
- If you work on a Macbook, Homebrew can ease the installation process of some of the software listed above by enabling you to install software directly in the Terminal by using the `brew install [package_name]` command. E.g., Git can be installed by writing `brew install git` in the terminal. Easy!

## Recommended VS Code Extensions

If you use VS Code, but are not familiar with extensions, they are add-ons or plugins
that enhance the functionality of VS Code. They can be installed to customise and extend the
capabilities of VS Code to support a wide range of programming languages, frameworks, and
development tasks.

Inside each of our repositories is a `.vscode/extensions.json` file that lists all the extensions we recommend for working
in that repository with VS Code. When you clone any of our repositories and open the local repository
folder in VS Code, a pop-up message will recommend the extensions in this file.
We recommend that you install these to help you set up smoother workflows.
4 changes: 4 additions & 0 deletions entries/update-meetings.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,7 @@ update meetings:

Save any detailed or technical discussion on or about code for the [code
review meetings](code-review-meetings.md).

::: callout-tip
These meetings are held on Discord. To enter, simply go to the seedcase project server on Discord, find "Voice channels", in the menu on the left, and click on "General".
:::
Loading

0 comments on commit 0cce5d2

Please sign in to comment.