The Puppet Labs Issue Tracker has Moved: https://tickets.puppetlabs.com

Feature #14651

Ability to exclude particular items from a built module

Added by Ryan Coleman over 2 years ago. Updated 9 months ago.

Status:AcceptedStart date:05/22/2012
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:pmtSpent time:-
Target version:PMT v3
Keywords:forge module-tool Affected URL:
Branch:

We've Moved!

Ticket tracking is now hosted in JIRA: https://tickets.puppetlabs.com

This ticket is now tracked at: https://tickets.puppetlabs.com/browse/FORGE-56


Description

As we figure out how to solve robust testing and development workflows for Puppet modules, modules are increasingly littered with files that aid in that process. My concern is that as the number of these files grow, they may be undesirable to sysadmins that just want to download a module to manage their systems.

How should we resolve this?


Related issues

Related to Puppet - Feature #3991: Tool should ignore VCS artifacts when buiding new module Duplicate 06/10/2010
Related to Puppet Forge - Bug #17935: Internal server error while uploading new release Accepted

History

#1 Updated by Ryan Coleman over 2 years ago

  • Subject changed from puppet module build should support an ignore file to How should we handle testing & development content in Forge modules
  • Description updated (diff)

#2 Updated by Ryan Coleman over 2 years ago

(changed the ticket to be less about the solution, more about the problem)

Potential Solution:

One should be able to include an ignore file in the root of a module that puppet module build will use to exclude certain items from inclusion in the forge tarball.

Example:

$modulepath/foo/.forgeignore

.gitignore
Gemfile
.travis.yml

Alternatively, perhaps these files -are- sent to the Forge but aren’t included by default unless the user specifies —all or —development. Just a thought.

#3 Updated by Kelsey Hightower about 2 years ago

  • Status changed from Unreviewed to Accepted
  • Assignee set to Ryan Coleman

Should we consider making a wiki page for this?

#4 Updated by Ryan Coleman about 2 years ago

Hey Kelsey, I think I’ll try kicking off a conversation next week on this and see what people have to say.

I’ve been waiting and watching what BD is doing in this space which is morphing & evolving by the day.

#5 Updated by Dominic Cleal almost 2 years ago

This is biting me a bit, because my module directory is filling up with files that I don’t even want to push to the forge for developers, let alone to sysadmins. As an example, I’m using librarian-puppet and submodules to pull down other dependencies, so developers are able to do this themselves without it needing to be tarred up during a puppet module generate.

I’d prefer to see a .moduleignore rather than a .forgeignore to ensure files never make it into the tarball rather than Forge-side “filtering”.

Edit: I see puppet module already has a limited filter using a hardcoded list of files in lib/puppet/module_tool.rb.

#6 Updated by Ryan Coleman almost 2 years ago

  • Subject changed from How should we handle testing & development content in Forge modules to Forge modules need an ignore file
  • Description updated (diff)

We’ll definitely be doing something like this, just a matter of priority and implementation at this point. Stay tuned for details.

#7 Updated by Ryan Coleman almost 2 years ago

  • Parent task set to #15003

Tacking this onto programatic module publishing for now since it only becomes more critical to do this once the publish process is no longer manual.

#8 Updated by Ryan Coleman over 1 year ago

  • Category set to pmt
  • Target version set to PMT v3

#9 Updated by Ken Barber over 1 year ago

This would help with cases like this:

https://groups.google.com/a/puppetlabs.com/forum/#!topic/pe-users/jRlEeW6kdr4

Either an ignore file, or having the ability to specifically include content during build would help.

As a work-around, I’m having to strip out the ‘spec’ directory first and tarring it myself (this also means I can set the permissions of the tarball to work around that problem as well).

#10 Updated by Ryan Coleman over 1 year ago

  • Subject changed from Forge modules need an ignore file to Ability to exclude particular items from a built module
  • Assignee deleted (Ryan Coleman)
  • Parent task deleted (#15003)

#11 Updated by James Shubin about 1 year ago

FWIW this sort of feature is pretty crucial for devs even caring the puppet forge exists.

I have been publishing my puppet modules on github.

https://github.com/purpleidea/

Each module has it’s own git repo, which is where I do my coding. I typically have some personal “hack” directories like tmp/, or foobar/, which are in my .gitignore. These are absolutely not to be pushed publicly or stored in git.

I figured I would try to contribute to the forge, but I’m not deleting my personal hack dirs to do so. If someone has an interim script to do whatever build needs to do, that would be great. It would also make a whole lot of sense if it could upload the tarball too. Basically ‘git push’ is the easiest/best solution at the moment.

Hopefully puppet devs can appreciate the desire for this to be effortless and automatic.

Cheers!

#12 Updated by Anonymous 9 months ago

Redmine Issue #14651 has been migrated to JIRA:

https://tickets.puppetlabs.com/browse/FORGE-56

Also available in: Atom PDF