falkorlib 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 38bfe617392f042fbe43a3e60b45d33f87b94c88
4
- data.tar.gz: 2cb0eb72bca03898d749989e5b2866a903198384
3
+ metadata.gz: 41cf1812507626ce7b0667e4356fa5b312ff45ab
4
+ data.tar.gz: 0c25f1428c8a36b9aecfb19be41679883aead93b
5
5
  SHA512:
6
- metadata.gz: b1aa919917033fe8fd0f9cc6dca58fb7d60bf4da33ae99904e900fc8eaf5ef475ee8fec187e6b41926a585194c450bab65d428dd36aa435fa765b8b93ff3cc98
7
- data.tar.gz: a765a716ba617bf32a40f17ead40ae5e322a77d43046b80c15a48b200ad1b76589acea7247206bf6077b0657ca7575bf4757e82c64d7f14cd695ee046594fe7e
6
+ metadata.gz: 4530b721c14523c1eb99db1db0b40a09fbb9991f2518206f1b4f93be908d5d63196cb705aa32761624f38ab2a7756b7b31d0c333191fcc42acf4267e12dfae49
7
+ data.tar.gz: 67355b7d06502993823aa49b597bcf4ef10571b2bce3f52a161bde77dd9dc346566d8ec35cf2fbe854484d4f6164029f6022c9ec4b0956ef3e7d7cdb27b1edb7
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- falkorlib (0.5.0)
4
+ falkorlib (0.5.1)
5
5
  artii (>= 2.1)
6
6
  awesome_print (~> 1.2)
7
7
  configatron (~> 3.2)
@@ -1,6 +1,6 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  ################################################################################
3
- # Time-stamp: <Fri 2015-05-08 16:33 svarrette>
3
+ # Time-stamp: <Fri 2015-05-15 23:24 svarrette>
4
4
  ################################################################################
5
5
  # Interface for the main Puppet Module operations
6
6
  #
@@ -24,7 +24,7 @@ module FalkorLib #:nodoc:
24
24
  :version => '0.0.1',
25
25
  :author => "#{ENV['GIT_AUTHOR_NAME']}",
26
26
  :mail => "#{ENV['GIT_AUTHOR_EMAIL']}",
27
- :summary => "rtfm",
27
+ :summary => "Configure and manage rtfm",
28
28
  :description => '',
29
29
  :license => 'Apache-2.0',
30
30
  :source => '',
@@ -89,7 +89,8 @@ module FalkorLib #:nodoc:
89
89
  config = {}
90
90
  #login = `whoami`.chomp
91
91
  config[:name] = name unless name.empty?
92
- moduledir = name.empty? ? rootdir : File.join(rootdir, name)
92
+ moduledir = rootdir
93
+ #name.empty? ? rootdir : File.join(rootdir, name)
93
94
  FalkorLib::Config::Puppet::Modules::DEFAULTS[:metadata].each do |k,v|
94
95
  next if v.kind_of?(Array) or k == :license
95
96
  next if k == :name and ! name.empty?
@@ -111,8 +112,9 @@ module FalkorLib #:nodoc:
111
112
  end
112
113
  config[k.to_sym] = ask( "\t" + sprintf("%-20s", "Module #{k}"), default_answer)
113
114
  end
