Skip to content
Open

V4 #33

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
35 changes: 0 additions & 35 deletions .circleci/config.yml

This file was deleted.

148 changes: 148 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
name: Test and Release

on:
release:
types:
- published
pull_request:
push:
branches:
- main
- develop

jobs:
build:
name: Build Package
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4.1.6

- name: Set up Python
uses: actions/setup-python@v5.1.0
with:
python-version: "3.13"

- name: Install uv
run: pip install uv

- name: Checking for code smells
run: uvx ruff check

- name: Checking for formatting issues
run: uvx ruff format --check

- name: Build package
run: uv build

- name: Upload wheel artifact
uses: actions/upload-artifact@v4
with:
name: wheel-package
path: dist/*.whl
retention-days: 1

- name: Upload source artifact
uses: actions/upload-artifact@v4
with:
name: source-package
path: dist/*.tar.gz
retention-days: 1

test:
name: "${{ matrix.os }} - Py${{ matrix.python-version }}"
needs: [build]
runs-on: ${{ matrix.os }}
timeout-minutes: 30
strategy:
fail-fast: true
matrix:
python-version: ["3.11", "3.12", "3.13"]
os: ["ubuntu-24.04"]
env:
OS: ${{ matrix.os }}
PYTHON: ${{ matrix.python-version }}

steps:
- uses: actions/checkout@v4.1.6

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5.1.0
with:
python-version: ${{ matrix.python-version }}

- name: Installing uv
run: pip install uv

- name: Installing dependencies (Python)
run: uv sync --all-extras

- name: Running tests
run: |
uv run pytest -s -vvvvv --cov=lawu --cov-report=xml

- name: Uploading coverage
uses: codecov/codecov-action@v4
with:
env_vars: OS,PYTHON
fail_ci_if_error: true
flags: unittests
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
slug: TkTech/lawu

docs:
name: Building Documentation
needs: [build]
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4.1.6

- name: Set up Python
uses: actions/setup-python@v5.1.0
with:
python-version: "3.13"

- name: Installing uv
run: pip install uv

- name: Installing dependencies (Python)
run: uv sync --all-extras

- name: Building docs
run: |
cd docs && uv run make clean html

- name: Publishing documentation
if: github.event_name == 'release'
run: |
uv run ghp-import -f -n -p docs/_build/html

release:
name: Release to PyPI
needs: [test, docs]
runs-on: ubuntu-latest
if: github.event_name == 'release'
permissions:
contents: read
id-token: write

steps:
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
merge-multiple: true
path: dist

- name: Set up Python
uses: actions/setup-python@v5.1.0
with:
python-version: "3.13"

- name: Install uv
run: pip install uv

- name: Publishing to PyPI
run: |
uv publish
9 changes: 8 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,11 @@ test.py
*.pyc
docs/_build/
.DS_Store
*.un~
*.un~
venv
.vscode
*.egg-info
dist
build/
.venv
.idea
2 changes: 0 additions & 2 deletions MANIFEST.in

This file was deleted.

18 changes: 7 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,16 @@
# Jawa
![lawu](lawu_small.png)

[![CircleCI](https://img.shields.io/circleci/project/github/TkTech/Jawa/master.svg?style=for-the-badge)](https://circleci.com/gh/TkTech/Jawa)
[![license](https://img.shields.io/github/license/tktech/jawa.svg?style=for-the-badge)](LICENCE)
# lawu

Jawa is a human-friendly library for assembling, disassembling, and exploring
JVM class files. It's highly suitable for automation tasks.
[![MIT](https://img.shields.io/github/license/tktech/lawu.svg?style=for-the-badge)](LICENCE)

*NOTE*: The assembler does _not_ currently implement Stack Maps, an
artificially complex requirement for ClassFiles generated for Java 7 and
above to properly verify (unless you turn it off with -XX:-UseSplitVerifier).
However, assembled files targeting Java 6 will still work with 7 and above.
Lawu is a human-friendly library for assembling, disassembling, and exploring
JVM class files. It's highly suitable for automation tasks.

## Documentation

API documentation & examples are available at http://jawa.tkte.ch
API documentation & examples are available at https://tkte.ch/lawu/

## Licence

Jawa is available under the MIT licence. See LICENCE.
Lawu is available under the MIT licence. See LICENCE.
155 changes: 0 additions & 155 deletions docs/Makefile

This file was deleted.

Loading
Loading