প্রকল্প সম্পর্কে
Lintro হলো একটি কমান্ড-লাইন টুল যা কোড ফরম্যাটিং, লিন্টিং, টাইপ-চেকিং এবং সিকিউরিটি টুলসের একটি বিশাল সেটকে একটি একক ইন্টারফেসে একত্রিত করে। এটি MIT লাইসেন্সের অধীনে প্রকাশিত এবং পাইথন প্যাকেজের জন্য Python 3.11 বা তার পরবর্তী সংস্করণ প্রয়োজন, তবে একটি স্বয়ংসম্পূর্ণ Node প্যাকেজও অফার করা হয়।
কুইক স্টার্ট মূলত দুটি কমান্ডের ওপর কেন্দ্রিত: সমস্যা খুঁজে পেতে "lintro check" ( ওরফে "chk") এবং সেগুলো ঠিক করতে "lintro format" ( ওরফে "fmt")। অতিরিক্ত কমান্ডগুলোর মধ্যে রয়েছে shields.io ইস্যু-কাউন্ট ব্যাজের জন্য "lintro badge", উপলব্ধ টুলস দেখাতে "lintro list-tools", সেটআপ এবং হেলথ চেকের জন্য "lintro init" এবং "lintro doctor", এবং টুলস প্রোভিশনিংয়ের জন্য "lintro install --profile recommended"। ফলাফলগুলো গ্রিড, JSON, HTML, CSV এবং Markdown-এর মতো বিভিন্ন ফরম্যাটে রেন্ডার করা যেতে পারে, যেখানে --output-format grid, --group-by file, নির্দিষ্ট টুলস নির্বাচনের জন্য --tools, ডিরেক্টরির জন্য --exclude, Node-ভিত্তিক টুলসের জন্য --auto-install এবং git ref-এর বিপরীতে পরিবর্তিত ফাইলগুলোতে চেক সীমাবদ্ধ করতে --diff-এর মতো অপশন রয়েছে।
README-তে লিন্টার, ফরম্যাটার, লিন্ট এবং ফরম্যাট উভয় কাজ করে এমন টুলস, টাইপ চেকার, সিকিউরিটি স্ক্যানার এবং AI টুলস হিসেবে বিভক্ত একটি বিস্তৃত টুল ম্যাট্রিক্স তালিকাভুক্ত করা হয়েছে। লিন্টিংয়ের জন্য উদাহরণ হিসেবে Actionlint, Clippy, commitlint, Cppcheck, golangci-lint, Hadolint, html-validate, Markdownlint-cli2, Vale, Oxlint, pylint, ShellCheck, Spectral এবং Yamllint; ফরম্যাটিংয়ের জন্য Black, Oxfmt, Prettier, shfmt এবং rustfmt; লিন্ট-প্লাস-ফরম্যাটের জন্য Ruff, SQLFluff, Taplo, dotenv-linter, Stylelint এবং typos; টাইপ চেকিংয়ের জন্য Astro, Mypy, svelte-check, TypeScript এবং vue-tsc; এবং সিকিউরিটির জন্য Bandit, Checkov, Gitleaks, cargo-audit, cargo-deny, OSV-Scanner, pip-audit, Semgrep এবং TruffleHog অন্তর্ভুক্ত। ruff, black, mypy, bandit, import-linter, pydoclint, pylint এবং yamllint-এর মতো পাইথন টুলসগুলো "full" এক্সট্রার মাধ্যমে বান্ডেল করা যেতে পারে, তাই সেগুলোর আলাদা ইনস্টলেশনের প্রয়োজন নেই।
কনফিগারেশনের লক্ষ্য হলো মাইগ্রেশন কাজ এড়ানো: .prettierrc, pyproject.toml [tool.ruff] বা .yamllint-এর মতো বিদ্যমান নেটিভ কনফিগগুলো শনাক্ত এবং সম্মান করা হয়, যেখানে শেয়ারড সেটিংসগুলো ধারাবাহিকভাবে প্রয়োগ করা যেতে পারে এবং নেটিভ কনফিগ না থাকলে যুক্তিসঙ্গত ডিফল্ট ব্যবহৃত হয়। ডকুমেন্টেশনে একটি পাঁচ-স্তরের কনফিগারেশন সিস্টেম বর্ণনা করা হয়েছে। Node.js টুলস একটি নির্দিষ্ট রেজোলিউশন অর্ডার অনুসরণ করে: প্রথমে টার্গেট প্রজেক্টের node_modules/.bin, তারপর PATH-এর একটি বাইনারি, এবং সবশেষে একটি ভার্সন-পিনড bunx/npx ফেচ।
ইনস্টলেশন অপশনগুলোর মধ্যে রয়েছে uv pip বা pip install (লাইটওয়েট বা ফুল এক্সট্রাসহ), একটি Homebrew tap, একটি গ্লোবাল bun/npm প্যাকেজ এবং GHCR থেকে Docker ইমেজ, যেখানে আলাদা "tools" এবং "base" ইমেজ রয়েছে। রিপোজিটরিটির docs ফোল্ডারে CI/CD এবং pre-commit ইন্টিগ্রেশন সম্পর্কেও নথিভুক্ত করা হয়েছে।
AI ফিচারগুলো ঐচ্ছিক এবং ডিফল্টভাবে বন্ধ থাকে, যার জন্য Anthropic Claude বা OpenAI GPT থেকে ব্যবহারকারী-প্রদত্ত API কী প্রয়োজন। এগুলো ai এক্সট্রার মাধ্যমে ইনস্টল করা হয় এবং প্যাটার্ন অ্যানালাইসিসসহ উচ্চ-স্তরের সারাংশ, রিস্ক ক্লাসিফিকেশনসহ ইন্টারঅ্যাক্টিভ ফিক্স সাজেশন এবং একটি পোস্ট-ফিক্স সারাংশ প্রদান করতে পারে। বাকি ডকুমেন্টেশনে গেটিং স্টার্টেড, কনফিগারেশন, Docker ব্যবহার, GitHub ইন্টিগ্রেশন, pre-commit, কন্ট্রিবিউটিং, ট্রাবলশুটিং এবং অ্যাডভান্সড টুল অ্যানালাইসিস, আর্কিটেকচার ও সিকিউরিটি ম্যাটেরিয়াল কভার করা হয়েছে।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.