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

Use uv #37

Merged
merged 4 commits into from
Nov 9, 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
6 changes: 6 additions & 0 deletions .envrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# shellcheck shell=bash

# Workaround for missing cairo libaries.
if [[ "$OSTYPE" == "darwin"* ]]; then
export DYLD_FALLBACK_LIBRARY_PATH=/opt/homebrew/lib
fi
27 changes: 13 additions & 14 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,19 @@ on:
# mkdocs source
- "src/**"
- "mkdocs.yml"
# poetry source
- "mkdocs.yaml"
# python source
- "pyproject.toml"
- "poetry.lock"
- "uv.lock"
# run updated workflows
- ".github/workflows/**"
pull_request:
paths:
- "src/**"
- "mkdocs.yml"
- "mkdocs.yaml"
- "pyproject.toml"
- "poetry.lock"
- "uv.lock"
- ".github/workflows/**"
workflow_dispatch:
inputs:
Expand Down Expand Up @@ -58,15 +60,14 @@ jobs:
- uses: actions/checkout@v4
with:
lfs: true # images are stored with LFS
# From: https://github.com/actions/setup-python/blob/main/docs/advanced-usage.md#caching-packages
- name: Install poetry
run: pipx install poetry==1.7.1
- uses: actions/setup-python@v5
- name: Install uv
uses: astral-sh/setup-uv@v3
with:
python-version-file: .python-version
cache: poetry
# Install with --no-root because project does produce a python package
- run: poetry install --no-root
enable-cache: true
- name: Set up Python (with uv)
run: uv python install
- name: Install the project
run: uv sync
# From: https://github.com/squidfunk/mkdocs-material/blob/master/docs/publishing-your-site.md#with-github-actions
- name: Setup MkDocs cache
uses: actions/cache@v4
Expand All @@ -76,7 +77,7 @@ jobs:
restore-keys: |
mkdocs-material-
- name: Build site with MkDocs
run: poetry run mkdocs build
run: uv run mkdocs build
- name: Upload build artifact
id: upload
uses: actions/upload-artifact@v4
Expand Down Expand Up @@ -138,8 +139,6 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- name: Install poetry # Needed for updating version in pyproject.toml
run: pipx install poetry==1.7.1
- name: List semantic release plugins
id: listPlugins
uses: mikefarah/yq@master
Expand Down
2 changes: 1 addition & 1 deletion .python-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.12.1
3.12
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
## Developing

- The site is maintained as an [MkDocs] website using the [Material for MkDocs] theme
- See [`mkdocs.yml`](./mkdocs.yml)
- See [`mkdocs.yaml`](./mkdocs.yaml)
- The site source is contained in the [`src/`](./src/) directory
- This is configured in [`mkdocs.yml`](./mkdocs.yml)
- This is configured in [`mkdocs.yaml`](./mkdocs.yaml)
- Differed from the default (`docs/`) to reflect that this site is not documentation
- Dependencies are managed using [Poetry] for Python
- See [`pyproject.toml`](./pyproject.toml)
Expand Down
19 changes: 4 additions & 15 deletions Taskfile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,28 +3,17 @@
version: "3"

tasks:
poetry:
silent: true
internal: true
default:
cmds:
- command -v poetry > /dev/null

install-deps:
silent: true
deps:
- poetry
cmds:
- poetry install --no-root
- task: serve

serve:
deps: [install-deps]
cmds:
- poetry run mkdocs serve
- uv run mkdocs serve

build:
deps: [install-deps]
cmds:
- poetry run mkdocs build
- uv run mkdocs build

lint:
cmds:
Expand Down
36 changes: 25 additions & 11 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,18 +1,32 @@
[tool.poetry]
[project]
name = "src"
version = "0.0.0"
description = "Justen Stall's portfolio and blog."
authors = ["Justen Stall <[email protected]>"]
readme = "README.md"
authors = [{ name = "Justen Stall", email = "[email protected]" }]
maintainers = [{ name = "Justen Stall", email = "[email protected]" }]
requires-python = ">=3.12"
dependencies = [
"mkdocs>=1.5.3",
"mkdocs-material[imaging]>=9.5.18",
"pygments>=2.18.0",
"mdx-truly-sane-lists>=1.3",
"mkdocs-minify-plugin>=0.8.0",
]

