voxpupuli / voxpupuli/puppet-php

Non idempotence for 8 PHP extensions: apcu, ctype, dom, iconv, imagick, posix, xmlreader, xmlwriter

Open
#548 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Puppet
Stars
86
Forks
264
Avg merge
29m
Merged PRs (30d)
1

Description

Affected Puppet, Ruby, OS and module versions/distributions

  • Puppet: 5, 6, 6-nightly
  • Ruby: 2.5.3
  • Distribution: Ubuntu 18.04
  • Module version: 7.0.1-rc0

How to reproduce (e.g Puppet code you use)

See:

  • #540 apcu
  • #541 ctype
  • #542 dom
  • #543 iconv
  • #544 imagick
  • #545 posix
  • #546 xmlreader
  • #547 xmlwriter

What are you seeing

Travis acceptance tests are red on test applies idempotently

What behaviour did you expect instead

Travis acceptance tests should be green on applies idempotently

Any additional information you'd like to impart

Context: I'm working to create a component module for NextCloud, which requires a lot of PHP extensions.

It seems those 8 PHP extension (apcu, ctype, dom, iconv, imagick, posix, xmlreader, xmlwriter) are not idempotent on installation, but as I am not a Puppet expert, I'd be really happy to have some feedback.

What I've done:

  • Following @Dan33l recommendations, I refactored acceptance tests to clearly separate applies without error test from applies idempotently test. This is done in PR #539, which is green on all tests. I've also added 6 more extensions (bz2, curl, intl, json, mbstring, zip) to have comparison points.
  • Based on #539, I created 8 new PR (one for each extension) to highlight each extension idempotence status.
    • #540 apcu
    • #541 ctype
    • #542 dom
    • #543 iconv
    • #544 imagick
    • #545 posix
    • #546 xmlreader
    • #547 xmlwriter
  • For now, I just worked on identifying the issue, and sharing it to gather early feedback. I did not dive in actual code yet.
  • In a way, this could be related to #391 but I'm not so sure.

This is my first significant issue reporting, so feel free to correct me, give feedback and point me to suitable documentation if I ever made something wrong :)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the Travis acceptance test named "applies idempotently" and compare the refactoring in PR #539 with the extension-specific PRs #540-#547. Investigate why apcu, ctype, dom, iconv, imagick, posix, xmlreader, and xmlwriter fail while the comparison extensions pass. Done means the affected extension installations apply idempotently and the acceptance tests are green.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
devops, testing-qa
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.