Hey guys, I use rubocop linter with vs code extension. I have a rails 6 app with ruby 3 but some files in vendor/ are symlinks from legacy code which were written in ruby 2. I have to make sure my team doesn’t write any ruby 3 specific methods inside this folder cuz since it’s a symlink, it’s used by other apps with ruby 2 as well. How do i configure my linter for this?

  • @Synthead
    link
    2
    edit-2
    1 year ago

    Assuming it’s properly tested, I would simply run the tests that apply to the code in this directory with the versions of Ruby you’re trying to ensure compatibility with.

    If you’re using GitHub Actions for CI, then you can create jobs for each version of Ruby you’re trying to use. Then, ensure your default branch is protected, and set your branch protections only allows PRs to merge that pass CI.

    This will also ensure that Ruby 3.x.x works with your current code, too. Some things have been deprecated, i.e. File#exists? has been removed in favor of File#exist?

    Also, this sounds like a good case of submodules, if this code is used for various projects.