[tool.poetry.dependencies]
python = "^3.12"
mkdocs = "^1.5.3"
mkdocs-material = {extras = ["imaging"], version = "^9.5.18"}
pygments = "^2.18.0"
mdx-truly-sane-lists = "^1.3"
mkdocs-minify-plugin = "^0.8.0"
[project.urls]
Homepage = "https://justenstall.com"
Repository = "https://github.com/justenstall/website.git"
Issues = "https://github.com/justenstall/website/issues"
Changelog = "https://github.com/justenstall/website/blob/main/CHANGELOG.md"

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
requires = ["hatchling"]
build-backend = "hatchling.build"

[tool.hatch.version]
path = "VERSION"
pattern = "(?P<version>[^']+)"

[tool.uv]
managed = true
3 changes: 0 additions & 3 deletions release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,3 @@ export ver=$1

# Update VERSION file
echo "$ver" >VERSION

# Update pyproject.toml file
poetry version "$ver"
Binary file not shown.
File renamed without changes
19 changes: 11 additions & 8 deletions src/biography/education.md
Original file line number Diff line number Diff line change
@@ -1,34 +1,37 @@
# Education

## In-progress
## Completed

### Master's of Computer Science, University of Dayton

<div class="portfolio-entry-content" markdown>

<div class="description" markdown>
Expected graduation: May 2024

Currently working on a Software Engineering research project to conclude the program.
</div>
Graduated in May 2024.

Completed two research projects:

