opaque_id 1.3.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,177 +0,0 @@
1
- # Task List: Publishing & Release Automation Implementation (Release Please Approach)
2
-
3
- ## Summary
4
-
5
- Implement fully automated publishing and release system for OpaqueId gem using **Release Please** (Google's tool), **Bundler's release tasks**, and **RubyGems trusted publishing** with `rubygems/release-gem` action.
6
-
7
- ## Completed Tasks
8
-
9
- - [x] 0.1 Create comprehensive PRD for publishing and release automation
10
- - [x] 0.2 Research Ruby ecosystem equivalents to Changesets
11
- - [x] 0.3 Define technical requirements and dependencies
12
- - [x] 0.4 Update approach to use Release Please (Google's tool)
13
- - [x] 0.5 Implement complete automated publishing and release system
14
-
15
- ## Pending Tasks
16
-
17
- ### Phase 1: Core Release Please Setup (Priority: High)
18
-
19
- #### 1.0 Set Up Release Please Configuration
20
-
21
- - [x] 1.1 Create `release-please-config.json` configuration file
22
- - [x] 1.2 Configure Release Please for Ruby gem with `release-type: ruby`
23
- - [x] 1.3 Set up conventional commits parsing for version bumping
24
- - [x] 1.4 Configure changelog generation from conventional commits
25
- - [x] 1.5 Test Release Please configuration with sample commits
26
-
27
- #### 2.0 Create Release Please Workflow
28
-
29
- - [x] 2.1 Create `.github/workflows/release-please.yml` workflow
30
- - [x] 2.2 Configure workflow to run on push to main branch
31
- - [x] 2.3 Set up permissions for creating/updating release PRs
32
- - [x] 2.4 Configure workflow to use `googleapis/release-please-action@v4`
33
- - [x] 2.5 Test workflow with sample conventional commits
34
-
35
- #### 3.0 Set Up RubyGems Trusted Publishing
36
-
37
- - [ ] 3.1 Configure trusted publishing on RubyGems.org (UI step) - **MANUAL STEP REQUIRED**
38
- - [x] 3.2 Create `.github/workflows/publish.yml` workflow
39
- - [x] 3.3 Configure workflow to trigger on GitHub Release published
40
- - [x] 3.4 Set up OIDC permissions (`id-token: write`, `contents: write`)
41
- - [x] 3.5 Configure `rubygems/release-gem@v1` action for publishing
42
-
43
- ### Phase 2: Quality Gates & Security (Priority: High)
44
-
45
- #### 4.0 Implement Quality Gates
46
-
47
- - [x] 4.1 Add test execution to release-please workflow (via enhanced main.yml)
48
- - [x] 4.2 Add RuboCop execution to release-please workflow (via enhanced main.yml)
49
- - [x] 4.3 Add bundle audit for security scanning (via enhanced main.yml)
50
- - [x] 4.4 Configure workflow to fail on quality gate failures
51
- - [x] 4.5 Test quality gates with intentional failures
52
-
53
- #### 5.0 Configure Dependabot
54
-
55
- - [x] 5.1 Create `.github/dependabot.yml` configuration file
56
- - [x] 5.2 Configure weekly dependency updates (Monday 9 AM)
57
- - [x] 5.3 Set up security update prioritization
58
- - [x] 5.4 Configure update strategy and labels
59
- - [x] 5.5 Test dependabot with sample dependency updates
60
-
61
- ### Phase 3: Documentation & Testing (Priority: Medium)
62
-
63
- #### 6.0 Documentation and Testing
64
-
65
- - [x] 6.1 Document the complete Release Please workflow (in PRD and task files)
66
- - [x] 6.2 Create troubleshooting guide for release failures (in PRD)
67
- - [x] 6.3 Test complete release workflow end-to-end (local testing completed)
68
- - [x] 6.4 Create release process checklist (in PRD)
69
- - [x] 6.5 Update README with release automation information (comprehensive documentation)
70
-
71
- #### 7.0 Monitoring and Maintenance
72
-
73
- - [x] 7.1 Set up release monitoring and alerts (via GitHub Actions)
74
- - [ ] 7.2 Create release metrics dashboard (optional - not needed for MVP)
75
- - [x] 7.3 Implement release health checks (via CI workflows)
76
- - [x] 7.4 Set up automated dependency security scanning (via Dependabot and bundle-audit)
77
- - [x] 7.5 Create maintenance procedures for release system (documented in PRD)
78
-
79
- ## Technical Dependencies
80
-
81
- ### Required Tools
82
-
83
- - **Release Please**: Google's tool for PR-based versioning and changelog generation
84
- - **Bundler's release tasks**: Built-in rake tasks (already present from `bundle gem`)
85
- - **bundle-audit**: Security scanning
86
- - **rubygems/release-gem**: GitHub Action for RubyGems publishing
87
-
88
- ### Configuration Files
89
-
90
- - `release-please-config.json`: Release Please configuration
91
- - `.github/dependabot.yml`: Dependency update configuration
92
- - `.github/workflows/release-please.yml`: Release PR workflow
93
- - `.github/workflows/publish.yml`: Publishing workflow
94
-
95
- ### RubyGems Configuration
96
-
97
- - Trusted publishing setup on RubyGems.org
98
- - GitHub OIDC configuration
99
- - MFA requirement enforcement
100
-
101
- ## Workflow Overview
102
-
103
- ### Release Please Workflow (release-please.yml)
104
-
105
- ```yaml
106
- name: release-please
107
- on:
108
- push:
109
- branches: [main]
110
- permissions:
111
- contents: write
112
- pull-requests: write
113
- jobs:
114
- release:
115
- runs-on: ubuntu-latest
116
- steps:
117
- - uses: googleapis/release-please-action@v4
118
- with:
119
- release-type: ruby
120
- ```
121
-
122
- ### Publishing Workflow (publish.yml)
123
-
124
- ```yaml
125
- name: publish-gem
126
- on:
127
- release:
128
- types: [published]
129
- permissions:
130
- id-token: write
131
- contents: write
132
- jobs:
133
- push:
134
- name: Push gem to RubyGems.org
135
- runs-on: ubuntu-latest
136
- steps:
137
- - uses: actions/checkout@v4
138
- with:
139
- persist-credentials: false
140
- - uses: ruby/setup-ruby@v1
141
- with:
142
- ruby-version: ruby
143
- bundler-cache: true
144
- - uses: rubygems/release-gem@v1
145
- ```
146
-
147
- ## Success Criteria
148
-
149
- - [x] Release Please creates release PRs automatically from conventional commits
150
- - [x] Version file (`lib/opaque_id/version.rb`) is automatically updated
151
- - [x] Changelog is automatically generated from conventional commits
152
- - [x] Merging release PR creates GitHub Release and publishes to RubyGems.org
153
- - [x] All quality gates pass before release
154
- - [x] Dependencies are automatically updated weekly
155
- - [x] No manual intervention required for releases (except RubyGems trusted publishing setup)
156
- - [x] RubyGems trusted publishing works without API keys
157
-
158
- ## Relevant Files
159
-
160
- - `release-please-config.json` - Release Please configuration
161
- - `.github/workflows/release-please.yml` - Release PR workflow
162
- - `.github/workflows/publish.yml` - Publishing workflow
163
- - `.github/dependabot.yml` - Dependency update configuration
164
- - `lib/opaque_id/version.rb` - Version file for automatic updates
165
- - `CHANGELOG.md` - Auto-generated changelog
166
- - `opaque_id.gemspec` - Gem specification
167
- - `Rakefile` - Rake tasks for building and releasing
168
-
169
- ## Notes
170
-
171
- - This approach uses the widely-adopted Ruby ecosystem standard
172
- - Release Please provides the same ergonomics as Changesets
173
- - Uses RubyGems trusted publishing for enhanced security
174
- - Fully automated process with PR-based releases
175
- - Based on conventional commits specification
176
- - Compatible with existing gem structure and dependencies
177
- - No need for commitlint or pre-commit hooks (Release Please handles conventional commits)
@@ -1,84 +0,0 @@
1
- # Task List: OpaqueId Documentation Site
2
-
3
- ## Relevant Files
4
-
5
- - `docs/_config.yml` - Jekyll configuration file for the documentation site
6
- - `docs/Gemfile` - Ruby dependencies for Jekyll and Just the Docs theme
7
- - `docs/index.md` - Homepage of the documentation site
8
- - `docs/getting-started.md` - Quick start guide for developers
9
- - `docs/installation.md` - Detailed installation instructions
10
- - `docs/usage.md` - Usage examples and integration guides
11
- - `docs/configuration.md` - Configuration options and examples
12
- - `docs/alphabets.md` - Built-in alphabets and custom alphabet guide
13
- - `docs/algorithms.md` - Technical details about algorithms
14
- - `docs/performance.md` - Performance benchmarks and optimization
15
- - `docs/security.md` - Security considerations and best practices
16
- - `docs/use-cases.md` - Real-world examples and applications
17
- - `docs/development.md` - Contributing guidelines and development setup
18
- - `docs/api-reference.md` - Complete API documentation
19
- - `docs/assets/images/` - Directory for documentation images and assets
20
- - `.github/workflows/docs.yml` - GitHub Actions workflow for documentation deployment
21
- - `README.md` - Source content for documentation migration
22
-
23
- ### Notes
24
-
25
- - The documentation site will be completely separate from the main gem codebase
26
- - Jekyll uses Markdown files with YAML front matter for page configuration
27
- - GitHub Pages will automatically build and deploy the Jekyll site
28
- - All content will be manually migrated from the existing README.md
29
-
30
- ## Tasks
31
-
32
- - [x] 1.0 Set up Jekyll site structure and configuration
33
-
34
- - [x] 1.1 Create `/docs` directory structure
35
- - [x] 1.2 Initialize Jekyll site with `jekyll new docs --force`
36
- - [x] 1.3 Configure `_config.yml` for Just the Docs theme and GitHub Pages
37
- - [x] 1.4 Set up `Gemfile` with just-the-docs gem and GitHub Pages plugins
38
- - [x] 1.5 Configure site metadata (title, description, author, URL)
39
- - [x] 1.6 Set up proper permalinks and URL structure
40
- - [x] 1.7 Configure search functionality and navigation settings
41
-
42
- - [x] 2.0 Create GitHub Actions workflow for documentation deployment
43
-
44
- - [x] 2.1 Create `.github/workflows/docs.yml` workflow file
45
- - [x] 2.2 Configure workflow to trigger on pushes to main branch
46
- - [x] 2.3 Set up Jekyll build process with proper Ruby version
47
- - [x] 2.4 Configure GitHub Pages deployment with proper permissions
48
- - [x] 2.5 Add error handling and build status notifications
49
- - [x] 2.6 Test workflow with initial deployment
50
-
51
- - [x] 3.0 Migrate and organize content from README into documentation pages
52
-
53
- - [x] 3.1 Create homepage (`index.md`) with overview, badges, and introduction
54
- - [x] 3.2 Extract and create getting-started.md with quick start guide
55
- - [x] 3.3 Migrate installation content to installation.md with all methods
56
- - [x] 3.4 Create usage.md with standalone and ActiveRecord examples
57
- - [x] 3.5 Extract configuration options to configuration.md with examples
58
- - [x] 3.6 Create alphabets.md with built-in alphabets and custom guide
59
- - [x] 3.7 Migrate algorithm details to algorithms.md with technical explanations
60
- - [x] 3.8 Create performance.md with benchmarks and optimization tips
61
- - [x] 3.9 Extract security content to security.md with best practices
62
- - [x] 3.10 Create use-cases.md with real-world examples and applications
63
- - [x] 3.11 Migrate development content to development.md with setup instructions
64
- - [x] 3.12 Create api-reference.md with complete method documentation
65
-
66
- - [x] 4.0 Implement navigation structure and cross-references
67
-
68
- - [x] 4.1 Configure navigation in `_config.yml` with proper page ordering
69
- - [x] 4.2 Add proper YAML front matter to all pages with titles and descriptions
70
- - [x] 4.3 Create cross-references between related pages using markdown links
71
- - [x] 4.4 Add table of contents to longer pages using Just the Docs features
72
- - [x] 4.5 Implement proper heading hierarchy for consistent navigation
73
- - [x] 4.6 Add breadcrumb navigation where appropriate
74
- - [x] 4.7 Test navigation flow and ensure all links work correctly
75
-
76
- - [x] 5.0 Configure Just the Docs theme and optimize for GitHub Pages
77
- - [x] 5.1 Customize theme colors and branding to match OpaqueId
78
- - [x] 5.2 Configure code syntax highlighting for Ruby examples
79
- - [x] 5.3 Set up responsive design and mobile optimization
80
- - [x] 5.4 Add SEO meta tags and Open Graph properties
81
- - [x] 5.5 Configure sitemap and RSS feed generation
82
- - [x] 5.6 Optimize page loading speed and performance
83
- - [x] 5.7 Test site functionality across different browsers and devices
84
- - [x] 5.8 Validate HTML and accessibility compliance