منصوبے کے بارے میں

Marigold، Marigold Design System کا ایک React ورژن ہے، جسے قابل رسائی رویے (accessible behaviour) کے لیے react-aria اور اسٹائلنگ کے لیے Tailwind CSS پر بنایا گیا ہے۔ یہ ریپوزٹری ایک monorepo ہے جس میں کمپوننٹ لائبریری، تھیمنگ، ڈاکومنٹیشن اور ٹیسٹنگ ایک ہی جگہ موجود ہیں۔ ریپوزٹری میں کیا شامل ہے - کمپوننٹ اور سسٹم سورس فولڈرز، جنہیں پیکجز کے طور پر بنایا گیا ہے؛ CLI کمانڈز "components and theme packages" کو بلڈ ٹارگٹس کے طور پر استعمال کرتی ہیں، اور شائع شدہ npm پیکج `@marigold/components` ہے۔ - تھیم پیکجز، جو ایک مخصوص `pnpm build:themes` ٹاسک کے ذریعے بنائے جاتے ہیں، تاکہ ایک ہی کمپوننٹ سیٹ کو مختلف تھیم آؤٹ پٹس کے ساتھ جوڑا جا سکے۔ - Next.js سے بنا ایک ڈاکومنٹیشن ایپ، جسے ڈویلپمنٹ موڈ میں `pnpm dev` (localhost:3000) اور پروڈکشن موڈ میں `pnpm start` کے ذریعے چلایا جاتا ہے۔ اس میں `pnpm build:component-props` اور ایک "registry" ٹاسک کے ذریعے تیار کردہ کمپوننٹ پراپ ٹیبلز شامل ہیں۔ - ایک Storybook ورک اسپیس جسے localhost:6006 پر `pnpm sb` سے شروع کیا جاتا ہے، ساتھ ہی Storybook پر مبنی کمپوننٹ ٹیسٹ (`pnpm test:sb`) اور ایک Storybook بلڈ ٹاسک بھی موجود ہے۔ ٹولنگ اور کوالٹی چیکس پورے پروجیکٹ میں TypeScript استعمال کیا گیا ہے، جہاں `pnpm typecheck` پہلے ڈاکس بناتا ہے اور پھر بغیر emit کے ٹائپ چیکنگ کرتا ہے۔ ٹیسٹ Vitest پر چلتے ہیں، جن میں کوریج اور ایک CI-oriented ورژن شامل ہے۔ لنٹنگ (Linting) کو کوڈ کے لیے ESLint اور ڈاکومنٹیشن نثر کے لیے Vale کے درمیان تقسیم کیا گیا ہے، اور فارمیٹنگ Prettier کے ذریعے سنبھالی جاتی ہے جس میں الگ الگ چیک اور فکس کمانڈز ہیں۔ ایک `clean` کمانڈ بلڈ آرٹفیکٹس، ڈیپینڈنسیز اور کیشز جیسے کہ dist، .next، .turbo، coverage اور storybook-static کو ختم کرتی ہے۔ ریلیزز ریلیزز مقامی طور پر (locally) نہیں کیے جاتے: ایک GitHub Actions ورک فلو ہر main پش پر Changesets ایکشن چلاتا ہے۔ یہ یا تو ایک "release: version packages" پل ریکویسٹ کھولتا ہے جو زیر التواء changesets کو استعمال کرتا ہے، یا مرج ہونے کے بعد، اپ گریڈ شدہ پیکجز کو npm پر شائع کرتا ہے۔ معاونین (Contributors) `pnpm changeset` کے ذریعے ایک changeset شامل کرتے ہیں جب کسی تبدیلی کی وجہ سے ورژن بڑھانا ضروری ہو۔ پری ریلیزز (Prereleases) `.changeset/pre.json` میں ریکارڈ شدہ Changesets pre موڈ استعمال کرتے ہیں؛ npm dist-tag اس کے tag فیلڈ سے اخذ کیا جاتا ہے، لہذا `pnpm changeset pre enter rc` لیٹسٹ کے بجائے "rc" ٹیگ پر شائع کرتا ہے۔ README دو انتباہات نوٹ کرتا ہے: پری ریلیز کاؤنٹر ٹیگ کے بجائے package.json میں موجود ورژن کی پیروی کرتا ہے، اور چینل تبدیل کرنے سے پچھلا dist-tag اپنے آخری ورژن پر پن (pinned) رہ جاتا ہے، لہذا اسے ہر پیکج کے لیے دوبارہ پوائنٹ یا ہٹایا جانا چاہیے۔ مقامی طور پر آغاز کرنا ریپوزٹری کو کلون کریں، pnpm کے ساتھ ڈیپینڈنسیز انسٹال کریں، اور ڈویلپمنٹ، بلڈنگ، ٹیسٹنگ، لنٹنگ، فارمیٹنگ اور ٹائپ چیکنگ کے لیے ڈاکومنٹڈ کمانڈ ٹیبل استعمال کریں۔ README نئے صارفین کو انسٹالیشن ہدایات کے لیے Marigold ڈاکومنٹیشن سائٹ اور تازہ ترین تبدیلیوں کے لیے ریلیز نوٹس پیج کی طرف رہنمائی کرتا ہے۔ یہ پروجیکٹ MIT لائسنس کے تحت شائع کیا گیا ہے۔ README کمپوننٹ کی تعداد، کارکردگی یا اپنائے جانے (adoption) کے بارے میں کوئی دعویٰ نہیں کرتا؛ ان تفصیلات کی تصدیق ڈاکومنٹیشن سائٹ اور پیکج رجسٹری سے کرنی ہوگی۔