Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
d05fe31
💚 Fix coverage workflow in act
pboling Aug 17, 2025
0e569bf
📝 Docs site update
pboling Aug 17, 2025
84ebb58
🧑‍💻 IDE settings
pboling Aug 17, 2025
e9868b4
➕ timecop-rspec
pboling Aug 17, 2025
07da3ce
🔨 Galtzo FLOSS Rakefile v1.0.8
pboling Aug 18, 2025
74a1b55
♻️ config_path => config_file
pboling Aug 18, 2025
fe8bc09
🐛 Always use UTC time to avoid TZ issues
pboling Aug 18, 2025
0c38514
🐛 Prevent failure due to low terminal width; fallback to non-tabular …
pboling Aug 18, 2025
107d781
✅ Fixing specs and behavior
pboling Aug 18, 2025
bdf2109
✨ Implement Append Option for ask_overwrite Function
pboling Aug 18, 2025
713d4b4
👽️ Update generated files
pboling Aug 18, 2025
5eb7be8
🔨 bin/rspec_status_ok helper script
pboling Aug 18, 2025
0fcc081
🔒️ URL and YAML Validation Constraints for FlossFunding
pboling Aug 18, 2025
a0b2e3b
📝 Update documentation
pboling Aug 18, 2025
e5e5c6f
🐛 Fix Contraindication Bug in Poke Creation Process
pboling Aug 18, 2025
72acc3f
👷 Create Gems with Poked Scenarios for Testing
pboling Aug 18, 2025
e6d27b1
🚨 Linting
pboling Aug 18, 2025
30daf96
🐛 prevent extra count at end of bin/floss_funding -p
pboling Aug 18, 2025
b4e9adb
♻️ FUNDED🦷%
pboling Aug 18, 2025
1aac194
🐛 Don't define global methods in rake namespace
pboling Aug 18, 2025
ca06f14
♻️ Refactor ENV vars to prevent conflict w/ those intended for activa…
pboling Aug 18, 2025
8913c6a
✏️ Oops, fixed typo
pboling Aug 18, 2025
e5176b5
🔨 Add `appraisal:update` Rake task and update version.
pboling Aug 18, 2025
66ded9d
👷 Proper ENV setup for deps_locked.yml
pboling Aug 18, 2025
c1a25f9
🚸 Improved install task
pboling Aug 19, 2025
894c371
🔨 Galtzo FLOSS Rakefile v1.0.10 (Ruby 1.9 compatible edition)
pboling Aug 19, 2025
243a836
📝 Update documentation
pboling Aug 19, 2025
1b2c4b1
🚨 Linting
pboling Aug 19, 2025
ec25447
♻️ Refactor floss_funding:install rake task
pboling Aug 19, 2025
11b799c
🔒️ Final summary header now shows only the project basename
pboling Aug 20, 2025
52329d2
📝 Documentation of all ENV configuration variables, and their behavior
pboling Aug 20, 2025
768cfe6
🧑‍💻 Enhance ci:act rake task with workflow short code argument
pboling Aug 20, 2025
9b00ee9
♻️ rename deps_locked workflow to locked_deps
pboling Aug 20, 2025
3cd311b
♻️ rename deps_unlocked workflow to unlocked_deps
pboling Aug 20, 2025
04851b4
♻️ ci:act - build workflow mapping to short codes dynamically
pboling Aug 20, 2025
c031f2d
✅ Add more tests (92% lines / 79% branches)
pboling Aug 20, 2025
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
3 changes: 2 additions & 1 deletion .env.local.example
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
export DEBUG=false # do not allow byebug statements (override in .env.local)
export FLOSS_FUNDING_DEBUG=false # extra logging to help diagnose issues (override in .env.local)
export FLOSS_CFG_FUNDING_DEBUG=false # extra logging to help diagnose issues (override in .env.local)
export AUTOGEN_FIXTURE_CLEANUP=false # autogenerated gem fixture cleanup after every RSpec run
export GLOBAL_TIME_TRAVEL_TIME=2025-08-15
11 changes: 7 additions & 4 deletions .envrc
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,20 @@ PATH_add bin
export K_SOUP_COV_DO=true # Means you want code coverage
# Available formats are html, xml, rcov, lcov, json, tty
export K_SOUP_COV_COMMAND_NAME="Test Coverage"
export K_SOUP_COV_FORMATTERS="html,xml,rcov,lcov,json,tty"
export K_SOUP_COV_MIN_BRANCH=86 # Means you want to enforce X% branch coverage
export K_SOUP_COV_MIN_LINE=94 # Means you want to enforce X% line coverage
export K_SOUP_COV_FORMATTERS="html,xml,rcov,lcov,json"
export K_SOUP_COV_MIN_BRANCH=79 # Means you want to enforce X% branch coverage
export K_SOUP_COV_MIN_LINE=92 # Means you want to enforce X% line coverage
export K_SOUP_COV_MIN_HARD=true # Means you want the build to fail if the coverage thresholds are not met
export K_SOUP_COV_MULTI_FORMATTERS=true
export K_SOUP_COV_OPEN_BIN= # Means don't try to open coverage results in browser
export MAX_ROWS=1 # Setting for simplecov-console gem for tty output, limits to the worst N rows of bad coverage

# timecop-rspec
export GLOBAL_TIME_TRAVEL_TIME=2025-08-15

# Internal Debugging Controls
export DEBUG=false # do not allow byebug statements (override in .env.local)
export FLOSS_FUNDING_DEBUG=false # extra logging to help diagnose issues (override in .env.local)
export FLOSS_CFG_FUND_DEBUG=false # extra logging to help diagnose issues (override in .env.local)
export AUTOGEN_FIXTURE_CLEANUP=false # autogenerated gem fixture cleanup after every RSpec run
export FLOSS_CFG_FUNDING_LOGFILE=tmp/log/debug.log

