100 likes | 118 Views
https://flic.kr/p/Lj3bW. Software Configuration Management.
E N D
https://flic.kr/p/Lj3bW Software Configuration Management
Software Configuration Management (SCM)“Configuration management … is the discipline ofidentifying the configuration of a systemat distinct points in timefor the purpose ofsystematically controlling changes to the configurationandmaintaining the integrity and traceability of the configuration throughout the system life cycle.” (SWEBOK) What SCM technologies have you learned?
What configuration does each manage? • Git • Vagrant • RVM • Bundler
What configuration does each manage? • Git • Versions of your code • Vagrant • Development OS; various installed software • RVM • Ruby version; organizes gemsets • Bundler • Gem versions
Git for Your CodeRVM & Bundler for External Dependencies ruby v1, v2, v3, … RVM, Bundler Git jquery v1, v2, v3, … Your code v1, v2, v3, … sqlite v1, v2, v3, …
How do you choose versions with… • Vagrant • RVM • Bundler
How do you choose versions with… • Vagrant • Vagrantfile, provisioning script • RVM • Command line, Gemfile comments • Bundler • Gemfile
Recall SCM Definition…“Configuration management … is the discipline ofidentifying the configuration of a systemat distinct points in timefor the purpose ofsystematically controlling changes to the configurationandmaintaining the integrity and traceability of the configuration throughout the system life cycle.” (SWEBOK) How does Git work with RVM and Bundler to achieve?
Recall SCM Definition…“Configuration management … is the discipline ofidentifying the configuration of a systemat distinct points in timefor the purpose ofsystematically controlling changes to the configurationandmaintaining the integrity and traceability of the configuration throughout the system life cycle.” (SWEBOK) How does Git work with RVM and Bundler to achieve? Gemfile versions are managed with code versions
Development Principles • Building project should be automatable & repeatable • Treat build scripts like code • Version control them! • Use tags to track milestones • Iterations, releases, bug fixes, etc. • Always know how to get code for, to build, and to run each past milestone • Hard without tools!