114
- config[:shortname] = name = config[:name].gsub(/.*-/, '')
115
- tags = ask("\tKeywords (comma-separated list of tags)", name)
115
+ config[:shortname] = name = config[:name].gsub(/.*[-\/]/, '')
116
+ config[:docs_project] = ask("\tRead the Docs (RTFD) project:", config[:name].downcase.gsub(/\//,'-puppet-'))
117
+ tags = ask("\tKeywords (comma-separated list of tags)", config[:shortname])
116
118
  config[:tags] = tags.split(',')
117
119
  list_license = FalkorLib::Config::Puppet::Modules::DEFAULTS[:licenses]
118
120
  default_license = FalkorLib::Config::Puppet::Modules::DEFAULTS[:metadata][:license]
@@ -144,7 +146,8 @@ module FalkorLib #:nodoc:
144
146
  newname = e.gsub(/templatename/, "#{name}")
145
147
  run %{ mv #{e} #{newname} }
146
148
  end
147
-
149
+ # Update docs directory
150
+ run %{ ln -s ../README.md #{moduledir}/docs/overview.md }
148
151
  info "Generating the License file"
149
152
  authors = config[:author].empty? ? 'UNKNOWN' : config[:author]
150
153
  Dir.chdir(moduledir) do
@@ -167,7 +170,7 @@ module FalkorLib #:nodoc:
167
170
  FalkorLib::GitFlow.start('feature', "bootstrapping", moduledir)
168
171
  end
169
172
  [ 'metadata.json',
170
- 'doc/', 'LICENSE', '.gitignore', '.ruby-version', '.ruby-gemset',
173
+ 'docs/', 'LICENSE', '.gitignore', '.ruby-version', '.ruby-gemset',
171
174
  'Gemfile', '.vagrant_init.rb', 'Rakefile', 'Vagrantfile' ].each do |f|
172
175
  FalkorLib::Git.add(File.join(moduledir, f))
173
176
  end
@@ -184,8 +187,9 @@ module FalkorLib #:nodoc:
184
187
  })
185
188
  name = File.basename(moduledir)
186
189
  metadata = metadata(moduledir, {
187
- :use_symbols => false,
188
- :extras => false
190
+ :use_symbols => false,
191
+ :extras => false,
192
+ :no_interaction => options[:no_interaction]
189
193
  })
190
194
  puts "**********************"
191
195
  puts metadata.to_yaml
@@ -240,7 +244,8 @@ module FalkorLib #:nodoc:
240
244
  #
241
245
  def metadata(moduledir = Dir.pwd, options = {
242
246
  :use_symbols => true,
243
- :extras => true
247
+ :extras => true,
248
+ :no_interaction => false
244
249
  })
245
250
  add_extras = options[:extras].nil? ? true : options[:extras]
246
251
  name = File.basename( moduledir )
@@ -249,6 +254,7 @@ module FalkorLib #:nodoc:
249
254
  error "Unable to find #{jsonfile}" unless File.exist?( jsonfile )
250
255
  metadata = JSON.parse( IO.read( jsonfile ) )
251
256
  if add_extras
257
+ metadata["docs_project"] = ask("\tRead the Docs (RTFD) project:", "#{name.downcase.gsub(/\//,'-puppet-')}") if metadata["docs_project"].nil?
252
258
  metadata[:shortname] = name.gsub(/.*-/, '')
253
259
  metadata[:platforms] = []
254
260
  metadata["operatingsystem_support"].each do |e|
@@ -293,7 +299,12 @@ module FalkorLib #:nodoc:
293
299
  metadata = metadata(moduledir)
294
300
  templatedir = File.join( FalkorLib.templates, 'puppet', 'modules')
295
301
  i = 0
296
- update_from_erb = [ 'README.md', 'doc/contributing.md', 'doc/vagrant.md']
302
+ update_from_erb = [
303
+ 'README.md',
304
+ 'docs/contacts.md',
305
+ 'docs/contributing/index.md', 'docs/contributing/layout.md', 'docs/contributing/setup.md', 'docs/contributing/versioning.md',
306
+ 'docs/index.md', 'docs/rtfd.md', 'docs/vagrant.md'
307
+ ]
297
308
  (update_from_erb + [ 'Gemfile', 'Rakefile', 'Vagrantfile', '.vagrant_init.rb' ]).each do |f|
298
309
  next unless options[:exclude].nil? or ! options[:exclude].include?( f )
299
310
  next unless options[:only].nil? or options[:only].include?(f)
@@ -301,7 +312,7 @@ module FalkorLib #:nodoc:
301
312
  ans = options[:no_interaction] ? 'Yes' : ask(cyan("==> procceed? (Y|n)"), 'Yes')
302
313
  next if ans =~ /n.*/i
303
314
  if update_from_erb.include?(f)
304
- ap "=> updating #{f}.erb"
315
+ puts "=> updating #{f}.erb"
305
316
  i += write_from_erb_template(File.join(templatedir, "#{f}.erb"),
306
317
  File.join(moduledir, f),
307
318
  metadata,
@@ -1,7 +1,7 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  ################################################################################
3
3
  # puppet_modules.rake - Special tasks for the management of Puppet modules
4
- # Time-stamp: <Fri 2015-05-08 17:06 svarrette>
4
+ # Time-stamp: <Fri 2015-05-15 18:24 svarrette>
5
5
  #
6
6
  # Copyright (c) 2014 Sebastien Varrette <Sebastien.Varrette@uni.lu>
7
7
  # http://varrette.gforge.uni.lu
@@ -24,10 +24,10 @@ namespace :bootstrap do
24
24
  name = args.name == 'name' ? ask("Enter the module name") : args.name
25
25
  error "You need to provide a module name" unless name != ''
26
26
  error "The module name cannot contain spaces" if name =~ /\s+/
27
- moduledir = File.join( FalkorLib.config[:puppet][:modulesdir], name)
27
+ moduledir = File.join( FalkorLib.config[:puppet][:modulesdir], name.gsub(/^\w*\//,'puppet-'))
28
28
  dir = ask("Destination directory:", moduledir)
29
29
  error "The module '#{name}' already exists" if File.directory?(dir)
30
- FalkorLib::Puppet::Modules.init(dir)
30
+ FalkorLib::Puppet::Modules.init(dir, name)
31
31
  end
32
32
 
33
33
 
@@ -128,14 +128,16 @@ namespace :templates do
128
128
  FalkorLib::Puppet::Modules.upgrade()
129
129
  end
130
130
 
131
- [ 'readme', 'rake', 'vagrant' ].each do |t|
131
+ [ 'docs', 'readme', 'rake', 'vagrant' ].each do |t|
132
132
  ########### templates:upgrade:{readme,rake,vagrant} ###########
133
133
  desc "Upgrade (overwrite) #{t.capitalize} using the current FalkorLib template"
134
134
  task t.to_sym do
135
135
  list = case t
136
136
  when 'readme'
137
- [ 'README.md', 'doc/contributing.md', 'doc/vagrant.md' ]
138
- when 'rake'
137
+ [ 'README.md' ]
138
+ when 'docs'
139
+ [ 'contacts.md', 'contributing/index.md', 'contributing/layout.md', 'contributing/setup.md', 'contributing/versioning.md', 'index.md', 'rtfd.md', 'vagrant.md' ]
140
+ when 'rake'
139
141
  [ 'Gemfile', 'Rakefile' ]
140
142
  when 'vagrant'
141
143
  [ 'Vagrantfile', '.vagrant_init.rb']
@@ -19,7 +19,7 @@ module FalkorLib #:nodoc:
19
19
  # MAJOR: Defines the major version
20
20
  # MINOR: Defines the minor version
21
21
  # PATCH: Defines the patch version
22
- MAJOR, MINOR, PATCH = 0, 5, 0
22
+ MAJOR, MINOR, PATCH = 0, 5, 1
23
23
 
24
24
  module_function
25
25
 
@@ -2,7 +2,7 @@
2
2
  #########################################
3
3
  # puppet_modules_spec.rb
4
4
  # @author Sebastien Varrette <Sebastien.Varrette@uni.lu>
5
- # Time-stamp: <Fri 2015-05-08 16:36 svarrette>
5
+ # Time-stamp: <Fri 2015-05-15 23:24 svarrette>
6
6
  #
7
7
  # @description Check the Puppet Modules operations
8
8
  #
@@ -40,7 +40,7 @@ describe FalkorLib::Puppet::Modules do
40
40
 
41
41
  it "#init -- create a puppet module" do
42
42
  # Prepare answer to the questions
43
- Array.new(16).each { |e| STDIN.should_receive(:gets).and_return('') }
43
+ Array.new(17).each { |e| STDIN.should_receive(:gets).and_return('') }
44
44
  FalkorLib::Puppet::Modules.init(moduledir)
45
45
  templatedir = File.join( FalkorLib.templates, 'puppet', 'modules')
46
46
  s = true
@@ -52,7 +52,7 @@ describe FalkorLib::Puppet::Modules do
52
52
  filename = File.basename(file)
53
53
  filename = File.basename(file, '.erb') unless file =~ /templates\/toto-variables\.erb/
54
54
  f = File.join(moduledir, relative_dir, filename)
55
- #puts "checking #{f} - #{File.exists?( f )}"
55
+ puts "checking #{f} - #{File.exists?( f )}"
56
56
  s &= File.exists?( f )
57
57
  end
58
58
  s.should be_true
@@ -147,7 +147,7 @@ describe FalkorLib::Puppet::Modules do
147
147
  ]
148
148
  end
149
149
 
150
- upgraded_files_default = 2
150
+ upgraded_files_default = 1
151
151
  it "#upgrade" do
152
152
  d = FalkorLib::Puppet::Modules.upgrade(moduledir, {
153
153
  :no_interaction => true
@@ -2,7 +2,7 @@
2
2
  #########################################
3
3
  # versioning_puppet_module_spec.rb
4
4
  # @author Sebastien Varrette <Sebastien.Varrette@uni.lu>
5
- # Time-stamp: <Fri 2015-05-08 16:28 svarrette>
5
+ # Time-stamp: <Fri 2015-05-15 23:28 svarrette>
6
6
  #
7
7
  # @description Check the versioning operations on Gems
8
8
  #
@@ -53,7 +53,7 @@ describe FalkorLib::Versioning::Puppet do
53
53
 
54
54
  ap default_version
55
55
  it "#get_version -- get default version #{default_version} after initialization" do
56
- Array.new(16).each { |e| STDIN.should_receive(:gets).and_return('') }
56
+ Array.new(17).each { |e| STDIN.should_receive(:gets).and_return('') }
57
57
  FalkorLib::Puppet::Modules.init(moduledir)
58
58
  v = FalkorLib::Versioning.get_version(moduledir)
59
59
  v.should == default_version
@@ -5,6 +5,7 @@
5
5
  [![Puppet Forge](http://img.shields.io/puppetforge/v/<%= config[:name].gsub(/-/,"/") %>.svg)](<%= config[:forge_url] %>)
6
6
  [![License](http://img.shields.io/:license-<%= config[:license].gsub(/-/, '') %>-blue.svg)](LICENSE)
7
7
  ![Supported Platforms](http://img.shields.io/badge/platform-<%= config[:platforms].join('|') %>-lightgrey.svg)
8
+ [![Documentation Status](https://readthedocs.org/projects/<%= config[:docs_project] %>/badge/?version=latest)](https://readthedocs.org/projects/<%= config[:docs_project] %>/?badge=latest)
8
9
 
9
10
  <%= config[:summary] %>
10
11
 
@@ -12,7 +13,7 @@
12
13
  Copyright (c) <%= Time.now.year %> <%= config[:author] %> <<%= config[:mail] %>>
13
14
 
14
15
 
15
- * [Online Project Page](<%= config[:project_page] %>) -- [Sources](<%= config[:source] %>) -- [Issues](<%= config[:issues_url] %>)
16
+ | [Project Page](<%= config[:project_page] %>) | [Sources](<%= config[:source] %>) | [Documentation](httpd://<%= config[:docs_project] %>.readthedocs.org/en/latest/) | [Issues](<%= config[:issues_url] %>) |
16
17
 
17
18
  ## Synopsis
18
19
 
@@ -38,7 +39,7 @@ All these components are configured through a set of variables you will find in
38
39
  [`manifests/params.pp`](manifests/params.pp).
39
40
 
40
41
  _Note_: the various operations that can be conducted from this repository are piloted from a [`Rakefile`](https://github.com/ruby/rake) and assumes you have a running [Ruby](https://www.ruby-lang.org/en/) installation.
41
- See [`doc/contributing.md`](doc/contributing.md) for more details on the steps you shall follow to have this `Rakefile` working properly.
42
+ See `docs/contributing.md` for more details on the steps you shall follow to have this `Rakefile` working properly.
42
43
 
43
44
  ## Dependencies
44
45
 
@@ -57,7 +58,7 @@ It accepts the following parameters:
57
58
 
58
59
  * `$ensure`: default to 'present', can be 'absent'
59
60
 
60
- Use is as follows:
61
+ Use it as follows:
61
62
 
62
63
  include ' <%= config[:shortname] %>'
63
64
 
@@ -66,6 +67,8 @@ See also [`tests/init.pp`](tests/init.pp)
66
67
  <% unless config[:classes].nil? %>
67
68
  <% config[:classes].each do |cl| %>
68
69
  <% next if cl == config[:shortname] %>
70
+ <% next if cl =~ /common/ %>
71
+ <% next if cl =~ /params/ %>
69
72
  ### Class `<%= cl %>`
70
73
 
71
74
  See [`tests/<%= cl.gsub("#{config[:shortname]}::", "").gsub(/::/, '/') %>.pp`](tests/<%= cl.gsub("#{config[:shortname]}::", "").gsub(/::/, '/') %>.pp)
@@ -105,8 +108,8 @@ You can of course configure the <%= config[:shortname] %> module in your `Puppet
105
108
  or, if you prefer to work on the git version:
106
109
 
107
110
  mod "<%= config[:name] %>",
108
- :git => <%= config[:source] %>,
109
- :ref => <%= FalkorLib.config[:gitflow][:branches][:master] %>
111
+ :git => '<%= config[:source] %>',
112
+ :ref => '<%= FalkorLib.config[:gitflow][:branches][:master] %>'
110
113
 
111
114
  ## Issues / Feature request
112
115
 
@@ -115,7 +118,7 @@ You can submit bug / issues / feature request using the [<%= config[:name] %> Pu
115
118
  ## Developments / Contributing to the code
116
119
 
117
120
  If you want to contribute to the code, you shall be aware of the way this module is organized.
118
- These elements are detailed on [`doc/contributing.md`](doc/contributing.md)
121
+ These elements are detailed on [`docs/contributing.md`](contributing.md).
119
122
 
120
123
  You are more than welcome to contribute to its development by [sending a pull request](https://help.github.com/articles/using-pull-requests).
121
124
 
@@ -124,6 +127,11 @@ You are more than welcome to contribute to its development by [sending a pull re
124
127
  The best way to test this module in a non-intrusive way is to rely on [Vagrant](http://www.vagrantup.com/).
125
128
  The `Vagrantfile` at the root of the repository pilot the provisioning various vagrant boxes available on [Vagrant cloud](https://atlas.hashicorp.com/boxes/search?utf8=%E2%9C%93&sort=&provider=virtualbox&q=svarrette) you can use to test this module.
126
129
 
127
- See [`doc/vagrant.md`](doc/vagrant.md) for more details.
130
+ See [`docs/vagrant.md`](vagrant.md) for more details.
128
131
 
132
+ ## Online Documentation
133
+
134
+ [Read the Docs](https://readthedocs.org/) aka RTFD hosts documentation for the open source community and the [<%= config[:name] %>](<%= config[:projects_url] %>) puppet module has its documentation (see the `docs/` directly) hosted on [readthedocs](http://<%= config[:docs_project] %>.rtfd.org).
135
+
136
+ See [`docs/rtfd.md`](rtfd.md) for more details.
129
137
 
@@ -0,0 +1,10 @@
1
+ This Puppet Module has been implemented in the context of the [UL HPC](http://hpc.uni.lu) Platform of the [University of Luxembourg](http://www.uni.lu).
2
+ More precisely, the [UL HPC Management Team](https://hpc.uni.lu/about/team.html#system-administrators) took care of this development for this module.
3
+
4
+ You can submit bug / issues / feature request using the [<%= config[:name] %> Puppet Module Tracker](<%= config[:issues_url] %>).
5
+ Alternatively, you can contact them on the following email address: `hpc-sysadmins@uni.lu`
6
+
7
+
8
+
9
+
10
+
@@ -0,0 +1,14 @@
1
+ This project is released under the terms of the [<%= config[:license].capitalize %> Licence](LICENSE).
2
+ So you are more than welcome to contribute to its development as follows:
3
+
4
+ 1. Fork it
5
+ 2. Create your feature branch (`rake git:feature:start[<feature_name>]`)
6
+ 3. Commit your changes (`git commit -am 'Added some feature'`)
7
+ 4. Push to the branch (`git flow feature publish <feature_name>`)
8
+ 5. Create new Pull Request
9
+
10
+ This assumes that you have understood the [directory tree structure](layout.md) of this Puppet module.
11
+
12
+ There is also a number of pre-requisite programs / framework you shall install to be able to correctly contribute to this Puppet module. This is detailed in the [Repository Setup and Developments](setup.md) page.
13
+
14
+ Finally, you shall be aware of the way the [semantic versioning](versioning.md) procedure of this Puppet module are handled.
@@ -0,0 +1,32 @@
1
+ The directory hosting the implementation of this puppet module is organized as follows:
2
+
3
+ ```
4
+ .gitignore # Git ignore file
5
+ .ruby-{version,gemset} # [RVM](https://rvm.io/) configuration
6
+ .vagrant_init.rb # Vagrant provisionner to test this module
7
+ ├── Gemfile[.lock] # [Bundler](http://bundler.io/) configuration
8
+ ├── LICENSE # Licence file
9
+ ├── README.md # This file
10
+ ├── Rakefile # Definition of the [rake](https://github.com/jimweirich/rake) tasks
11
+ ├── Vagrantfile # Pilot Vagrant to test this module
12
+ ├── docs/ # [Read the Docs](readthedocs.org) main directory
13
+ ├── files/ # (eventually) Contains static files, which managed nodes can download
14
+ ├── lib/ # (eventually) Custom facts/type/provider definitions
15
+ ├── manifests/
16
+ │   ├── init.pp # Main manifests file which defines the sudo class
17
+ │   ├── common/
18
+ │   │   ├── debian.pp # Specific Debian setup for the main class
19
+ │   │   └── redhat.pp # Specific Redhat setup for the main class
20
+ │   ├── common.pp # Common class setup for all OS
21
+ │   ├── ... # Implementation of the other <%= config[:shortname] %>::* classes / definitions
22
+ │   └── params.pp # Class parameters
23
+ ├── metadata.json # Puppet module configuration file -- See http://tinyurl.com/puppet-metadata-json
24
+ ├── mkdocs.yml # [Read the Docs](readthedocs.org) configuration
25
+ ├── pkg/ # Hold build packages to be published on the [Puppet forge](<%= config[:forge_url] %>)
26
+ ├── spec/ # (eventually) [Rspec](https://www.relishapp.com/rspec/) tests
27
+ ├── templates/ # (eventually) Module ERB template files
28
+ └── tests/ # Tests cases for the module usage
29
+ ```
30
+
31
+ Globally, this module follows the [official PuppetLabs guidelines for the predictable directory tree structure of Puppet modules](http://docs.puppetlabs.com/puppet/latest/reference/modules_fundamentals.html#module-layout).
32
+
@@ -0,0 +1,53 @@
1
+ There is a number of pre-requisite programs / framework you shall install to be able to correctly contribute to this Puppet module.
2
+
3
+ ### Git Branching Model
4
+
5
+ The Git branching model for this repository follows the guidelines of [gitflow](http://nvie.com/posts/a-successful-git-branching-model/).
6
+ In particular, the central repository holds two main branches with an infinite lifetime:
7
+
8
+ * `<%= FalkorLib.config[:gitflow][:branches][:master] %>`: the branch holding tags of the successive releases of this tutorial
9
+ * `<%= FalkorLib.config[:gitflow][:branches][:develop] %>`: the main branch where the sources are in a state with the latest delivered development changes for the next release. This is the *default* branch you get when you clone the repository, and the one on which developments will take places.
10
+
11
+ You should therefore install [git-flow](https://github.com/nvie/gitflow), and probably also its associated [bash completion](https://github.com/bobthecow/git-flow-completion).
12
+
13
+ ### Ruby, [RVM](https://rvm.io/) and [Bundler](http://bundler.io/)
14
+
15
+ The various operations that can be conducted from this repository are piloted
16
+ from a `Rakefile` and assumes you have a running Ruby installation.
17
+
18
+ The bootstrapping of your repository is based on [RVM](https://rvm.io/), **thus
19
+ ensure this tools are installed on your system** -- see
20
+ [installation notes](https://rvm.io/rvm/install).
21
+
22
+ The ruby stuff part of this repository corresponds to the following files:
23
+
24
+ * `.ruby-{version,gemset}`: [RVM](https://rvm.io/) configuration, use the name of the
25
+ project as [gemset](https://rvm.io/gemsets) name
26
+ * `Gemfile[.lock]`: used by `[bundle](http://bundler.io/)`
27
+
28
+ ### Repository Setup
29
+
30
+ Then, to make your local copy of the repository ready to use the [git-flow](https://github.com/nvie/gitflow) workflow and the local [RVM](https://rvm.io/) setup, you have to run the following commands once you cloned it for the first time:
31
+
32
+ $> gem install bundler # assuming it is not yet available
33
+ $> bundle install
34
+ $> rake -T # To list the available tasks
35
+ $> rake setup
36
+
37
+ You probably wants to activate the bash-completion for rake tasks.
38
+ I personnaly use the one provided [here](https://github.com/ai/rake-completion)
39
+
40
+ Also, some of the tasks are hidden. Run `rake -T -A` to list all of them.
41
+
42
+ ### RSpec tests
43
+
44
+ A set of unitary tests are defined to validate the different function of my library using [Rspec](http://rspec.info/)
45
+
46
+ You can run these tests by issuing:
47
+
48
+ $> rake rspec # NOT YET IMPLEMENTED
49
+
50
+ By conventions, you will find all the currently implemented tests in the `spec/` directory, in files having the `_spec.rb` suffix. This is expected from the `rspec` task of the `Rakefile`.
51
+
52
+ **Important** Kindly stick to this convention, and feature tests for all definitions/classes/modules you might want to add.
53
+
@@ -0,0 +1,30 @@
1
+ The operation consisting of releasing a new version of this repository is
2
+ automated by a set of tasks within the `Rakefile`.
3
+
4
+ In this context, a version number have the following format:
5
+
6
+ <major>.<minor>.<patch>
7
+
8
+ where:
9
+
10
+ * `< major >` corresponds to the major version number
11
+ * `< minor >` corresponds to the minor version number
12
+ * `< patch >` corresponds to the patching version number
13
+
14
+ Example: `1.2.0`
15
+
16
+ The current version number is stored in the file `metadata.json`.
17
+ For more information on the version, run:
18
+
19
+ $> rake version:info
20
+
21
+ If a new version number such be bumped, you simply have to run:
22
+
23
+ $> rake version:bump:{major,minor,patch}
24
+
25
+ This will start the release process for you using `git-flow`.
26
+ Then, to make the release effective, just run:
27
+
28
+ $> rake version:release
29
+
30
+ This will finalize the release using `git-flow`, create the appropriate tag and merge all things the way they should be.
@@ -0,0 +1,31 @@
1
+ -*- mode: markdown; mode: visual-line; -*-
2
+
3
+ # <%= config[:name] %> Puppet Module
4
+
5
+ [![Puppet Forge](http://img.shields.io/puppetforge/v/<%= config[:name].gsub(/-/,"/") %>.svg)](<%= config[:forge_url] %>)
6
+ [![License](http://img.shields.io/:license-<%= config[:license].gsub(/-/, '') %>-blue.svg)](LICENSE)
7
+ ![Supported Platforms](http://img.shields.io/badge/platform-<%= config[:platforms].join('|') %>-lightgrey.svg)
8
+ [![Documentation Status](https://readthedocs.org/projects/<%= config[:docs_project] %>/badge/?version=latest)](https://readthedocs.org/projects/<%= config[:docs_project] %>/?badge=latest)
9
+
10
+ Copyright (c) <%= Time.now.year %> <%= config[:author] %> <<%= config[:mail] %>>
11
+
12
+ | [Project Page](<%= config[:project_page] %>) | [Sources](<%= config[:source] %>) | [Documentation](http://<%= config[:docs_project] %>.readthedocs.org/en/latest/) | [Issues](<%= config[:issues_url] %>) |
13
+
14
+
15
+ -----------
16
+ The [<%= config[:name] %>](<%= config[:project_page] %>) puppet module has been designed to <%= config[:summary].downcase %>
17
+
18
+ This is the main page of the documentation for this Puppet module, which is hosted and managed by [Read the Docs](http://<%= config[:name].downcase.gsub(/\//,'-') %>.readthedocs.org/en/latest/).
19
+ It proposes to detail the following elements:
20
+
21
+ * An [Overview](overview.md) of the module is proposed, describing the puppet classes and/or definitions it implements.
22
+ - you might also wish to check the `tests/` directory for sample test cases
23
+ * How to [test this module with Vagrant](vagrant.md)
24
+ * How to [contribute](contributing/index.md) to this puppet module development. In particular, we detail:
25
+ - the [directory tree structure](contributing/layout.md)
26
+ - the steps to follow to [setup this repository](contributing/setup.md)
27
+ - information as regard the [semantic versioning](contributing/versioning.md) of this Puppet module.
28
+ - Apart form the directory layout, we will cover various configuration aspects ([git-flow](https://github.com/nvie/gitflow), [RVM](https://rvm.io/), [Bundler](http://bundler.io/) etc.)
29
+ * Details on the [Read the Docs](http://<%= config[:name].downcase.gsub(/\//,'-') %>.readthedocs.org/en/latest/) management.
30
+
31
+
@@ -0,0 +1,13 @@
1
+ The documentation for this puppet module is handled by [Read the Docs](https://readthedocs.org/), a web service dedicated to documentation management for the open source community.
2
+
3
+ * [Reference documentation](https://docs.readthedocs.org/en/latest/)
4
+
5
+ By default, the [<%= config[:name] %>](<%= config[:project_page] %>) repository is bound to the [<%= config[:docs_project] %>](http://<%= config[:docs_project] %>.rtfd.org) project on Read the Docs (to avoid confusion with other <%= config[:shortname] %> projects).
6
+
7
+ You might wish to generate locally the docs:
8
+
9
+ * Install [`mkdocs`](http://www.mkdocs.org/#installation)
10
+ * Preview your documentation from the project root by running `mkdocs serve` and visite with your favorite browser the URL `http://localhost:8000`
11
+ * build the full documentation locally by running `mkdocs build`
12
+
13
+
@@ -4,7 +4,7 @@
4
4
  # License:: <%= config[:license].capitalize %>
5
5
  #
6
6
  # ------------------------------------------------------------------------------
7
- # = Class: <%= config[:shortname] %>::debian
7
+ # = Class: <%= config[:shortname] %>::common::debian
8
8
  #
9
9
  # Specialization class for Debian systems
10
10
  class <%= config[:shortname] %>::common::debian inherits <%= config[:shortname] %>::common { }
@@ -4,7 +4,7 @@
4
4
  # License:: <%= config[:license].capitalize %>
5
5
  #
6
6
  # ------------------------------------------------------------------------------
7
- # = Class: <%= config[:shortname] %>::debian
7
+ # = Class: <%= config[:shortname] %>::common::redhat
8
8
  #
9
- # Specialization class for Debian systems
9
+ # Specialization class for Redhat systems
10
10
  class <%= config[:shortname] %>::common::redhat inherits <%= config[:shortname] %>::common { }
@@ -7,6 +7,9 @@
7
7
  "description": "<%= config[:description] %>",
8
8
  "license": "<%= config[:license] %>",
9
9
  "source": "<%= config[:source] %>",
10
+ <% unless config[:docs_project].nil? %>
11
+ "docs_project": "<%= config[:docs_project] %>",
12
+ <% end %>
10
13
  "project_page": "<%= config[:project_page] %>",
11
14
  "issues_url": "<%= config[:issues_url] %>",
12
15
  "forge_url": "<%= config[:forge_url] %>",
@@ -0,0 +1,12 @@
1
+ site_name: <%= config[:name] %> Puppet Module
2
+ pages:
3
+ - ['index.md', 'Home']
4
+ - ['overview.md', 'Overview']
5
+ - ['vagrant.md', 'Tests with Vagrant']
6
+ - ['contributing/index.md', 'Contributing', 'Overview']
7
+ - ['contributing/layout.md', 'Contributing', 'Directory Layout']
8
+ - ['contributing/setup.md', 'Contributing', 'Repository Setup and Developments']
9
+ - ['contributing/versioning.md', 'Contributing', 'Module Versioning']
10
+ - ['rtfd.md', 'Documentation', 'RTFD']
11
+ - ['contacts.md', 'Contacts']
12
+ theme: readthedocs
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: falkorlib
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sebastien Varrette
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-08 00:00:00.000000000 Z
11
+ date: 2015-05-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -421,8 +421,14 @@ files:
421
421
  - templates/puppet/modules/README.md.erb
422
422
  - templates/puppet/modules/Rakefile
423
423
  - templates/puppet/modules/Vagrantfile
424
- - templates/puppet/modules/doc/contributing.md.erb
425
- - templates/puppet/modules/doc/vagrant.md.erb
424
+ - templates/puppet/modules/docs/contacts.md.erb
425
+ - templates/puppet/modules/docs/contributing/index.md.erb
426
+ - templates/puppet/modules/docs/contributing/layout.md.erb
427
+ - templates/puppet/modules/docs/contributing/setup.md.erb
428
+ - templates/puppet/modules/docs/contributing/versioning.md.erb
429
+ - templates/puppet/modules/docs/index.md.erb
430
+ - templates/puppet/modules/docs/rtfd.md.erb
431
+ - templates/puppet/modules/docs/vagrant.md.erb
426
432
  - templates/puppet/modules/files/README.md.erb
427
433
  - templates/puppet/modules/manifests/common.pp.erb
428
434
  - templates/puppet/modules/manifests/common/debian.pp.erb
@@ -431,6 +437,7 @@ files:
431
437
  - templates/puppet/modules/manifests/mydef.pp.erb
432
438
  - templates/puppet/modules/manifests/params.pp.erb
433
439
  - templates/puppet/modules/metadata.json.erb
440
+ - templates/puppet/modules/mkdocs.yml.erb
434
441
  - templates/puppet/modules/templates/README.md.erb
435
442
  - templates/puppet/modules/templates/templatename-variables.erb
436
443
  - templates/puppet/modules/tests/init.pp.erb
@@ -1,132 +0,0 @@
1
- -*- mode: markdown; mode: visual-line; -*-
2
-
3
- # <%= config[:shortname].capitalize %> Puppet Module Developments
4
-
5
- If you want to contribute to the code, you shall be aware of the way this module is organized.
6
-
7
- ### Directory Layout
8
-
9
- <%= config[:name] %>/ # Main directory
10
- `-- metadata.json # Module configuration - cf [here](https://docs.puppetlabs.com/puppet/latest/reference/modules_publishing.html#write-a-metadatajson-file)
11
- `-- README.md # This file
12
- `-- files/ # Contains static files, which managed nodes can download
13
- `-- lib/ # custom facts/type/provider definitions
14
- `-- manifests/
15
- `-- init.pp # Main manifests file which defines the <%= config[:shortname] %> class
16
- `-- params.pp # <%= config[:name] %> module variables
17
- <% unless config[:classes].nil? %>
18
- <% config[:classes].each do |cl| %>
19
- <% next if cl =~ /params/ %>
20
- `-- <%= cl.gsub("#{config[:shortname]}::", "").gsub(/::/, '/') %>.pp
21
- <% end %>
22
- <% end %>
23
- <% unless config[:definitions].nil? %>
24
- <% config[:definitions].each do |de| %>
25
- `-- <%= de.gsub("#{config[:shortname]}::", "").gsub(/::/, '/') %>.pp
26
- <% end %>
27
- <% end %>
28
- `-- templates/ # Module ERB template files
29
- `-- tests/ # Contains examples showing how to declare the module’s classes and defined type
30
- `-- spec/ # Contains rspec tests
31
- `-- Rakefile # Definition of the [rake](https://github.com/jimweirich/rake) tasks
32
- `-- .ruby-{version,gemset} # [RVM](https://rvm.io/) configuration
33
- `-- Gemfile[.lock] # [Bundler](http://bundler.io/) configuration
34
- `-- .git/ # Hold git configuration
35
- `-- .vagrant_init.rb # Vagrant provisionner to test this module
36
- `-- Vagrantfile # Vagrant file
37
-
38
- ### Git Branching Model
39
-
40
- The Git branching model for this repository follows the guidelines of [gitflow](http://nvie.com/posts/a-successful-git-branching-model/).
41
- In particular, the central repository holds two main branches with an infinite lifetime:
42
-
43
- * `<%= FalkorLib.config[:gitflow][:branches][:master] %>`: the branch holding tags of the successive releases of this tutorial
44
- * `<%= FalkorLib.config[:gitflow][:branches][:develop] %>`: the main branch where the sources are in a state with the latest delivered development changes for the next release. This is the *default* branch you get when you clone the repository, and the one on which developments will take places.
45
-
46
- You should therefore install [git-flow](https://github.com/nvie/gitflow), and probably also its associated [bash completion](https://github.com/bobthecow/git-flow-completion).
47
-
48
- ### Ruby, [RVM](https://rvm.io/) and [Bundler](http://bundler.io/)
49
-
50
- The various operations that can be conducted from this repository are piloted
51
- from a `Rakefile` and assumes you have a running Ruby installation.
52
-
53
- The bootstrapping of your repository is based on [RVM](https://rvm.io/), **thus
54
- ensure this tools are installed on your system** -- see
55
- [installation notes](https://rvm.io/rvm/install).
56
-
57
- The ruby stuff part of this repository corresponds to the following files:
58
-
59
- * `.ruby-{version,gemset}`: [RVM](https://rvm.io/) configuration, use the name of the
60
- project as [gemset](https://rvm.io/gemsets) name
61
- * `Gemfile[.lock]`: used by `[bundle](http://bundler.io/)`
62
-
63
- ### Repository Setup
64
-
65
- Then, to make your local copy of the repository ready to use the [git-flow](https://github.com/nvie/gitflow) workflow and the local [RVM](https://rvm.io/) setup, you have to run the following commands once you cloned it for the first time:
66
-
67
- $> gem install bundler # assuming it is not yet available
68
- $> bundle install
69
- $> rake -T # To list the available tasks
70
- $> rake setup
71
-
72
- You probably wants to activate the bash-completion for rake tasks.
73
- I personnaly use the one provided [here](https://github.com/ai/rake-completion)
74
-
75
- Also, some of the tasks are hidden. Run `rake -T -A` to list all of them.
76
-
77
- ### RSpec tests
78
-
79
- A set of unitary tests are defined to validate the different function of my library using [Rspec](http://rspec.info/)
80
-
81
- You can run these tests by issuing:
82
-
83
- $> rake rspec # NOT YET IMPLEMENTED
84
-
85
- By conventions, you will find all the currently implemented tests in the `spec/` directory, in files having the `_spec.rb` suffix. This is expected from the `rspec` task of the `Rakefile`.
86
-
87
- **Important** Kindly stick to this convention, and feature tests for all definitions/classes/modules you might want to add.
88
-
89
- ### Releasing mechanism
90
-
91
- The operation consisting of releasing a new version of this repository is
92
- automated by a set of tasks within the `Rakefile`.
93
-
94
- In this context, a version number have the following format:
95
-
96
- <major>.<minor>.<patch>
97
-
98
- where:
99
-
100
- * `< major >` corresponds to the major version number
101
- * `< minor >` corresponds to the minor version number
102
- * `< patch >` corresponds to the patching version number
103
-
104
- Example: `1.2.0`
105
-
106
- The current version number is stored in the file `metadata.json`.
107
- For more information on the version, run:
108
-
109
- $> rake version:info
110
-
111
- If a new version number such be bumped, you simply have to run:
112
-
113
- $> rake version:bump:{major,minor,patch}
114
-
115
- This will start the release process for you using `git-flow`.
116
- Then, to make the release effective, just run:
117
-
118
- $> rake version:release
119
-
120
- This will finalize the release using `git-flow`, create the appropriate tag and merge all things the way they should be.
121
-
122
- # Contributing Notes
123
-
124
- This project is released under the terms of the [<%= config[:license] %> Licence](LICENSE).
125
- So you are more than welcome to contribute to its development as follows:
126
-
127
- 1. Fork it
128
- 2. Create your feature branch (`rake git:feature:start[<feature_name>]`)
129
- 3. Commit your changes (`git commit -am 'Added some feature'`)
130
- 4. Push to the branch (`git flow feature publish <feature_name>`)
131
- 5. Create new Pull Request
132
-