Skip to content
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
2 changes: 0 additions & 2 deletions .cargo/config.toml

This file was deleted.

104 changes: 104 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
name: CI

on:
push:
branches:
- master
- dev
- boilerplate
- idiomatic
- rc1
- rc2
- rc3
pull_request:

permissions:
contents: read

defaults:
run:
shell: bash

env:
CARGO_TERM_COLOR: always

jobs:
check:
name: Stable checks
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: dtolnay/rust-toolchain@stable
with:
components: clippy

- uses: Swatinem/rust-cache@v2

- name: cargo test (all targets)
run: cargo test --all-targets --locked

- name: cargo test (no default features)
run: cargo test --no-default-features --locked

- name: cargo clippy
run: cargo clippy --all-targets --locked -- -D warnings

- name: cargo doc
run: RUSTDOCFLAGS="-D warnings" cargo doc --no-deps --locked

- name: Install pinned nightly rustfmt
run: rustup toolchain install nightly-2026-08-08 --profile minimal --component rustfmt

- name: rustfmt
run: ./scripts/fmt --check

- name: DOC_76 checker
run: python3 scripts/check_doc_76.py

- name: RUST_TEST_NAMING checker
run: python3 scripts/check_test_names.py

- name: DERIVE_LAYOUT checker
run: python3 scripts/check_derives.py

- name: cargo build (libver)
run: cargo build --bin libver --locked

- name: cargo publish (dry run)
run: cargo publish --dry-run --locked

