diff --git a/CHANGELOG.md b/CHANGELOG.md index 1307da7..bd1608b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,8 @@ # Legion Changelog +## v1.2.1 +* Updating LEX CLI templates +* Fixing issue with LEX schema migrator + ## v1.2.0 Moving from BitBucket to GitHub inside the Optum org. All git history is reset from this point on diff --git a/lib/legion/cli/lex/templates/base/dockerfile.erb b/lib/legion/cli/lex/templates/base/dockerfile.erb new file mode 100644 index 0000000..80a1c2b --- /dev/null +++ b/lib/legion/cli/lex/templates/base/dockerfile.erb @@ -0,0 +1,5 @@ +FROM legionio/legion:latest +LABEL maintainer="Matthew Iverson " + +RUN gem install lex-<%= config[:lex] %> legion-data --no-document --no-prerelease +CMD ruby $(which legionio) diff --git a/lib/legion/cli/lex/templates/base/gemfile.erb b/lib/legion/cli/lex/templates/base/gemfile.erb index fa75df1..530be8d 100755 --- a/lib/legion/cli/lex/templates/base/gemfile.erb +++ b/lib/legion/cli/lex/templates/base/gemfile.erb @@ -1,3 +1,10 @@ source 'https://rubygems.org' - gemspec + +group :test do + gem 'rake' + gem 'rspec' + gem 'rspec_junit_formatter' + gem 'rubocop' + gem 'simplecov' +end diff --git a/lib/legion/cli/lex/templates/base/gemspec.erb b/lib/legion/cli/lex/templates/base/gemspec.erb index 71ee24c..97110de 100755 --- a/lib/legion/cli/lex/templates/base/gemspec.erb +++ b/lib/legion/cli/lex/templates/base/gemspec.erb @@ -3,24 +3,22 @@ require_relative 'lib/legion/extensions/<%= config[:lex] %>/version' Gem::Specification.new do |spec| spec.name = 'lex-<%= config[:lex] %>' spec.version = Legion::Extensions::<%= config[:class_name] %>::VERSION - spec.authors = ['Esity'] - spec.email = ['matthewdiverson@gmail.com'] + spec.authors = [] + spec.email = [] spec.summary = 'LEX::<%= config[:class_name] %>' spec.description = 'Connects Legion to <%= config[:class_name] %>' - spec.homepage = 'https://bitbucket.org/legion-io/lex-<%= config[:lex] %>' + spec.homepage = 'https://github.com/LegionIO/lex-<%= config[:lex] %>' spec.license = 'MIT' spec.required_ruby_version = Gem::Requirement.new('>= 2.5.0') spec.metadata['homepage_uri'] = spec.homepage - spec.metadata['source_code_uri'] = 'https://bitbucket.org/legion-io/lex-<%= config[:lex] %>/src' - spec.metadata['documentation_uri'] = 'https://legionio.atlassian.net/wiki/spaces/LEX/pages/' - spec.metadata['changelog_uri'] = 'https://legionio.atlassian.net/wiki/spaces/LEX/pages/' - spec.metadata['bug_tracker_uri'] = 'https://bitbucket.org/legion-io/lex-<%= config[:lex] %>/issues' + spec.metadata['source_code_uri'] = 'https://github.com/LegionIO/lex-<%= config[:lex] %>/src' + spec.metadata['documentation_uri'] = 'https://github.com/LegionIO/lex-<%= config[:lex] %>/wiki' + spec.metadata['changelog_uri'] = 'https://github.com/LegionIO/lex-<%= config[:lex] %>' + spec.metadata['bug_tracker_uri'] = 'https://github.com/LegionIO/lex-<%= config[:lex] %>' + spec.files = Dir.chdir(File.expand_path(__dir__)) do + `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) } + end spec.require_paths = ['lib'] - - spec.add_development_dependency 'rake' - spec.add_development_dependency 'rspec' - spec.add_development_dependency 'rubocop' - spec.add_development_dependency 'simplecov' end diff --git a/lib/legion/cli/lex/templates/base/github_rspec.yml.erb b/lib/legion/cli/lex/templates/base/github_rspec.yml.erb new file mode 100644 index 0000000..1b7d528 --- /dev/null +++ b/lib/legion/cli/lex/templates/base/github_rspec.yml.erb @@ -0,0 +1,23 @@ +name: RSpec +on: [push, pull_request] + +jobs: + rspec: + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest] + ruby: [2.7] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v2 + - uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby }} + bundler-cache: true + - name: RSpec run + run: | + bash -c " + bundle exec rspec + [[ $? -ne 2 ]] + " \ No newline at end of file diff --git a/lib/legion/cli/lex/templates/base/github_rubocop.yml.erb b/lib/legion/cli/lex/templates/base/github_rubocop.yml.erb new file mode 100644 index 0000000..0a07e18 --- /dev/null +++ b/lib/legion/cli/lex/templates/base/github_rubocop.yml.erb @@ -0,0 +1,28 @@ +name: Rubocop +on: [push, pull_request] +jobs: + rubocop: + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest] + ruby: [2.7] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v2 + - uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby }} + bundler-cache: true + - name: Install Rubocop + run: gem install rubocop code-scanning-rubocop + - name: Rubocop run --no-doc + run: | + bash -c " + rubocop --require code_scanning --format CodeScanning::SarifFormatter -o rubocop.sarif + [[ $? -ne 2 ]] + " + - name: Upload Sarif output + uses: github/codeql-action/upload-sarif@v1 + with: + sarif_file: rubocop.sarif \ No newline at end of file diff --git a/lib/legion/cli/lex/templates/base/lic.erb b/lib/legion/cli/lex/templates/base/lic.erb index 53c1a06..cfe1daf 100755 --- a/lib/legion/cli/lex/templates/base/lic.erb +++ b/lib/legion/cli/lex/templates/base/lic.erb @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2020 Esity +Copyright (c) 2021 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/lib/legion/cli/lex/templates/base/rakefile.erb b/lib/legion/cli/lex/templates/base/rakefile.erb deleted file mode 100755 index 4c774a2..0000000 --- a/lib/legion/cli/lex/templates/base/rakefile.erb +++ /dev/null @@ -1,6 +0,0 @@ -require 'bundler/gem_tasks' -require 'rspec/core/rake_task' - -RSpec::Core::RakeTask.new(:spec) - -task default: :spec diff --git a/lib/legion/cli/lex/templates/base/rubocop.yml.erb b/lib/legion/cli/lex/templates/base/rubocop.yml.erb index 0ab4cb2..44378be 100755 --- a/lib/legion/cli/lex/templates/base/rubocop.yml.erb +++ b/lib/legion/cli/lex/templates/base/rubocop.yml.erb @@ -9,6 +9,7 @@ Style/Documentation: AllCops: TargetRubyVersion: 2.5 NewCops: enable + SuggestExtensions: false Style/FrozenStringLiteralComment: Enabled: false Naming/FileName: diff --git a/lib/legion/cli/lex/templates/base/version.erb b/lib/legion/cli/lex/templates/base/version.erb index 8ca4527..ec605ff 100755 --- a/lib/legion/cli/lex/templates/base/version.erb +++ b/lib/legion/cli/lex/templates/base/version.erb @@ -1,7 +1,7 @@ module Legion module Extensions module <%= config[:class_name] %> - VERSION = '0.1.1'.freeze + VERSION = '0.1.0'.freeze end end end diff --git a/lib/legion/extensions/data/migrator.rb b/lib/legion/extensions/data/migrator.rb index e550129..2e5f0d7 100755 --- a/lib/legion/extensions/data/migrator.rb +++ b/lib/legion/extensions/data/migrator.rb @@ -4,10 +4,11 @@ module Legion module Extensions module Data class Migrator < Sequel::IntegerMigrator - def initialize(path, extension, _lex_name, **) - Legion::Logging.fatal @extension + def initialize(path, extension, lex_name, **) @path = path @extension = extension + @lex_name = lex_name + schema_dataset super(Legion::Data::Connection.sequel, path) end @@ -21,9 +22,9 @@ def default_schema_table def schema_dataset dataset = Legion::Data::Connection.sequel.from(default_schema_table).where(namespace: @extension) - return dataset unless dataset.count.positive? + return dataset if dataset.count.positive? - Legion::Logging.unknown Legion::Data::Model::Extension.insert(active: 1, namespace: @extension, extension: lex_name) + Legion::Data::Model::Extension.insert(active: 1, namespace: @extension, name: @lex_name) Legion::Data::Connection.sequel.from(default_schema_table).where(namespace: @extension) end alias ds schema_dataset diff --git a/lib/legion/lex.rb b/lib/legion/lex.rb index 5c5149a..c3830e3 100755 --- a/lib/legion/lex.rb +++ b/lib/legion/lex.rb @@ -63,16 +63,17 @@ def create(name) template('cli/lex/templates/base/gemspec.erb', "#{filename}/#{filename}.gemspec", vars) template('cli/lex/templates/base/gemfile.erb', "#{filename}/Gemfile", vars) template('cli/lex/templates/base/gitignore.erb', "#{filename}/.gitignore", vars) - template('cli/lex/templates/base/lic.erb', "#{filename}/LICENSE.txt", vars) - template('cli/lex/templates/base/rakefile.erb', "#{filename}/Rakefile", vars) + template('cli/lex/templates/base/lic.erb', "#{filename}/LICENSE", vars) template('cli/lex/templates/base/rubocop.yml.erb', "#{filename}/.rubocop.yml", vars) template('cli/lex/templates/base/readme.md.erb', "#{filename}/README.md", **vars) template('cli/lex/templates/base/lex.erb', "#{filename}/lib/legion/extensions/#{name}.rb", vars) template('cli/lex/templates/base/version.erb', "#{filename}/lib/legion/extensions/#{name}/version.rb", vars) - template('cli/lex/templates/base/bitbucket.yml.erb', "#{filename}/bitbucket-pipelines.yml", vars) if options[:pipeline] template('cli/lex/templates/base/spec_helper.rb.erb', "#{filename}/spec/spec_helper.rb", vars) template('cli/lex/templates/base/lex_spec.erb', "#{filename}/spec/legion/#{name}_spec.rb", vars) + template('cli/lex/templates/base/github_rspec.yml.erb', "#{filename}/.github/workflows/rspec.yml", vars) + template('cli/lex/templates/base/github_rubocop.yml.erb', "#{filename}/.github/workflows/rubocop.yml", vars) + return if !options[:git_init] && !options[:bundle_install] run("cd lex_gen-#{filename}") diff --git a/lib/legion/version.rb b/lib/legion/version.rb index 432742d..f453246 100755 --- a/lib/legion/version.rb +++ b/lib/legion/version.rb @@ -1,3 +1,3 @@ module Legion - VERSION = '1.2.0'.freeze + VERSION = '1.2.1'.freeze end