The Road to Facter 3

180 views
Skip to first unread message

Kylo Ginsberg

unread,
Mar 4, 2015, 6:45:59 PM3/4/15
to puppe...@googlegroups.com

As some of you know, we have been working on a native reimplementation of facter in C++11 in the https://github.com/puppetlabs/cfacter project. At the same time, we've been continuing to add features and fixes in parallel in the ruby facter project at good ol' https://github.com/puppetlabs/facter.


Starting in facter 3, we will have only the native implementation, and facter 2 will only be for bug/security fixes to the ruby implementation. This message covers some logistics around this transition, whether you're using or contributing to the facter project.


If you're using facter:

  • the upcoming 1.0.x series of puppet-agent includes both (ruby) facter 2.4.x and (native) cfacter 0.4.x
    • by default puppet will use facter but you can try the native implementation with puppet's '--cfacter' setting
    • likewise you can A/B compare output with the 'facter' or 'cfacter' binaries
  • once facter 3 is ready, a follow-on Y or Z release of puppet-agent will include just facter 3 with the native implementation, no need to type '--cfacter' or 'cfacter'
If you're contributing to facter:
  • there is now a facter/2.x branch -- all PRs for bug fixes against ruby facter should be targeted here
  • in the next few weeks, puppetlabs/facter repo will be the source for all facter development, i.e. native facter code / development will move to the facter repo (preserving git history)
  • the puppetlabs/cfacter repo will become effectively read-only
  • we won't be git-merging up from facter/2.x to facter/{stable,master} (because we can't -- it'll be different code bases)
  • this will make us somewhat selective in what we merge to facter/2.x since we'll need to port it to carry the fix forward
I think that covers it. Happy fact gathering!

Kylo
--
Kylo Ginsberg | ky...@puppetlabs.com | irc: kylo | twitter: @kylog

Roy Nielsen

unread,
Mar 5, 2015, 4:25:52 PM3/5/15
to puppe...@googlegroups.com
Curious - will this be able to be compiled and used on Arm or other architectures (cross platform compatibility)?

Thank you,
-Roy

--
You received this message because you are subscribed to the Google Groups "Puppet Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to puppet-dev+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-dev/CALsUZFHt7adR6runSfW6GcXA5qYoumJNcy%3DPctGxoxWUoaNLKg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Michael Stahnke

unread,
Mar 5, 2015, 4:47:28 PM3/5/15
to puppet-dev
On Thu, Mar 5, 2015 at 1:25 PM, Roy Nielsen <amr...@gmail.com> wrote:
Curious - will this be able to be compiled and used on Arm or other architectures (cross platform compatibility)?


I have been toying with ARM chips at home to get this working. (Not official from Puppet Labs). Thus far I haven't got it all working, but it's mostly due to versions of libraries and such and not cfacter itself. I'll keep you posted.
 

 

Branan Riley

unread,
Mar 5, 2015, 4:51:41 PM3/5/15
to puppe...@googlegroups.com
"probably"

The code is written to standard operating system APIs, and we are very aggressive with our compiler warnings (which helps avoid undefined/architecture-specific behavior). I would expect it to work, but as always with C++ sometimes things get weird.

Depending on the architecture* we would probably accept pull requests to fix any issues found by the community (assuming they're of good quality, don't add too much complexity, etc - all the normal PR caveats)

-- Branan

* We wouldn't upstream support for the m68k, for example

On Thu, Mar 5, 2015 at 1:25 PM, Roy Nielsen <amr...@gmail.com> wrote:

Michael Smith

unread,
Mar 20, 2015, 2:16:39 PM3/20/15
to puppe...@googlegroups.com
As a heads up, we plan to merge https://github.com/puppetlabs/cfacter to https://github.com/puppetlabs/facter/tree/master (facter/master) this afternoon. If you're pinning against facter/master, you may want to change that to facter/2.x unless you're prepared to compile the native binary.

Specific details are available at https://tickets.puppetlabs.com/browse/FACT-853.



For more options, visit https://groups.google.com/d/optout.



--
Michael Smith
Sr. Software Engineer, Puppet Labs

PuppetConf 2015 is coming to Portland, Oregon! Join us October 5-9.
Register now to take advantage of the Early Adopter discount save $349!

Branan Riley

unread,
Mar 24, 2015, 5:02:32 PM3/24/15
to puppe...@googlegroups.com
Closing the loop on this: We completed the cutover. facter/master is now native facter, and the cfacter repository is closed

Reply all
Reply to author
Forward
0 new messages