path-semantics:
name: Path semantics (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- windows-latest
steps:
- uses: actions/checkout@v4

- uses: dtolnay/rust-toolchain@stable

- uses: Swatinem/rust-cache@v2

- name: cargo test (Unix path semantics)
run: cargo test --lib --locked tests::unix::

- name: cargo test (Windows path semantics)
run: cargo test --lib --locked tests::windows::

msrv:
name: MSRV (1.74)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: dtolnay/rust-toolchain@1.74.0

- uses: Swatinem/rust-cache@v2

- name: cargo check (library)
run: cargo check --lib --locked
2 changes: 0 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@

.DS_Store

Cargo.lock


# files (by pattern)

Expand Down
72 changes: 68 additions & 4 deletions .vimrc
Original file line number Diff line number Diff line change
@@ -1,6 +1,70 @@
" Synesis C/C++ project .vimrc — aligned with .sis/.vscode/c_cxx/settings.json

set nocompatible
filetype indent plugin on
syntax enable
set autoindent
set expandtab
set shiftwidth=4
set softtabstop=4
set tabstop=4
set backspace=indent,eol,start
set hlsearch
set incsearch
set number

" files.insertFinalNewline
set eol
set fixeol

" editor.renderWhitespace: all
set list
set listchars=tab:->,trail:-,extends:>,precedes:<,nbsp:+

" editor.detectIndentation: false — global defaults (editor.tabSize: 2, insertSpaces: false)
set tabstop=2
set shiftwidth=2
set softtabstop=2
set noexpandtab
set colorcolumn=76

" colorcolumn draws a full-column tint in Vim (not a VS Code-style 1px line).
" Keep it subtle via the ColorColumn highlight group; reapply after colorscheme changes.
if has('termguicolors')
" set termguicolors
endif

function! s:ConfigureColorColumn() abort
highlight ColorColumn ctermbg=236 guibg=#2a2a2a cterm=NONE gui=NONE
endfunction

call s:ConfigureColorColumn()
autocmd ColorScheme * call s:ConfigureColorColumn()

" files.trimTrailingWhitespace
autocmd BufWritePre * %s/\s\+$//e

augroup sis_c_cxx
autocmd!

" [c] / [cpp]
autocmd FileType c,cpp setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4 colorcolumn=60,64,68,72,76

" [rust]
autocmd FileType rs setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4 colorcolumn=76

" [cmake]
autocmd FileType cmake setlocal noexpandtab tabstop=4 shiftwidth=4 softtabstop=4

" [shellscript]
autocmd FileType sh,bash,zsh setlocal expandtab tabstop=2 shiftwidth=2 softtabstop=2 colorcolumn=60,76

" [bat]
autocmd FileType bat,dosbatch setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4 colorcolumn=60,76

" [json] / [markdown] / [yaml] / [ruby]
autocmd FileType json,markdown,yaml,ruby setlocal expandtab tabstop=2 shiftwidth=2 softtabstop=2

" [python]
autocmd FileType python setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4 colorcolumn=60,76

" [toml]
autocmd FileType toml setlocal noexpandtab tabstop=2 shiftwidth=2 softtabstop=2
augroup END

21 changes: 15 additions & 6 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,26 @@
# libpath.Rust - CHANGES <!-- omit in toc -->
# libpath.Rust - Changes <!-- omit in toc -->


## 0.0.3 - 31st August 2026

* Added complete package metadata, release documentation, and CI checks;
* Added reproducible pinned-nightly formatting and repository checkers;
* Updated **fastparse** and **test_help-rs** to current compatible releases;
* Documented the current public API and retained unfinished path semantics in **TODO.md**;


## 0.0.2 - 16th March 2025

* ~ renamed `ClassificationResult#Entry` => `#EntryName`;
* + added **test/scratch/libver**;
* ~ tidying ; + adding in as much of 2024 work's tests as work with current definition;
* + added **CHANGES.md**, **NEWS.md**, and **TODO.md**;
* Renamed `ClassificationResult#Entry` to `#EntryName`;
* Added **test/scratch/libver**;
* Tidied the source and added compatible tests from the 2024 work;
* Added **CHANGES.md**, **NEWS.md**, and **TODO.md**;



## 0.0.1 - 5th April 2024

* initial version;
* Initial version;


All history before this day is moot!
Expand Down
42 changes: 42 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

30 changes: 25 additions & 5 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,33 @@
authors = [
"Matt Wilson <matthew@synesis.com.au>",
]
description = "Path parsing library (for Rust)"
categories = [
"filesystem",
"parsing",
]
description = "Path parsing library for Rust"
documentation = "https://docs.rs/libpath"
edition = "2021"
repository = "https://github.com/synesissoftware/libpath.Rust"
exclude = [
".cargo",
".github",
".vimrc",
".vscode",
"scripts",
"target",
]
homepage = "https://github.com/synesissoftware/libpath.Rust"
keywords = [
"filesystem",
"parsing",
"path",
]
license = "BSD-3-Clause"
name = "libpath"
readme = "README.md"
version = "0.0.2"
repository = "https://github.com/synesissoftware/libpath.Rust"
rust-version = "1.74"
version = "0.0.3"


# ##########################################################
Expand Down Expand Up @@ -53,13 +73,13 @@ null-feature = []

[dependencies]

fastparse = { version = "~0.0", default-features = false, features = [
fastparse = { version = "0.0.3", default-features = false, features = [
] }


[dev-dependencies]

test_help-rs = { version = "0.1" }
test_help-rs = { version = "0.2.1" }


# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
libpath.Rust - BSD 3-Clause License

Copyright (c) 2019-2024, Matthew Wilson and Synesis Information Systems
Copyright (c) 2019-2026, Matthew Wilson and Synesis Information Systems
Copyright (c) 2012-2019, Matthew Wilson and Synesis Software
All rights reserved.

Expand Down
3 changes: 2 additions & 1 deletion NEWS.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
# libpath.Rust - NEWS <!-- omit in toc -->
# libpath.Rust - News <!-- omit in toc -->

| Date | News Item |
| --------------------- | ----------------------------------------- |
| 31st August 2026 | [libpath.Rust 0.0.3](https://github.com/synesissoftware/libpath.Rust/releases/tag/0.0.3) released |
| 16th March 2025 | libpath.Rust 0.0.2 released |
| 5th April 2024 | libpath.Rust 0.0.1 released |

Expand Down
Loading