Skip to content

Initial Gem scaffold#1

Merged
ramereth merged 10 commits intotest-kitchen:mainfrom
ramereth:initial-gem-scaffold
Apr 24, 2026
Merged

Initial Gem scaffold#1
ramereth merged 10 commits intotest-kitchen:mainfrom
ramereth:initial-gem-scaffold

Conversation

@ramereth
Copy link
Copy Markdown
Contributor

  • Add initial kitchen-cinc gem scaffold
  • Remove Chef compatibility alias files
  • Add CI workflows and project configs
  • Add dokken config and update integration tests
  • Add project docs and default product_name to cinc

Description

Please describe what this change achieves

Issues Resolved

List any existing issues this PR resolves, or any Discourse or
StackOverflow discussions that are relevant

Type of Change

Our release process assumes you are using Conventional Commit messages.

The most important prefixes you should have in mind are:

  • _fix_: which represents bug fixes, and correlates to a SemVer patch.
  • _feat_: which represents a new feature, and correlates to a SemVer minor.
  • _feat!_:, or fix!:, refactor!:, etc., which represent a breaking change (indicated by the !) and will result in a major version change.

If you have not included a conventional commit message this can be fixed on merge.

Check List

@ramereth ramereth closed this Apr 19, 2026
@ramereth ramereth reopened this Apr 20, 2026
@ramereth ramereth force-pushed the initial-gem-scaffold branch from 4c383ff to 5993a3e Compare April 20, 2026 03:16
@Stromweld Stromweld marked this pull request as ready for review April 20, 2026 18:11
- Cinc provisioners: CincInfra, CincSolo, CincApply, CincTarget, CincZero
- Chef compatibility aliases for all provisioner classes
- Cinc-specific omnitruck URLs (omnitruck.cinc.sh)
- Cinc binary names (cinc-client, cinc-solo, cinc-apply)
- Policyfile CLI lookup: cinc-cli, cinc, chef-cli, chef
- No license-acceptance dependency or enterprise gem delegation
- Support scripts for init/install commands (sh and ps1)
- Unit tests (Minitest) for all provisioners
- Integration test cookbook and kitchen.yml
- Cookstyle/RuboCop configuration targeting Ruby 3.4

Signed-off-by: Lance Albertson <lance@osuosl.org>
- Remove chef_base.rb, chef_infra.rb, chef_solo.rb, chef_apply.rb,
  chef_target.rb, chef_zero.rb alias files
- Avoids constant conflicts with kitchen-omnibus-chef
- Clean separation between Cinc and Chef provisioners

Signed-off-by: Lance Albertson <lance@osuosl.org>
- Add kitchen.dokken.yml using cincproject/cinc Docker image
- Update test cookbook to create a directory (matches upstream pattern)
- Add directory existence check to integration spec
- Update kitchen.yml platforms to ubuntu-24.04 and almalinux-9
- Enable deprecations_as_errors in kitchen.yml

Signed-off-by: Lance Albertson <lance@osuosl.org>
- Rewrite README.md with full usage and configuration docs
- Add CHANGELOG.md scaffold for 0.1.0
- Add CODEOWNERS pointing to @cinc-project/maintainers
- Add CONTRIBUTING.md with release process
- Default product_name to 'cinc' in CincBase (uses modern install path)
- Update specs to match new product_name default

Signed-off-by: Lance Albertson <lance@osuosl.org>
@ramereth ramereth force-pushed the initial-gem-scaffold branch from 5993a3e to 1e2c3e4 Compare April 20, 2026 20:14
@Stromweld Stromweld marked this pull request as draft April 20, 2026 20:25
Fixes issue where configuration values containing double quotes were not
properly escaped when generating client.rb/solo.rb files, causing JSON
parsing failures with 'Unmatched quote' errors.