![University of Dayton](assets/udayton-logo-vertical-2color.png){ .narrow-image }
- [Hops: a Homebrew Bottle installer with a focus on performance and mobility](https://github.com/act3-ai/hops)
- [Kubernetes Configuration Complexity](assets/K8s-Configuration-Complexity.pdf)

</div>

## Completed

<!-- ![University of Dayton](assets/images/udayton-logo-vertical-2color.png){ .narrow-image } -->

</div>

### B.S. in Computer Science, University of Dayton

<div class="portfolio-entry-content" markdown>

<div class="description" markdown>

Graduated in May of 2021.
Graduated in May 2021.

</div>

![University of Dayton](assets/udayton-logo-vertical-2color.png){ .narrow-image }
<!-- ![University of Dayton](assets/images/udayton-logo-vertical-2color.png){ .narrow-image } -->

</div>
58 changes: 10 additions & 48 deletions src/biography/experience.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,64 +2,26 @@

## Current


### Data Science Engineer, University of Dayton Research Institute

<div class="portfolio-entry-content" markdown>

Currently employed as a Data Science Engineer at the University of Dayton Research Institute.
{ .description }

![University of Dayton Research Institute](assets/udri-primary.jpg){ .image }
<!-- ![University of Dayton Research Institute](assets/images/udri-primary.jpg){ .image } -->

</div>

## Previous

### Internships & Part-time

### App Development Project Manager, Flyer Enterprises

<div class="portfolio-entry-content" markdown>

Worked for the student-run organization Flyer Enterprises from September 2018 to May 2021. Main project was developing a mobile application, digital loyalty card system, and a simple content management system for keeping menus up-to-date and running promotions viewable in the mobile application. Also contributed to the [FE Digital](https://www.fedigitalagency.com/) team as the lead web developer and consultant for local small businesses.
{ .description }

![Flyer Enterprises](assets/fe-primary.jpg){ .narrow-image }

</div>


### Intern, University of Dayton Research Institute

<div class="portfolio-entry-content" markdown>

Worked for UDRI as a part-time intern during the 2020-2021 school year.
{ .description }

![University of Dayton Research Institute](assets/udri-primary.jpg){ .image }

</div>


### Intern, GE Aviation

<div class="portfolio-entry-content" markdown>

Worked for GE Aviation as a Digital Technology intern in the Summer of 2019. Assisted the military contracts group with data analysis and automation.
{ .description }

![GE Aviation](assets/ge-primary.svg){ .image }

</div>


### Intern, Cooper Tire & Rubber Company

<div class="portfolio-entry-content" markdown>

Worked for Cooper Tire as an IT Infrastructure intern in the Summer of 2018. Helped the IT department streamline their device lifecycle management and mobile device management processes.
{ .description }

![Cooper Tire & Rubber Company](assets/cooper-primary.png){ .image }

</div>
- App Development Project Manager, Flyer Enterprises
- Worked for the student-run organization Flyer Enterprises from September 2018 to May 2021. Main project was developing a mobile application, digital loyalty card system, and a simple content management system for keeping menus up-to-date and running promotions viewable in the mobile application. Also contributed to the [FE Digital](https://www.fedigitalagency.com/) team as the lead web developer and consultant for local small businesses.
- University of Dayton Research Institute
- Worked for UDRI as a part-time intern during the 2020-2021 school year.
- GE Aviation
- Worked for GE Aviation as a Digital Technology intern in the Summer of 2019. Assisted the military contracts group with data analysis and automation.
- Cooper Tire & Rubber Company
- Worked for Cooper Tire as an IT Infrastructure intern in the Summer of 2018. Helped the IT department streamline their device lifecycle management and mobile device management processes.
32 changes: 30 additions & 2 deletions src/biography/index.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,33 @@
# Biography

Justen is a Data Science Engineer at the University of Dayton Research Institute, working as a contractor for the Air Force Research Lab. He works on the ACT3 team at AFRL on the Air and Space Cognitive Engine project.
I am a Data Science Engineer at the University of Dayton Research Institute (UDRI). I work for [ACT3](https://www.afrl.af.mil/ACT3/), a machine learning/artificial intelligence research team within the Air Force Research Lab.

Justen has previously worked as a web developer utilizing modern Javascript frameworks for progressive web applications. He enjoys solving complex problems, designing systems that are easy to maintain, and prioritizing the overlooked details of software development and delivery.
## Portfolio

### Hops

[Hops](https://github.com/act3-ai/hops) is a Homebrew Bottle installer with a focus on performance and mobility.

I worked on Hops as a research project during the final semester of my CS master's program. I was inspired by the release of Astral's [`uv`](https://docs.astral.sh/uv/) and my experience at ACT3 using [Homebrew](https://brew.sh) to distribute internal software to the ACT3 team and other developers throughout the Air Force (the [Homebrew tap](https://github.com/act3-ai/homebrew-tap) is hosted on GitHub).

- [Final Presentation](https://github.com/act3-ai/hops/blob/main/docs/final-presentation/final-presentation.md)
- Repository: <https://github.com/act3-ai/hops>

### Kubernetes Configuration Complexity Research

I researched the complexity problems with large Kubernetes system during the second to last semester of my CS master's degree.

- [Final Presentation](assets/K8s-Configuration-Complexity.pdf)
- [Research Symposium Poster](https://ecommons.udayton.edu/stander_posters/3336)

> Stall, Justen. "Solving the complexity problems of large-scale Kubernetes systems." University of Dayton Stander Symposium, 17 April 2024, <https://ecommons.udayton.edu/stander_posters/3336>

### ACT3 Project Tool

I built "Project Tool" (`act3-pt`) for ACT3. The `act3-pt` CLI is a project management tool that can bootstrap projects from a "Blueprint", creating files and also configuring the project's GitLab settings to enable CI/CD and secure the repository. Project Tool can also update existing projects when their "Blueprint" has been updated, using a Git three-way-merge inspired by [KPT](https://kpt.dev/).

An open source fork of the project is available on GitLab.

- Repository: <https://gitlab.com/act3-ai/asce/pt>

<!-- ## Flyer Enterprises Mobile Application -->
10 changes: 0 additions & 10 deletions src/biography/portfolio.md

This file was deleted.

Loading