Expand Down
21 changes: 19 additions & 2 deletions .floss_funding.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,19 @@
library_name: floss_funding
funding_uri: https://floss-funding.dev
---
funding_subscription_uri:
- https://floss-funding.dev/subscribe
suggested_subscription_amounts:
- 5
funding_donation_uri:
- https://floss-funding.dev/donate
suggested_donation_amounts:
- 10
library_name:
- floss_funding
homepage:
- https://github.com/galtzo-floss/floss_funding
authors:
- Peter H. Boling
email:
- floss@galtzo.com
funding_uri:
- https://github.com/sponsors/pboling
7 changes: 4 additions & 3 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ permissions:
id-token: write

env:
K_SOUP_COV_MIN_BRANCH: 86
K_SOUP_COV_MIN_LINE: 94
K_SOUP_COV_MIN_BRANCH: 79
K_SOUP_COV_MIN_LINE: 92
K_SOUP_COV_MIN_HARD: true
K_SOUP_COV_FORMATTERS: "html,xml,rcov,lcov,tty"
K_SOUP_COV_DO: true
Expand Down Expand Up @@ -93,6 +93,7 @@ jobs:
# Build will fail here if coverage upload fails
# which will hopefully be noticed for the lack of code coverage comments
- name: Upload coverage to CodeCov
if: ${{ !env.ACT }}
uses: codecov/codecov-action@v5
with:
use_oidc: true
Expand All @@ -113,7 +114,7 @@ jobs:
hide_complexity: true
indicators: true
output: both
thresholds: '94 86'
thresholds: '92 79'
continue-on-error: ${{ matrix.experimental != 'false' }}

- name: Add Coverage PR Comment
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
#
# Two often conflicting goals resolved!
#
# - deps_unlocked.yml
# - unlocked_deps.yml
# - All runtime & dev dependencies, but does not have a `gemfiles/*.gemfile.lock` committed
# - Uses an Appraisal2 "deps_unlocked" gemfile, and the current MRI Ruby release
# - Uses an Appraisal2 "unlocked_deps" gemfile, and the current MRI Ruby release
# - Know when new dependency releases will break local dev with unlocked dependencies
# - Broken workflow indicates that new releases of dependencies may not work
#
# - deps_locked.yml
# - locked_deps.yml
# - All runtime & dev dependencies, and has a `Gemfile.lock` committed
# - Uses the project's main Gemfile, and the current MRI Ruby release
# - Matches what contributors and maintainers use locally for development
Expand All @@ -21,7 +21,17 @@ permissions:
contents: read

env:
KITCHEN_SINK: true
# Running coverage, but not validating minimum coverage,
# because it would be redundant with the coverage workflow.
# Also we can validate all output formats without breaking CodeCov,
# since we aren't submitting these reports anywhere.
K_SOUP_COV_MIN_BRANCH: 71
K_SOUP_COV_MIN_LINE: 86
K_SOUP_COV_MIN_HARD: false
K_SOUP_COV_FORMATTERS: "html,xml,rcov,lcov,json,tty"
K_SOUP_COV_DO: true
K_SOUP_COV_MULTI_FORMATTERS: true
K_SOUP_COV_COMMAND_NAME: "Test Coverage"

on:
push:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
#
# Two often conflicting goals resolved!
#
# - deps_unlocked.yml
# - unlocked_deps.yml
# - All runtime & dev dependencies, but does not have a `gemfiles/*.gemfile.lock` committed
# - Uses an Appraisal2 "deps_unlocked" gemfile, and the current MRI Ruby release
# - Uses an Appraisal2 "unlocked_deps" gemfile, and the current MRI Ruby release
# - Know when new dependency releases will break local dev with unlocked dependencies
# - Broken workflow indicates that new releases of dependencies may not work
#
# - deps_locked.yml
# - locked_deps.yml
# - All runtime & dev dependencies, and has a `Gemfile.lock` committed
# - Uses the project's main Gemfile, and the current MRI Ruby release
# - Matches what contributors and maintainers use locally for development
Expand Down Expand Up @@ -55,7 +55,7 @@ jobs:
include:
# Ruby <whichever version is current, e.g., 3.4 as of 2025-07-12>
- ruby: "ruby"
appraisal_name: "deps_unlocked"
appraisal_name: "unlocked_deps"
exec_cmd: "rake"
gemfile: "Appraisal.root"
rubygems: latest
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -48,5 +48,5 @@ Appraisal.*.gemfile.lock
/spec/fixtures/gem_mine/*
/spec/fixtures/bench_gems/*

# Lockfiles
# Sentinels
.floss_funding.*.lock
2 changes: 2 additions & 0 deletions .idea/floss_funding.iml

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

3 changes: 2 additions & 1 deletion .junie/guidelines.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,8 @@ This document captures project-specific knowledge to streamline setup, testing,
stub_env("FLOSS_FUNDING_MY_NS" => "Free-as-in-beer")
# example code continues
- If your spec needs to assert on console output, tag it with :check_output. By default, STDOUT is silenced.
- Use Timecop for deterministic time-sensitive behavior as needed (require config/timecop is already done by spec_helper).
- Use Timecop::Rspec for deterministic time-sensitive behavior as needed
- see spec/config/timecop_rspec.rb for usage examples.
- Demonstrated example (executed and verified during this session)
- Example spec content used:
- File: spec/floss_funding/demo_spec.rb
Expand Down
Loading
Loading