diff --git a/CHANGELOG b/CHANGELOG deleted file mode 100644 index f9a50b0..0000000 --- a/CHANGELOG +++ /dev/null @@ -1,26 +0,0 @@ - -v1.2.0 - - 2014/11/10: feature(hash_counter): added float mode (Artem Napolskih) - - 2014/10/22: feature(unique_values_list): introduced a list of unique values to expiry of the members (Artem Napolskih) - - 2014/10/17: feature(unique_values_list): introduce has_value? method (Artem Napolskih) - - 2014/10/17: feature(unique_values_list): rename Standard and Fast unique values list to Blocking and NonBlocking respectively (Artem Napolskih) - - 2014/10/17: chore(specs): reorganize unique lists specs (Artem Napolskih) - - 2014/04/23: chore(all): fix circleci badge (Artem Napolskih) - - 2013/11/20: Release 1.1.0 (Artem Napolskih) - - 2013/11/20: refactor(all): back delete_all! methods (Artem Napolskih) - - 2013/11/15: refactor(all): extract Cluster and Partition classes (Artem Napolskih) - - 2013/11/15: refactor(all): shared code of clustering and partitioning extracted into module (Napolskih) - -v1.0.1 - - 2013/10/21: feature(hash_counter): method date when called with a block, now returns the total number of lines (Artem Napolskih) - - 2013/10/21: Release 1.0.0 (Artem Napolskih) - - 2013/10/18: feature(unique_values_lists): added methods to read and delete data (Artem Napolskih) - - 2013/10/10: feature(unique_hash_counter): introduce unique list postfix delimiter (Artem Napolskih) - - 2013/10/10: feature(hash_counter): added methods to read and delete data (Artem Napolskih) - - 2013/09/13: docs(all): documenting (Artem Napolskih) - -v1.0.0beta1 - - 2013/09/12: feature(all) introduce key and value delimiters (Artem Napolskih) - - 2013/09/12: feature(unique_values_list): fast (non blocking) unique values list added (Artem Napolskih) - - 2013/09/11: Initial commit (Artem Napolskih) - - 2013/08/21: dummy commit (napolskih) diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..a5b2b4a --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,38 @@ + +#### [Current] + + +#### v1.2.0 + * 2014-11-10 [be642ce](../../commit/be642ce) - __(Artem Napolskih)__ Release 1.2.0 + * 2014-11-10 [6257dc2](../../commit/6257dc2) - __(Artem Napolskih)__ feature(hash_counter): added float mode + * 2014-10-17 [48deb40](../../commit/48deb40) - __(Artem Napolskih)__ feature(unique_values_list): introduced a list of unique values to expiry of the members + * 2014-10-17 [e1206b7](../../commit/e1206b7) - __(Artem Napolskih)__ feature(unique_values_list): introduce has_value? method + * 2014-10-17 [cccc2be](../../commit/cccc2be) - __(Artem Napolskih)__ feature(unique_values_list): rename Standard and Fast unique values list to Blocking and NonBlocking respectively + * 2014-10-17 [7521fd8](../../commit/7521fd8) - __(Artem Napolskih)__ chore(specs): reorganize unique lists specs + * 2014-04-23 [94fada3](../../commit/94fada3) - __(Artem Napolskih)__ chore(all): fix circleci badge + * 2013-11-20 [0ae5531](../../commit/0ae5531) - __(Artem Napolskih)__ Release 1.1.0 + +#### v1.1.0 + * 2013-11-20 [01f12f9](../../commit/01f12f9) - __(Artem Napolskih)__ Release 1.1.0 + * 2013-11-20 [3897988](../../commit/3897988) - __(Artem Napolskih)__ refactor(all): back delete_all! methods + * 2013-11-15 [2d1c733](../../commit/2d1c733) - __(Artem Napolskih)__ refactor(all): extract Cluster and Partition classes + * 2013-10-22 [020cc8e](../../commit/020cc8e) - __(Napolskih)__ refactor(all): shared code of clustering and partitioning extracted into module - group_keys -> cluster_keys - shared code of clustering and partitioning extracted into module + +#### v1.0.1 + * 2013-10-21 [9b5e13b](../../commit/9b5e13b) - __(Artem Napolskih)__ Release 1.0.1 + * 2013-10-21 [bfa328a](../../commit/bfa328a) - __(Artem Napolskih)__ feature(hash_counter): method date when called with a block, now returns the total number of lines + * 2013-10-21 [6d04c95](../../commit/6d04c95) - __(Artem Napolskih)__ Release 1.0.0 + +#### v1.0.0 + * 2013-10-21 [b5f5344](../../commit/b5f5344) - __(Artem Napolskih)__ Release 1.0.0 + * 2013-10-10 [b29eab7](../../commit/b29eab7) - __(Artem Napolskih)__ feature(unique_values_lists): added methods to read and delete data + * 2013-10-10 [67c5200](../../commit/67c5200) - __(Artem Napolskih)__ feature(unique_hash_counter): introduce unique list postfix delimiter + * 2013-10-08 [8a9a2a9](../../commit/8a9a2a9) - __(Artem Napolskih)__ feature(hash_counter): added methods to read and delete data + * 2013-09-13 [f8d037c](../../commit/f8d037c) - __(Artem Napolskih)__ docs(all): documenting + +#### v1.0.0beta1 + * 2013-09-13 [43016ec](../../commit/43016ec) - __(Artem Napolskih)__ Release 1.0.0beta1 + * 2013-09-12 [0a176fa](../../commit/0a176fa) - __(Artem Napolskih)__ feature(all) introduce key and value delimiters + * 2013-09-12 [addbb40](../../commit/addbb40) - __(Artem Napolskih)__ feature(unique_values_list): fast (non blocking) unique values list added + * 2013-08-23 [897418d](../../commit/897418d) - __(Artem Napolskih)__ Initial commit + * 2013-08-21 [21ed53b](../../commit/21ed53b) - __(napolskih)__ dummy commit diff --git a/Gemfile b/Gemfile index a0b6856..cd8aa9e 100644 --- a/Gemfile +++ b/Gemfile @@ -1,4 +1,3 @@ source 'https://rubygems.org' -source 'http://apress:montalcino@gems.railsc.ru' gemspec \ No newline at end of file diff --git a/Rakefile b/Rakefile index 7599eea..efd0034 100644 --- a/Rakefile +++ b/Rakefile @@ -1,11 +1,12 @@ # coding: utf-8 +require 'bundler/gem_tasks' + # load everything from tasks/ directory Dir[File.join(File.dirname(__FILE__), 'tasks', '*.{rb,rake}')].each { |f| load(f) } -task :build => [:check] -task :tag => :build +task :release => [:check, :changelog] -desc 'Check if all projects are ready for build process' +desc 'Check quality' task :check => [:audit, :quality, :coverage] require 'rspec/core/rake_task' diff --git a/VERSION b/VERSION deleted file mode 100644 index 867e524..0000000 --- a/VERSION +++ /dev/null @@ -1 +0,0 @@ -1.2.0 \ No newline at end of file diff --git a/redis_counters.gemspec b/redis_counters.gemspec index 79597a2..882e1e8 100644 --- a/redis_counters.gemspec +++ b/redis_counters.gemspec @@ -3,40 +3,29 @@ lib = File.expand_path('../lib', __FILE__) $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) require 'redis_counters/version' -Gem::Specification.new do |gem| - gem.name = 'redis_counters' - gem.version = RedisCounters::VERSION - gem.authors = ['Artem Napolskih'] - gem.email = %w(napolskih@gmail.com) - gem.summary = %q{Redis Counters} - gem.homepage = 'https://github.com/abak-press/redis_counters' - - gem.files = `git ls-files`.split($/) - gem.executables = gem.files.grep(%r{^bin/}) { |f| File.basename(f) } - gem.test_files = gem.files.grep(%r{^(test|spec|features)/}) - gem.require_paths = ['lib'] - - gem.add_dependency 'activesupport', '>= 3.0' - - gem.add_development_dependency 'bundler' - gem.add_development_dependency 'rake' - gem.add_development_dependency 'rspec', '~> 2.14.0' - gem.add_development_dependency 'mock_redis' - gem.add_development_dependency 'timecop' - gem.add_development_dependency 'codeclimate-test-reporter', '~> 0.4.1' - - # test coverage tool - gem.add_development_dependency 'simplecov' - - # code quality check - gem.add_development_dependency 'cane', '>= 2.6.0' - - # dependencies security tool - gem.add_development_dependency 'bundler-audit' - - # automatic changelog builder - gem.add_development_dependency 'changelogger' - - # a tool for uploading files to private gem repo - gem.add_development_dependency 'multipart-post' +Gem::Specification.new do |spec| + spec.name = 'redis_counters' + spec.version = RedisCounters::VERSION + spec.authors = ['Artem Napolskih'] + spec.email = %w(napolskih@gmail.com) + spec.summary = %q{Redis Counters} + spec.homepage = 'https://github.com/abak-press/redis_counters' + + spec.files = `git ls-files -z`.split("\x0") + spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) } + spec.test_files = spec.files.grep(%r{^(test|spec|features)/}) + spec.require_paths = ['lib'] + + spec.add_dependency 'activesupport', '>= 3.0' + + spec.add_development_dependency 'bundler' + spec.add_development_dependency 'rake' + spec.add_development_dependency 'rspec', '~> 2.14.0' + spec.add_development_dependency 'mock_redis' + spec.add_development_dependency 'timecop' + spec.add_development_dependency 'codeclimate-test-reporter', '>= 0.4.1' + spec.add_development_dependency 'simplecov' + spec.add_development_dependency 'cane', '>= 2.6.0' + spec.add_development_dependency 'bundler-audit' + spec.add_development_dependency 'apress-changelogger' end diff --git a/tasks/changelog.rake b/tasks/changelog.rake new file mode 100644 index 0000000..13d2966 --- /dev/null +++ b/tasks/changelog.rake @@ -0,0 +1,6 @@ +desc 'Generate CHANGELOG.md' +task :changelog do + require 'apress/changelogger' + Apress::ChangeLogger.new.log_changes + spawn "git add CHANGELOG.md" +end diff --git a/tasks/gem.rake b/tasks/gem.rake deleted file mode 100644 index 15ceaac..0000000 --- a/tasks/gem.rake +++ /dev/null @@ -1,93 +0,0 @@ -# coding: utf-8 - -desc 'Release gem (build and upload to gem repo)' -task :release => [ - :ensure_master, - :check, - 'version:release', - :build, - :tag, - :push, - :upload -] - -desc 'Build project into pkg directory' -task :build do - FileUtils.mkdir_p('pkg') - - gemspec = "#{project}.gemspec" - spawn("gem build -V #{gemspec}") - built_gem_path = Dir["#{project}-*.gem"].sort_by{|f| File.mtime(f)}.last - - FileUtils.mv(built_gem_path, 'pkg') -end - -desc 'Mark project as stable with version tag' -task :tag do - tag_name = "v#{current_version}" - - spawn("git tag -a -m \"Version #{current_version}\" #{tag_name}") - puts "Tag #{tag_name} created" -end - -task :push do - spawn 'git push' - spawn 'git push --tags' -end - -# upload built tarballs to repo -task :upload do - require 'uri' - require 'net/http/post/multipart' - - repo = gems_sources.grep(/railsc/).first - uri = URI.parse(repo) - - tarball_name = "#{project}-#{current_version}.gem" - upload_gem(uri.dup, tarball_name) -end - -task :ensure_master do - `git rev-parse --abbrev-ref HEAD`.chomp.strip == 'master' || abort("Can be released only from `master` branch") -end - -def upload_gem(repo_uri, tarball_name) - require 'net/http/post/multipart' - repo_uri.path = '/upload' - - tarball_path = File.join('pkg', tarball_name) - - File.open(tarball_path) do |gem| - req = Net::HTTP::Post::Multipart.new repo_uri.path, - "file" => UploadIO.new(gem, "application/x-tar", tarball_name) - - req.basic_auth(repo_uri.user, repo_uri.password) if repo_uri.user - - res = Net::HTTP.start(repo_uri.host, repo_uri.port) do |http| - http.request(req) - end - - if [200, 302].include?(res.code.to_i) - puts "#{tarball_name} uploaded successfully" - else - $stderr.puts "Cannot upload #{tarball_name}. Response status: #{res.code}" - exit(1) - end - end # File.open -end - -task :clean do - FileUtils.rm_f 'Gemfile.lock' -end - -def gems_sources - Bundler. - setup. # get bundler runtime - specs. # for each spec - map(&:source). # get its sources - select { |v| Bundler::Source::Rubygems === v }. # fetch only rubygems-like repos - map(&:remotes). # get all remotes - flatten. - uniq. - map(&:to_s) -end \ No newline at end of file diff --git a/tasks/support.rb b/tasks/support.rb index 4507304..070d698 100644 --- a/tasks/support.rb +++ b/tasks/support.rb @@ -22,19 +22,3 @@ def spawn(cmd) end abort "#{cmd} failed" unless $? && $?.exitstatus == 0 end - -def project - 'redis_counters' -end - -# get current version from VERSION file -def current_version - File.read(File.join(ROOT, 'VERSION')).strip.chomp -end - -# get released version from git -def released_version - /\Av([\d\.]+)\z/ === `git describe --tags --abbrev=0 2>/dev/null || echo 'v0.0.0'`.chomp.strip - - $1 -end \ No newline at end of file diff --git a/tasks/version.rake b/tasks/version.rake deleted file mode 100644 index 125238e..0000000 --- a/tasks/version.rake +++ /dev/null @@ -1,35 +0,0 @@ -# coding: utf-8 -namespace :version do - task :current do - puts current_version - end - - desc 'Write a version from VERSION file to project lib/**/version.rb' - task :update do - Dir['lib/**/version.rb'].each do |file| - contents = File.read(file) - contents.gsub!(/VERSION\s*=\s*(['"])(.*?)\1/m, "VERSION = '#{current_version}'") - File.write(file, contents) - end - end - - desc 'Put version files to repo' - task :commit do - Dir['lib/**/version.rb'].each do |file| - spawn "git add #{file}" - end - # git diff --exit-code returns 0 if nothing was changed and 1 otherwise - spawn "git diff --cached --exit-code > /dev/null || git commit -m \"Release #{current_version}\" || echo -n" - end - - desc 'Release new version' - task :release => [:changelog, :update, :commit] - - desc 'Generate CHANGELOG file' - task :changelog do - changelog = File.join(ROOT, 'CHANGELOG') - - spawn "changelogger changelog '#{ROOT}' --top_version='v#{current_version}' > '#{changelog}'" - spawn "git add '#{changelog}'" - end -end \ No newline at end of file