diff --git a/.travis.yml b/.travis.yml
index b50ffe2..3706bc8 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,9 +1,12 @@
 language: ruby
-sudo: false
+cache: bundler
 rvm:
-  - "2.2"
-  - "2.3.4"
-  - "2.5.1"
+  - 2.2
+  - 2.3
+  - 2.4
+  - 2.5
+  - 2.6
+  - 2.7
   - jruby-head
 matrix:
   allow_failures:
diff --git a/History.txt b/History.txt
index 131dc54..8db4054 100644
--- a/History.txt
+++ b/History.txt
@@ -1,3 +1,8 @@
+== [3.0.1] / 2020-04-20
+
+* Add a LICENSE.txt file to the released package
+* Test fixes (thanks @aried3r, @neontapir, @npras)
+
 == [3.0.0] / 2018-08-24
 
 * The gem has been officially renamed to optimist
@@ -163,6 +168,8 @@
 == 1.0 / 2007-01-29
 * Initial release.
 
+[3.0.1]: https://github.com/ManageIQ/optimist/compare/v3.0.0...v3.0.1
+[3.0.0]: https://github.com/ManageIQ/optimist/compare/v2.1.3...v3.0.0
 [2.1.3]: https://github.com/ManageIQ/optimist/compare/v2.1.2...v2.1.3
 [2.1.2]: https://github.com/ManageIQ/optimist/compare/v2.1.1...v2.1.2
 [2.1.1]: https://github.com/ManageIQ/optimist/compare/v2.1.0...v2.1.1
diff --git a/LICENSE.txt b/LICENSE.txt
new file mode 100644
index 0000000..cc39799
--- /dev/null
+++ b/LICENSE.txt
@@ -0,0 +1,23 @@
+Copyright (c) 2008-2014 William Morgan
+Copyright (c) 2014 Red Hat, Inc
+
+MIT License
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/debian/changelog b/debian/changelog
index fd51ebf..9031eb0 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-ruby-optimist (3.0.0-3) UNRELEASED; urgency=low
+ruby-optimist (3.0.1-1) UNRELEASED; urgency=low
 
   * Use secure URI in Homepage field.
   * Set field Upstream-Contact in debian/copyright.
@@ -6,8 +6,9 @@ ruby-optimist (3.0.0-3) UNRELEASED; urgency=low
     present in machine-readable debian/copyright).
   * Bump debhelper from old 12 to 13.
   * Update standards version to 4.5.1, no changes needed.
+  * New upstream release.
 
- -- Debian Janitor <janitor@jelmer.uk>  Sat, 29 Aug 2020 16:46:02 -0000
+ -- Debian Janitor <janitor@jelmer.uk>  Mon, 14 Mar 2022 23:33:59 -0000
 
 ruby-optimist (3.0.0-2) unstable; urgency=medium
 
diff --git a/lib/optimist.rb b/lib/optimist.rb
index 587a305..3f67c9c 100644
--- a/lib/optimist.rb
+++ b/lib/optimist.rb
@@ -8,7 +8,7 @@ require 'date'
 module Optimist
   # note: this is duplicated in gemspec
   # please change over there too
-VERSION = "3.0.0"
+VERSION = "3.0.1"
 
 ## Thrown by Parser in the event of a commandline error. Not needed if
 ## you're using the Optimist::options entry.
@@ -590,11 +590,11 @@ class Option
     @optshash = Hash.new()
   end
 
-  def opts (key)
+  def opts(key)
     @optshash[key]
   end
 
-  def opts= (o)
+  def opts=(o)
     @optshash = o
   end
 
@@ -620,7 +620,7 @@ class Option
 
   def required? ; opts(:required) ; end
 
-  def parse (_paramlist, _neg_given)
+  def parse(_paramlist, _neg_given)
     raise NotImplementedError, "parse must be overridden for newly registered type"
   end
 
diff --git a/test/optimist/parser_test.rb b/test/optimist/parser_test.rb
index 99d5c7b..84f6312 100644
--- a/test/optimist/parser_test.rb
+++ b/test/optimist/parser_test.rb
@@ -390,12 +390,12 @@ class ParserTest < ::MiniTest::Test
     opts = @p.parse %w(-a -b)
     assert_equal true, opts[:arg1]
     assert_equal true, opts[:arg2]
-    assert_equal nil, opts[:arg3]
+    assert_nil opts[:arg3]
 
     opts = @p.parse %w(-ab)
     assert_equal true, opts[:arg1]
     assert_equal true, opts[:arg2]
-    assert_equal nil, opts[:arg3]
+    assert_nil opts[:arg3]
 
     opts = @p.parse %w(-ac 4 -b)
     assert_equal true, opts[:arg1]
@@ -464,7 +464,7 @@ Options:
     assert_equal 5, opts[:arg]
   end
 
-  def test_integer_formatting
+  def test_integer_formatting_default
     @p.opt :arg, "desc", :type => :integer, :short => "i", :default => 3
     opts = @p.parse %w(-i)
     assert_equal 3, opts[:arg]