{"id":18909192,"url":"https://github.com/jruby/jruby-lint","last_synced_at":"2025-04-09T12:05:13.779Z","repository":{"id":1445419,"uuid":"1676455","full_name":"jruby/jruby-lint","owner":"jruby","description":"See how ready your Ruby code is to run on JRuby","archived":false,"fork":false,"pushed_at":"2020-02-29T20:47:48.000Z","size":220,"stargazers_count":101,"open_issues_count":0,"forks_count":9,"subscribers_count":20,"default_branch":"master","last_synced_at":"2024-05-01T11:33:55.547Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jruby.png","metadata":{"files":{"readme":"README.md","changelog":"History.txt","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-04-28T15:52:31.000Z","updated_at":"2023-10-12T11:12:14.000Z","dependencies_parsed_at":"2022-07-18T21:49:22.687Z","dependency_job_id":null,"html_url":"https://github.com/jruby/jruby-lint","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jruby%2Fjruby-lint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jruby%2Fjruby-lint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jruby%2Fjruby-lint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jruby%2Fjruby-lint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jruby","download_url":"https://codeload.github.com/jruby/jruby-lint/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248036063,"owners_count":21037092,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T09:31:45.110Z","updated_at":"2025-04-09T12:05:13.757Z","avatar_url":"https://github.com/jruby.png","language":"Ruby","readme":"# JRuby-Lint\n\nSee how ready your Ruby code is to run on JRuby.\n\nJRuby-Lint is a simple tool that allows you to check your project code\nand configuration for common gotchas and issues that might make it\ndifficult to run your code on JRuby.\n\n## Usage\n\nJRuby-Lint requires JRuby to run. So, [install JRuby first][install]\nif you already haven't, then `gem install jruby-lint`.\n\nThen simply run `jrlint` in your project to receive a report of\nplaces in your project where you should investigate further.\n\n## Checks\n\nHere is a list of the current checks implemented:\n\n- Report usage of ObjectSpace.each_object and ObjectSpace._id2ref\n  which are expensive and disabled by default\n- Report usage of Thread.critical, which is discouraged in favor of a\n  plain Mutex.\n- Report known gems and libraries that use C extensions and try to\n  provide known alternatives (Live data retrieved from https://github.com/jruby/jruby/wiki/C-Extension-Alternatives).\n- Report usage of Kernel#fork (which does not work).\n- Report behavior difference when using system('ruby'), which launches\n  the command in-process in a new copy of the interpreter for speed\n\n## Reports\n\nJRuby-lint supports text and html reports. Run jrlint with the option --html\nto generate an html report with the results.\n\n## TODO\n\nHere is a list of checks and options we'd like to implement:\n\n- Report on more threading and concurrency issues/antipatterns\n  - arr.each {|x| arr.delete(x) }\n- Try to detect IO/File resource usage without blocks\n- Check .gemspec files for extensions and extconf.rb for\n  #create_makefile and warn about compiliing C extensions\n- Check whether Rails production.rb contains `config.threadsafe!`\n- Detect ERB files and skip them, or...\n- Detect ERB files and pre-process them to Ruby source with Erubis\n- Detect Bundler gems that have a `platforms` qualifier and ignore\n  \"platforms :ruby\"\n- Change to use jruby-parser\n- Allow use of a comment marker to suppress individual checks\n\n### Further Down the Road\n\n- Arbitrary method/AST search functionality \n- Code rewriter: option to change code automatically where it's\n  feasible\n- Revive or build an isit.jruby.org site for tracking\n- Make JRuby-Lint submit results to tracking site based on lint passes\n  and/or test suite runs\n\n[install]: http://jruby.org/getting-started\n\n## License\n\nJRuby-Lint is Copyright (c) 2007-2013 The JRuby project, and is released\nunder a tri EPL/GPL/LGPL license. You can use it, redistribute it\nand/or modify it under the terms of the:\n\n  Eclipse Public License version 1.0\n  GNU General Public License version 2\n  GNU Lesser General Public License version 2.1\n\nSee the file `LICENSE.txt` in distribution for details.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjruby%2Fjruby-lint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjruby%2Fjruby-lint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjruby%2Fjruby-lint/lists"}