-
Notifications
You must be signed in to change notification settings - Fork 60
Development note
There are several reference environment for development base.
-
Ubuntu Precise(12.04) 64bit + vagrant ppa
-
Ubuntu Trusty 64bit
-
Fedora 19
-
Fedora 20
We provides Vagrant boxes for development and test
You can use it through Vagrantfile provided in spec
directory.
You are recommended to use these Vagrantfile to make development environment.
- libvirt
- git
- nfs-utils
- bsdtar
- redir
- gcc
- make
- rubygem-rake
- ruby-devel
- ruby 2.0
- libxml2-devel
- libxslt-devel
- ruby-libvirt ruby gems
We use Rspec and Travis-CI for continous integration and unit test.
Tests are located in spec
directory.
Every PR should be tested and passes Travis-CI test before merging.
We set milestones for future releases. Vagrant-KVM is under active development and still in development status. The next several milestones are targeted to implement new features such as support of new vagrant versions, multi-vm support, virtfs support, and so on.
We use (major).(minor).(patchlevel) versioning. In development status, major version is 0. When Implementing major features, we increment minor version such as 0.2.0.
When it reaches beta status, it may be 0.9.x.
When it reaches production status, it become 1.0.0.
Before 0.9.x, APIs, configuration parameters and other behaviors will be changed without caution or migration pass.
We basically use master
branch for development in 0.x series.
It is an exception when we need to release interim release to previous version that includes only single or some fixes. When necessary we make -maint
branch such as v0.1.5-maint
.
It becomes next release and planed version is incremented.
Here is an example.
We have released v0.1.5 in March, 2014. We started development for v0.1.6 to add more feature and merged several changes just after releasing v0.1.5. We found v0.1.5 is not working with Vagrant 1.5 that is released in March, 2014. Because it is not welcome to wait to a normal v0.1.6 release for Vagrant 1.5 support, we decided to release interim fix release as v0.1.6.
We start release branch 'v0.1.5-maint' for v0.1.6 release.
The release number of new features on master
is changed to v0.1.7 not v0.1.6.
Vagrant-KVM is a provider for KVM on Linux platform. There are a similar project and related projects with vagrant-kvm.
-
vagrant-libvirt: vagrant-libvirt is a provider for libvirt and kvm, xen and other visualization platforms. some developers are contributed to both project and exchange ideas and codes each other.
-
vagrant-mutate: Vagrant-mutate is a command plugin to convert box images for another provider. Vagrant-kvm has a feature to convert in 0.1.4 and before, but now, 0.1.5 and after, deprecated and users are recommended to use vagrant-mutate.
-
sahara: Sahara is a command plugin to make snapshot. It was proposed to support vagrant-kvm with sahara, and waiting confirmation of other developers, you.
-
libvirt: libvirt, ruby-libvrt are library depend on.
-
Clone: git clone git://github.com/adrahon/vagrant-kvm.git
-
Get Setup
-
Create a topic branch: git checkout -b awesome_feature
-
Hack and Commit away.
-
Keep up to date: git fetch && git rebase origin/master
-
Test with Rspec
Once you’re ready:
-
Fork the project on GitHub
-
Add your repository as a remote: git remote add your_remote your_repo
-
(Optional) setup Travis-CI for your repository
-
Push up your branch: git push your_remote awesome_feature
-
(Optional) check your Travis score whether passed
-
Create a Pull Request for the topic branch, asking for review.
-
Check your PR is passed on Travis
-
If not, fix your commit and push to your repository: git push your_remote awesome_feature