ternux উন্নত করার জন্য ধন্যবাদ। Code, test, documentation, English/Bengali translation, reproducible bug report ও device evidence—সবই কার্যকর contribution। সম্পর্কহীন অনেক পরিবর্তন একসাথে দেওয়ার চেয়ে ছোট, focused change review করা সহজ।
শুরু করার আগে
- Contributor Covenant অনুসরণ করুন।
- একই কাজ আবার শুরু করার আগে open issue ও pull request খুঁজুন।
- সন্দেহজনক vulnerability-এর জন্য security policy ব্যবহার করুন। Issue-তে exploit detail প্রকাশ করবেন না।
- Installer boundary বা graphics behavior বদলানোর আগে ডকুমেন্টেশন পরিচিতি এবং আর্কিটেকচার পড়ুন।
অবদানের পথ
Reproducible bug report করুন
Bug report template ব্যবহার করুন। অন্তর্ভুক্ত করুন:
- ফোন model, Android version, architecture ও Termux source;
- ternux version বা exact commit;
- নির্বাচিত profile ও public backend (
zinkবাvirgl); - চালানো command ও সম্পূর্ণ প্রাসঙ্গিক output;
- private path বা token মুছে
ternux doctoroutput; - problem trigger করা সবচেয়ে ছোট repeatable sequence।
আগে সমস্যা সমাধান দেখুন। Screenshot text output-কে সহায়তা করতে পারে, কিন্তু প্রতিস্থাপন করা উচিত নয়।
Device evidence দিন
Device report template ব্যবহার করে প্রতিটি result সঠিকভাবে classify করুন:
- Measured — score, FPS, time, memory বা tokens/s-এর মতো captured numeric output।
- Observed — application-reported renderer-এর মতো সরাসরি non-numeric output।
- Reported build — build সম্পন্ন হয়েছে, কিন্তু runtime performance প্রতিষ্ঠিত নয়।
- Untested — কোনো affirmative result পাওয়া যায়নি।
Benchmark submission-এ command, commit/version, renderer ও backend, resolution বা model, thermal/power condition, সব repetition এবং raw output record করুন। শুধু সেরা run দেবেন না। Evidence protocol অনুসরণ করুন।
Code বা test দিন
install.sh, bin/ternux বা lib/*.sh-এর পরিবর্তন যেন:
- idempotent হওয়ার কথা যে phase-এর, সেখানে আবার চালানো নিরাপদ থাকে;
- expansion quote করে এবং untrusted input evaluate না করে;
- explicit backend name ও state-file compatibility ধরে রাখে;
- human-readable ও documented JSON output সত্য রাখে;
- প্রতিটি corrected failure mode-এর focused regression যোগ করে;
- Android system partition বা সম্পর্কহীন Termux state না বদলায়।
Documentation বা translation উন্নত করুন
English ও বাংলা navigation এবং core technical coverage একই। User behavior বদলানো কোনো change দুই ভাষার path reconcile না করা পর্যন্ত অসম্পূর্ণ। Translation-এ command, backend name, evidence value, warning severity ও technical meaning অপরিবর্তিত রাখুন; English sentence order নকল করার দরকার নেই।
Development workflow
git clone https://github.com/soobujmiah/ternux.git
cd ternux
git checkout -b fix/short-description
তারপর:
- একটি coherent change করুন;
- focused test যোগ বা update করুন;
- behavior বদলালে English ও বাংলা documentation update করুন;
- documentation page বা label বদলালে
_data/docs.ymlupdate করুন; - নিচের validation command চালান;
- generated file, secret ও সম্পর্কহীন edit-এর জন্য
git diffদেখুন; - repository template ব্যবহার করে pull request খুলুন।
Imperative form-এ পরিষ্কার commit subject লিখুন, যেমন
Harden archive member validation। Conventional prefix ব্যবহার করা যায়, কিন্তু
নির্দিষ্ট prefix scheme-এর চেয়ে স্পষ্টতা গুরুত্বপূর্ণ।
Engineering standard
- Shell: সচেতনভাবে Bash, function-এর ভেতরে
localvariable, quoted expansion, explicit failure handling এবং backtick command substitution নয়। - Input: ব্যবহারের আগে path, archive member, identifier, flag ও external data validate করুন।
- State: সম্ভব হলে atomically লিখুন এবং documented state-এর সঙ্গে repair/update path compatible রাখুন।
- JSON: stdout-এ valid JSON দিন; JSON stream-এর বাইরে progress, warning ও diagnostic রাখুন।
- Cleanup: শুধু owned ও documented target uninstall করুন। Broad package set, repository, user project বা সম্পর্কহীন configuration মুছবেন না।
- Claims: successful build-কে runtime বা performance claim বানাবেন না।
- Dependencies: নতুন dependency-এর কারণ দেখান এবং existing Termux/Debian tool অগ্রাধিকার দিন।
Documentation standard
Site navigation source হলো _data/docs.yml। English ও বাংলা list একই order-এ থাকবে
এবং matching destination দেখাবে। Core page docs/ ও bn/docs/-এ; landing page
index.html ও bn/index.html।
User-facing behavior বদলালে:
- প্রাসঙ্গিক English guide update করুন;
- তার বাংলা counterpart update করুন;
- CLI example ও structured-output note update করুন;
alt_urlfront matter reciprocal রাখুন;- destination বদলালে navigation, landing link, README map ও sitemap update করুন;
- অন্য page থেকে referenced explicit heading বা fragment ধরে রাখুন।
Workload/tool card অবশ্যই upstream project repository-তে link করবে। Performance ভাষায় measured, observed, reported-build ও untested boundary ধরে রাখতে হবে।
Validation
Repository root থেকে চালান:
bash tests/focused.sh
bats tests/smoke.bats
python3 tests/docs_check.py
set -e
for file in install.sh uninstall.sh bin/ternux lib/*.sh; do
bash -n "$file"
done
node --check assets/js/docs.js
node --check assets/js/codecopy.js
git diff --check
bats PATH-এ না থাকলে আগে bats-core
ইনস্টল করুন। Site change-এর জন্য keyboard navigation, narrow screen, reduced motion
ও print output হাতে inspect করুন; deterministic link, front matter, language parity
ও content-integrity check tests/docs_check.py করে।
নিজের real environment-এ destructive uninstall scenario চালাবেন না। Isolated test home/container বা existing mocked regression ব্যবহার করুন।
Repository map
bin/ternux public CLI entry point
lib/*.sh installer ও runtime module
install.sh hosted bootstrap entry point
uninstall.sh scoped removal entry point
tests/ focused ও Bats regression
docs/ English technical documentation
bn/docs/ বাংলা technical documentation
_data/docs.yml mirrored site navigation model
_layouts/default.html documentation application shell
assets/ local CSS, JavaScript, font ও social image
share/templates/ schema ও managed template
.github/ issue, pull-request, ownership ও automation policy
Review, আচরণ ও license
Merge করার আগে maintainer ছোট scope, raw evidence, regression বা language parity চাইতে পারেন। Review comment change নিয়ে—contributor নিয়ে নয়। অংশগ্রহণ করে আপনি আচরণবিধি মানতে সম্মত হন। Contribution repository-এর Apache License 2.0-এর অধীনে গৃহীত হয়।