- Update format_value() to escape both double quotes and backslashes
  using regex /["\\]/ instead of only escaping backslashes
- Add three unit tests to verify proper escaping of quotes and backslashes
  in configuration values

Signed-off-by: Lance Albertson <lance@osuosl.org>
@ramereth ramereth force-pushed the initial-gem-scaffold branch 5 times, most recently from 6655a8f to e162b1e Compare April 21, 2026 18:18
- Replace the single dokken job with dedicated ubuntu, macos, and windows
  integration jobs.
- Add a shared kitchen.exec.yml profile that uses the exec driver and transport
  with the cinc_infra provisioner.
- Define localhost and windows-localhost platforms and target each job at its
  exact instance name to prevent pattern over-matching.
- Set sudo_command to plain sudo on the provisioner so sudoers env_reset strips
  host Ruby and Bundler env (RUBYOPT, RUBYLIB, GEM_PATH, GEM_HOME, BUNDLE_*)
  before launching cinc-client on linux and macos.
- Add a Windows command_prefix that switches to TEMP and clears Bundler and
  RubyGems env (including BUNDLE_IGNORE_CONFIG) so cinc embedded ruby does not
  auto-discover the workspace Gemfile or .bundle/config and load host-built
  native extensions from vendor/bundle.
- Remove kitchen.dokken.yml; CI no longer uses dokken.
- Capture kitchen logs, diagnose output, and generated client.rb/solo.rb on
  failure for each platform to aid debugging.

Signed-off-by: Lance Albertson <lance@osuosl.org>
- Rename require_chef_omnibus -> require_cinc_omnibus
- Rename chef_omnibus_url -> cinc_omnibus_url
- Rename chef_omnibus_install_options -> cinc_omnibus_install_options
- Rename chef_omnibus_root -> cinc_omnibus_root
- Rename chef_apply_path -> cinc_apply_path
- Rename chef_client_path -> cinc_client_path
- Rename chef_solo_path -> cinc_solo_path
- Rename chef_zero_host -> cinc_zero_host
- Rename chef_zero_port -> cinc_zero_port
- Drop deprecated config options (require_cinc_omnibus, cinc_omnibus_url,
  cinc_omnibus_install_options, install_msi_url, chef_metadata_url) and the
  doctor hook that reported them; this is a fresh provisioner with no
  back-compat burden
- Drop install_msi_url plumbing from install_options
- Leave chef_server_url (rendered into client.rb) and the --chef-zero-host /
  --chef-zero-port CLI flags untouched; those are external interfaces consumed
  by cinc-client itself

Signed-off-by: Lance Albertson <lance@osuosl.org>
- Update copyright headers from 2025 Cinc Project to 2026 Oregon State
  University across all source and spec files
- Update gem homepage and repository URIs to point to GitHub
  (test-kitchen/kitchen-cinc)
- Add Lance Albertson to gem authors and email metadata

Signed-off-by: Lance Albertson <lance@osuosl.org>
- Add docs/ folder with an index plus topical pages for provisioners,
  installation, converge, cookbook resolution, paths, and target mode
- Document every option exposed via default_config across CincBase,
  CincInfra, CincSolo, CincApply, and CincTarget
- Replace the inline option list in README.md with links into docs/

Signed-off-by: Lance Albertson <lance@osuosl.org>
@ramereth ramereth force-pushed the initial-gem-scaffold branch from 6f703a2 to 4c4b5cd Compare April 21, 2026 23:19
- Drop require_cinc_omnibus, cinc_omnibus_url, and cinc_omnibus_install_options
  config options
- Remove the Mixlib::Install::ScriptGenerator code path
  (script_for_omnibus_version, install_options, add_omnibus_directory_option,
  omnibus_dir_option)
- Remove the product_version helper (was only needed to reconcile
  require_cinc_omnibus with product_version)
- Simplify install_command to the product-name-driven Mixlib::Install path and
  inline script_for_product as install_script_contents
- Drop all related specs and the mixlib/install/script_generator require
- Update installation.md to document a single install code path and drop
  target-mode.md's reference to require_cinc_omnibus

Signed-off-by: Lance Albertson <lance@osuosl.org>
@ramereth ramereth marked this pull request as ready for review April 24, 2026 01:24
@ramereth ramereth requested a review from Stromweld April 24, 2026 01:24
Copy link
Copy Markdown
Contributor

@Stromweld Stromweld left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@ramereth ramereth merged commit 2e9a132 into test-kitchen:main Apr 24, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants