mirror of
https://github.com/olivierlacan/keep-a-changelog.git
synced 2025-08-25 03:38:13 +02:00
280 lines
29 KiB
HTML
280 lines
29 KiB
HTML
<!DOCTYPE html> <html lang='fa'> <head> <meta charset='utf-8'> <meta content='IE=edge' http-equiv='X-UA-Compatible'> <meta content='width=device-width, initial-scale=1.0' name='viewport'> <meta content='خروجی git log را به اسم تاریخچهٔ تغییرات پروژه منتشر نکنید' name='description'> <meta content='https://www.facebook.com/olivier.lacan.5' property='og:article:publisher'> <meta content='تاریخچهٔ تغییرات را نگه دارید' property='og:title'> <meta content='article' property='og:type'> <meta content='https://keepachangelog.com/fa/1.1.0/' property='og:url'> <meta content='خروجی git log را به اسم تاریخچهٔ تغییرات پروژه منتشر نکنید' property='og:description'> <meta content='https://keepachangelog.com/assets/images/keep-a-changelog-opengraph-851f2d20.png' property='og:image'> <link href='/assets/images/favicon.ico' rel='shortcut icon' type='image/x-icon'> <link href='https://keepachangelog.com/fa/1.1.0/' rel='canonical'> <title>تاریخچهٔ تغییرات را نگه دارید</title> <link href='https://fonts.googleapis.com' rel='preconnect'> <link crossorigin='true' href='https://fonts.gstatic.com' rel='preconnect'> <link href="//fonts.googleapis.com/css?family=Muli:400,700&display=swap" rel="stylesheet"/> <link href="//fonts.googleapis.com/css?family=Source+Code+Pro:400,700&display=swap" rel="stylesheet"/> <link href="/assets/stylesheets/application-d3e51c0c.css" rel="stylesheet"/> <script src="/assets/javascripts/all-466c2b8a.js" defer="defer"></script> </head> <body> <article> <header> <nav class='locales' role='navigation'> <label for='language-select' title='Pick one of the 28 translations'>Languages (28):</label> <select id='language-select' name='language'> <option label='1.0.0 العربية' value='ar'> 1.0.0 العربية </option> <option label='1.1.0 Čeština' value='cs'> 1.1.0 Čeština </option> <option label='1.1.0 Dansk' value='da'> 1.1.0 Dansk </option> <option label='1.1.0 Deutsch' value='de'> 1.1.0 Deutsch </option> <option label='1.1.0 English' value='en'> 1.1.0 English </option> <option label='1.1.0 Español' value='es-ES'> 1.1.0 Español </option> <option label='1.1.0 Français' value='fr'> 1.1.0 Français </option> <option label='1.0.0 Hrvatski' value='hr'> 1.0.0 Hrvatski </option> <option label='1.0.0 Indonesia' value='id-ID'> 1.0.0 Indonesia </option> <option label='1.1.0 Italiano' value='it-IT'> 1.1.0 Italiano </option> <option label='1.1.0 日本語' value='ja'> 1.1.0 日本語 </option> <option label='1.1.0 Norsk (Bokmål)' value='nb'> 1.1.0 Norsk (Bokmål) </option> <option label='1.1.0 Nederlands' value='nl'> 1.1.0 Nederlands </option> <option label='1.1.0 polski' value='pl'> 1.1.0 polski </option> <option label='1.1.0 Português do Brasil' value='pt-BR'> 1.1.0 Português do Brasil </option> <option label='1.1.0 română' value='ro'> 1.1.0 română </option> <option label='1.1.0 Pyccкий' value='ru'> 1.1.0 Pyccкий </option> <option label='1.0.0 Slovenčina' value='sk'> 1.0.0 Slovenčina </option> <option label='1.0.0 ქართული' value='ka'> 1.0.0 ქართული </option> <option label='1.1.0 Slovenščina' value='sl'> 1.1.0 Slovenščina </option> <option label='1.0.0 Srpski' value='sr'> 1.0.0 Srpski </option> <option label='1.1.0 Svenska' value='sv'> 1.1.0 Svenska </option> <option label='1.1.0 Türkçe' value='tr-TR'> 1.1.0 Türkçe </option> <option label='1.1.0 Українська' value='uk'> 1.1.0 Українська </option> <option label='1.1.0 简体中文' value='zh-CN'> 1.1.0 简体中文 </option> <option label='1.1.0 正體中文' value='zh-TW'> 1.1.0 正體中文 </option> <option label='1.0.0 한국어' value='ko'> 1.0.0 한국어 </option> <option label='1.1.0 فارسی' selected value='fa'> 1.1.0 فارسی </option> </select> </nav> <img src="/assets/images/keep-a-changelog-mark-f8b06a42.svg" width="130" height="100" class="mark" alt=""/> </header> <div class='main' role='main'> <link rel="stylesheet" href="https://cdn.rawgit.com/rastikerdar/vazir-font/v19.0.0/dist/font-face.css"> <style>
|
||
body,html,h1,h2,h3,h4,h5,h6,a{font-family:Vazir;direction:rtl;text-align:right}
|
||
div.frequently-asked-questions h4:after{float:left}
|
||
pre {direction:ltr;text-align:left}
|
||
</style> <div class='header'> <div class='title'> <h1>تاریخچهٔ تغییرات را نگه دارید</h1> <h2>خروجی git log را به اسم تاریخچهٔ تغییرات پروژه منتشر نکنید</h2> </div> <a href="https://github.com/olivierlacan/keep-a-changelog/blob/main/CHANGELOG.md">Version <strong>1.1.0</strong> </a><pre class='changelog' lang='en'># Changelog
|
||
|
||
All notable changes to this project will be documented in this file.
|
||
|
||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||
|
||
## [Unreleased]
|
||
|
||
### Added
|
||
|
||
- v1.1 Brazilian Portuguese translation.
|
||
- v1.1 German Translation
|
||
- v1.1 Spanish translation.
|
||
- v1.1 Italian translation.
|
||
- v1.1 Polish translation.
|
||
- v1.1 Ukrainian translation.
|
||
|
||
### Changed
|
||
|
||
- Use frontmatter title & description in each language version template
|
||
- Replace broken OpenGraph image with an appropriately-sized Keep a Changelog
|
||
image that will render properly (although in English for all languages)
|
||
- Fix OpenGraph title & description for all languages so the title and
|
||
description when links are shared are language-appropriate
|
||
|
||
### Removed
|
||
|
||
- Trademark sign previously shown after the project description in version
|
||
0.3.0
|
||
|
||
## [1.1.1] - 2023-03-05
|
||
|
||
### Added
|
||
|
||
- Arabic translation (#444).
|
||
- v1.1 French translation.
|
||
- v1.1 Dutch translation (#371).
|
||
- v1.1 Russian translation (#410).
|
||
- v1.1 Japanese translation (#363).
|
||
- v1.1 Norwegian Bokmål translation (#383).
|
||
- v1.1 "Inconsistent Changes" Turkish translation (#347).
|
||
- Default to most recent versions available for each languages.
|
||
- Display count of available translations (26 to date!).
|
||
- Centralize all links into `/data/links.json` so they can be updated easily.
|
||
|
||
### Fixed
|
||
|
||
- Improve French translation (#377).
|
||
- Improve id-ID translation (#416).
|
||
- Improve Persian translation (#457).
|
||
- Improve Russian translation (#408).
|
||
- Improve Swedish title (#419).
|
||
- Improve zh-CN translation (#359).
|
||
- Improve French translation (#357).
|
||
- Improve zh-TW translation (#360, #355).
|
||
- Improve Spanish (es-ES) transltion (#362).
|
||
- Foldout menu in Dutch translation (#371).
|
||
- Missing periods at the end of each change (#451).
|
||
- Fix missing logo in 1.1 pages.
|
||
- Display notice when translation isn't for most recent version.
|
||
- Various broken links, page versions, and indentations.
|
||
|
||
### Changed
|
||
|
||
- Upgrade dependencies: Ruby 3.2.1, Middleman, etc.
|
||
|
||
### Removed
|
||
|
||
- Unused normalize.css file.
|
||
- Identical links assigned in each translation file.
|
||
- Duplicate index file for the english version.
|
||
|
||
## [1.1.0] - 2019-02-15
|
||
|
||
### Added
|
||
|
||
- Danish translation (#297).
|
||
- Georgian translation from (#337).
|
||
- Changelog inconsistency section in Bad Practices.
|
||
|
||
### Fixed
|
||
|
||
- Italian translation (#332).
|
||
- Indonesian translation (#336).
|
||
|
||
## [1.0.0] - 2017-06-20
|
||
|
||
### Added
|
||
|
||
- New visual identity by [@tylerfortune8](https://github.com/tylerfortune8).
|
||
- Version navigation.
|
||
- Links to latest released version in previous versions.
|
||
- "Why keep a changelog?" section.
|
||
- "Who needs a changelog?" section.
|
||
- "How do I make a changelog?" section.
|
||
- "Frequently Asked Questions" section.
|
||
- New "Guiding Principles" sub-section to "How do I make a changelog?".
|
||
- Simplified and Traditional Chinese translations from [@tianshuo](https://github.com/tianshuo).
|
||
- German translation from [@mpbzh](https://github.com/mpbzh) & [@Art4](https://github.com/Art4).
|
||
- Italian translation from [@azkidenz](https://github.com/azkidenz).
|
||
- Swedish translation from [@magol](https://github.com/magol).
|
||
- Turkish translation from [@emreerkan](https://github.com/emreerkan).
|
||
- French translation from [@zapashcanon](https://github.com/zapashcanon).
|
||
- Brazilian Portuguese translation from [@Webysther](https://github.com/Webysther).
|
||
- Polish translation from [@amielucha](https://github.com/amielucha) & [@m-aciek](https://github.com/m-aciek).
|
||
- Russian translation from [@aishek](https://github.com/aishek).
|
||
- Czech translation from [@h4vry](https://github.com/h4vry).
|
||
- Slovak translation from [@jkostolansky](https://github.com/jkostolansky).
|
||
- Korean translation from [@pierceh89](https://github.com/pierceh89).
|
||
- Croatian translation from [@porx](https://github.com/porx).
|
||
- Persian translation from [@Hameds](https://github.com/Hameds).
|
||
- Ukrainian translation from [@osadchyi-s](https://github.com/osadchyi-s).
|
||
|
||
### Changed
|
||
|
||
- Start using "changelog" over "change log" since it's the common usage.
|
||
- Start versioning based on the current English version at 0.3.0 to help
|
||
translation authors keep things up-to-date.
|
||
- Rewrite "What makes unicorns cry?" section.
|
||
- Rewrite "Ignoring Deprecations" sub-section to clarify the ideal
|
||
scenario.
|
||
- Improve "Commit log diffs" sub-section to further argument against
|
||
them.
|
||
- Merge "Why can’t people just use a git log diff?" with "Commit log
|
||
diffs".
|
||
- Fix typos in Simplified Chinese and Traditional Chinese translations.
|
||
- Fix typos in Brazilian Portuguese translation.
|
||
- Fix typos in Turkish translation.
|
||
- Fix typos in Czech translation.
|
||
- Fix typos in Swedish translation.
|
||
- Improve phrasing in French translation.
|
||
- Fix phrasing and spelling in German translation.
|
||
|
||
### Removed
|
||
|
||
- Section about "changelog" vs "CHANGELOG".
|
||
|
||
## [0.3.0] - 2015-12-03
|
||
|
||
### Added
|
||
|
||
- RU translation from [@aishek](https://github.com/aishek).
|
||
- pt-BR translation from [@tallesl](https://github.com/tallesl).
|
||
- es-ES translation from [@ZeliosAriex](https://github.com/ZeliosAriex).
|
||
|
||
## [0.2.0] - 2015-10-06
|
||
|
||
### Changed
|
||
|
||
- Remove exclusionary mentions of "open source" since this project can
|
||
benefit both "open" and "closed" source projects equally.
|
||
|
||
## [0.1.0] - 2015-10-06
|
||
|
||
### Added
|
||
|
||
- Answer "Should you ever rewrite a change log?".
|
||
|
||
### Changed
|
||
|
||
- Improve argument against commit logs.
|
||
- Start following [SemVer](https://semver.org) properly.
|
||
|
||
## [0.0.8] - 2015-02-17
|
||
|
||
### Changed
|
||
|
||
- Update year to match in every README example.
|
||
- Reluctantly stop making fun of Brits only, since most of the world
|
||
writes dates in a strange way.
|
||
|
||
### Fixed
|
||
|
||
- Fix typos in recent README changes.
|
||
- Update outdated unreleased diff link.
|
||
|
||
## [0.0.7] - 2015-02-16
|
||
|
||
### Added
|
||
|
||
- Link, and make it obvious that date format is ISO 8601.
|
||
|
||
### Changed
|
||
|
||
- Clarified the section on "Is there a standard change log format?".
|
||
|
||
### Fixed
|
||
|
||
- Fix Markdown links to tag comparison URL with footnote-style links.
|
||
|
||
## [0.0.6] - 2014-12-12
|
||
|
||
### Added
|
||
|
||
- README section on "yanked" releases.
|
||
|
||
## [0.0.5] - 2014-08-09
|
||
|
||
### Added
|
||
|
||
- Markdown links to version tags on release headings.
|
||
- Unreleased section to gather unreleased changes and encourage note
|
||
keeping prior to releases.
|
||
|
||
## [0.0.4] - 2014-08-09
|
||
|
||
### Added
|
||
|
||
- Better explanation of the difference between the file ("CHANGELOG")
|
||
and its function "the change log".
|
||
|
||
### Changed
|
||
|
||
- Refer to a "change log" instead of a "CHANGELOG" throughout the site
|
||
to differentiate between the file and the purpose of the file — the
|
||
logging of changes.
|
||
|
||
### Removed
|
||
|
||
- Remove empty sections from CHANGELOG, they occupy too much space and
|
||
create too much noise in the file. People will have to assume that the
|
||
missing sections were intentionally left out because they contained no
|
||
notable changes.
|
||
|
||
## [0.0.3] - 2014-08-09
|
||
|
||
### Added
|
||
|
||
- "Why should I care?" section mentioning The Changelog podcast.
|
||
|
||
## [0.0.2] - 2014-07-10
|
||
|
||
### Added
|
||
|
||
- Explanation of the recommended reverse chronological release ordering.
|
||
|
||
## [0.0.1] - 2014-05-31
|
||
|
||
### Added
|
||
|
||
- This CHANGELOG file to hopefully serve as an evolving example of a
|
||
standardized open source project CHANGELOG.
|
||
- CNAME file to enable GitHub Pages custom domain.
|
||
- README now contains answers to common questions about CHANGELOGs.
|
||
- Good examples and basic guidelines, including proper date formatting.
|
||
- Counter-examples: "What makes unicorns cry?".
|
||
|
||
[unreleased]: https://github.com/olivierlacan/keep-a-changelog/compare/v1.1.1...HEAD
|
||
[1.1.1]: https://github.com/olivierlacan/keep-a-changelog/compare/v1.1.0...v1.1.1
|
||
[1.1.0]: https://github.com/olivierlacan/keep-a-changelog/compare/v1.0.0...v1.1.0
|
||
[1.0.0]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.3.0...v1.0.0
|
||
[0.3.0]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.2.0...v0.3.0
|
||
[0.2.0]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.1.0...v0.2.0
|
||
[0.1.0]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.8...v0.1.0
|
||
[0.0.8]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.7...v0.0.8
|
||
[0.0.7]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.6...v0.0.7
|
||
[0.0.6]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.5...v0.0.6
|
||
[0.0.5]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.4...v0.0.5
|
||
[0.0.4]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.3...v0.0.4
|
||
[0.0.3]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.2...v0.0.3
|
||
[0.0.2]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.1...v0.0.2
|
||
[0.0.1]: https://github.com/olivierlacan/keep-a-changelog/releases/tag/v0.0.1
|
||
</pre> </div> <div class='answers'> <h3 id='what'> <a aria_hidden='true' class='anchor' href='#what'></a> تاریخچهٔ تغییرات چیست؟ </h3> <p> تاریخچهٔ تغییرات، فایلی شامل تغییرات عمدهٔ هر نسخه از پروژه بهترتیبِ زمان انتشار هر نسخه است. </p> <h3 id='why'> <a aria_hidden='true' class='anchor' href='#why'></a> چرا باید لیست تغییرات را نگهداری کنیم؟ </h3> <p> برای اینکه کاربران بدانند در هر نسخه از پروژه چه اتفاقااتی افتاده است. </p> <h3 id='who'> <a aria_hidden='true' class='anchor' href='#who'></a> لیست تغییرات به درد چه کسانی میخورد؟ </h3> <p> مصرفکنندهها، توسعهدهندهها، کاربران نهایی و در یک کلام مردم. </p> <p> مسلماً وقتی نرمافزاری بروزرسانی میشود، کاربران آن دوست دارند بدانند چرا و چطور این تغییرات اعمال شده است. </p> </div> <div class='good-practices'> <h3 id='how'> <a aria_hidden='true' class='anchor' href='#how'></a> چطور یک تاریخچهٔ تغییرات خوب بسازیم؟ </h3> <h4 id='principles'> <a aria_hidden='true' class='anchor' href='#principles'></a> راهنمای کلی </h4> <ul> <li> تاریخچهٔ تغییرات <em>برای انسان</em> است، نه ماشین. </li> <li> برای هر نسخه از پروژه، یک مدخل جدید تعریف کنید. </li> <li> تغییرات مشابه را دستهبندی کنید. </li> <li> نسخهها و بخشها قابل لینکشدن باشند. </li> <li> آخرین نسخه را در ابتدا قرار دهید. </li> <li> تاریخ انتشار هر نسخه را مشخص کنید. </li> <li> بگویید که آیا از <a href="https://semver.org/">نسخهبندی معنایی</a> پیروی میکنید یا نه. </li> </ul> <a aria_hidden='true' class='anchor' href='#types'></a> <h4 id='types'>انواع تغییرات</h4> <ul> <li> <code>Added</code> برای قابلیتهای جدید. </li> <li> <code>Changed</code> برای تغییر در عملکردهای فعلی. </li> <li> <code>Deprecated</code> برای قابلیتهایی که حذف میشود. </li> <li> <code>Removed</code> برای قابلیتهای حذفشده. </li> <li> <code>Fixed</code> برای خطاهای رفعشده. </li> <li> <code>Security</code> برای آسیبپذیریهای امنیتی. </li> </ul> </div> <div class='effort'> <h3 id='effort'> <a aria_hidden='true' class='anchor' href='#effort'></a> چطور ثبت تغییرات پروژه را آسانتر کنیم؟ </h3> <p> در بالای فایل تاریخچهٔ تغییرات، بخشی را تحت عنوان <code>Unreleased</code> برای دنبالکردن تغییرات پیشرو در نظر بگیرید. </p> <p>این کار دو فایده دارد:</p> <ul> <li> اولاً کاربران میتوانند پیش از انتشار یک نسخهٔ جدید، از تغییراتی که میتوانند در نسخهٔ بعدی انتظار داشته باشند مطلع شوند. </li> <li> دوماً هنگام انتشار نسخهٔ جدید، میتوانید بهراحتی بخش <code>Unreleased</code> را در قالب یک نسخهٔ جدید به بخش انتشاریافتهها منتقل کنید و دیگر لازم نباشد بروید ببینید چه تغییراتی ایجاد شده است. </li> </ul> </div> <div class='bad-practices'> <h3 id='bad-practices'> <a aria_hidden='true' class='anchor' href='#bad-practices'></a> آیا تاریخچهٔ تغییرات میتواند بد نوشته شود؟ </h3> <p>بله. در شرایط زیر.:</p> <h4 id='log-diffs'> <a aria_hidden='true' class='anchor' href='#log-diffs'></a> استفاده از خروجی log diff به عنوان تاریخچهٔ تغییرات </h4> <p></p> استفاده از خروجی log diffها به عنوان تاریخچهٔ تغییرات، ایدهٔ بدی است. این خروجی مملو از اطلاعات درهموبرهم است؛ مثلاً کامیتهای مربوط به مرج، کامیتهایی با عناوین مبهم، تغییرات مربوط به مستندات و غیره. <p> هدف از یک کامیت، ثبت یک گام انجامشده در روند تکامل سورس کد است. برخی از پروژهها، کامیتهای تمیزی دارند و برخی نه. </p> <p></p> هدف از یک مدخل جدید در فایل تاریخچهٔ تغییرات، مستندسازی شفاف تغییرات مهمِ پروژه برای کاربران نهایی است. هر مدخل در تاریخچهٔ تغییرات لزوماً متناظر با یک کامیت در تاریخچهٔ کامیتها نیست. ممکن است چندین کامیت مختلف، مربوط به یک تغییر باشد و بالعکس یک کامیت (غیراستاندارد) دربردارندهٔ چندین تغییر مهم باشد. <h4 id='ignoring-deprecations'> <a aria_hidden='true' class='anchor' href='#ignoring-deprecations'></a> نادیدهگرفتن چیزهای منسوخشده </h4> <p> وقتی کاربران از یک نسخه به نسخهٔ دیگر بهروزرسانی میکنند، باید بدانند که چه موقع نسخهٔ جدید، تغییرات ناسازگار بههمراه دارد؛ یعنی مثلاً بعد از بروزرسانی یک کتابخانه که پروژهٔ شما به آن وابسته بوده، آیا بخشهایی از پروژه از کار میافتد یا نه. اگر بله، کدام بخشها. پاسخ به این سؤال کمک میکند توسعهدهندهها متناسب با نسخهٔ جدید، قسمتهای منسوخشده را جایگزین کرده و بعد از آن اقدام به بروزرسانی کنند. </p> <h4 id='confusing-dates'> <a aria_hidden='true' class='anchor' href='#confusing-dates'></a> تاریخهای گیجکننده </h4> <p> در هر نقطهای از دنیا شکل نمایش تاریخ متفاوت است؛ بنابراین پیداکردن یک قالب نمایش همهفهم برای کل مردم دنیا کار دشواری است. مزیت استفاده از قالبهایی مثل <code>17-07-2017</code> این است که در آن ترتیب بزرگترین به کوچکترین واحدها یعنی سال، ماه و روز رعایت شده است. این باعث میشود که برخلاف برخی از قالبها که در آن جای ماه و روز عوض شده، درک تاریخ دچار ابهام نشود. با درنظرگرفتن این دلایل و این واقعیت که این فرمت، یک <a href="https://www.iso.org/iso-8601-date-and-time-format.html">استاندارد ایزو</a> است، این قالب را برای مدخلهای تاریخچهٔ تغییرات در نظر گرفتهایم. </p> <h4 id='inconsistent-changes'> <a aria_hidden='true' class='anchor' href='#inconsistent-changes'></a> ناهمگونی ثبت تغییرات </h4> <p></p> تاریخچهٔ تغییراتی که فقط شامل برخی از تغییرات است میتواند به اندازهٔ نبود تاریخچهٔ تغییرات خطرناک باشد. با اینکه لزومی به ثبت همهٔ تغییرات مثلاً حذف یک فاصلهٔ خالی نیست، باید هر تغییر مهمی را در تاریخچهٔ تغییرات ثبت کرد. نایکدستی در ثبت تغییرات ممکن است اعتماد کاربران را به تاریخچهٔ تغییرات به عنوان یگانه مرجع مشاهدهٔ تغییرات سلب کند. یک تاریخچهٔ تغییرات خوب باید بهطور منظم بروزرسانی شود. <aside> اگر فکر میکنید جای موارد بیشتری در این لیست خالی است با <a href="https://github.com/olivierlacan/keep-a-changelog/issues">ارسال ایشو</a> یا ارسال پولریکوئست به من کمک کنید. </aside> </div> <div class='frequently-asked-questions'> <h3 id='frequently-asked-questions'> <a aria_hidden='true' class='anchor' href='#frequently-asked-questions'></a> سوالات متداول </h3> <h4 id='standard'> <a aria_hidden='true' class='anchor' href='#standard'></a> آیا فرمت استانداردی برای تاریخچهٔ تغییرات وجود دارد؟ </h4> <p> حقیتاً نه. یک "راهنمای" <a href="https://www.gnu.org/prep/standards/html_node/Style-of-Change-Logs.html#Style-of-Change-Logs">راهنمای شیوه ثبت تاریخچهٔ تغییرات GNU</a> و یک <a href="https://www.gnu.org/prep/standards/html_node/NEWS-File.html#NEWS-File">فایل دو پاراگرافی بلندِ GNU NEWS</a> وجود دارد که متأسفانه هردویشان نارسا و ناکافی هستند. </p> <p> این پروژه قصد دارد <a href="https://github.com/olivierlacan/keep-a-changelog/blob/main/CHANGELOG.md">قراردادی بهتر برای ثبت تاریخچهٔ تغییرات باشد</a> که برگرفته از تجربیات جامعهٔ متنباز است. </p> <p> از نقد سالم، بحثوگفتگو و پیشنهادها <a href="https://github.com/olivierlacan/keep-a-changelog/issues">استقبال میکنیم.</a> </p> <h4 id='filename'> <a aria_hidden='true' class='anchor' href='#filename'></a> نام فایل تاریخچهٔ تغییرات چه چیزی باشد؟ </h4> <p> نام این فایل را <code>CHANGELOG.md</code> بگذارید. بعضی پروژهها از <code>HISTORY</code>, <code>NEWS</code> یا <code>RELEASES</code> استفاده میکنند. </p> <h4 id='github-releases'> <a aria_hidden='true' class='anchor' href='#github-releases'></a> چرا از ریلیزهای گیتهاب استفاده نکنیم؟ </h4> <p> ابتکار خوبی است. در هنگام انتشار <a href="https://docs.github.com/en/github/administering-a-repository/releasing-projects-on-github/managing-releases-in-a-repository">Release</a>ها میتوانید به جای عرضهٔ یک نسخهٔ ساده (مثلاً یک برچسب خالی با نام <code>v1.0.0</code>)، لیست تغییرات آن نسخه را در قالب یک یادداشت، به آن برچسب ضمیمه کنید. </p> <p> اما نکته این است که تاریخچهٔ تغییراتی که در هر ریلیز گیتهاب منتشر میکنید فقط در خودِ گیتهاب قابل استفاده است و بهراحتی نمیتوانید آن را به جای دیگری منتقل کنید. شاید بتوانید بسیار شبیه نسخهٔ پیشنهادی این سند کنید ولی کار زحمتداری است. </p> <p> مشاهدهٔ تغییرات پروژه در لابهلای ریلیزهای گیتهاب، به اندازهٔ دیدن همهٔ تغییرات در یک فایل، آسان و دلچسب نیست. فایلهایی با حرف بزرگ، (<code>README</code>, <code>CONTRIBUTING</code>, غیره.) جذابیت بیشتری برای کاربران دارد. مشکل کوچک بعدی این است که رابط کاربری فعلی اجازه نمیدهد بین تاریخچهٔ کامیتها در عرضههای مختلف، پیوند برقرار کنید. </p> <h4 id='automatic'> <a aria_hidden='true' class='anchor' href='#automatic'></a> آیا نمیتوان مطابقت تاریخچهٔ تغییرات با موازین این سند را به صورت خودکار انجام داد؟ </h4> <p> مشکل است؛ چون افراد از فرمتها و نامگذاریهای متعددی برای این فایل استفاده میکنند. </p> <p> <a href="https://github.com/tech-angels/vandamme/">Vandamme</a> یک روبی gem است که توسط تیم Gemnasium ساخته شده است. این ابزار، تاریخچهٔ تغییرات پروژههای متنباز (البته نه همه) را بررسی میکند. </p> <h4 id='yanked'> <a aria_hidden='true' class='anchor' href='#yanked'></a> عرضههای yanked چطور؟ </h4> <p> عرضههای Yanked نسخههایی هستند که به خاطر باگ جدی یا مشکل امنیتی باید گرفته شوند. این نسخهها اغلب حتی در تاریخچهٔ تغییرات نیز دیده نمیشوند، اما باید اضافه شوند. آنها را به صورت زیر در فایل تاریخچهٔ تغییرات نشان دهید: </p> <p><code>## [0.0.5] - 2014-12-13 [YANKED]</code></p> <p> برچسب <code>[YANKED]</code> را به این دلیل، بهشکل متمایز در تاریخچهٔ تغییرات آوردهایم که نظرها را به خود جلب کند. بعلاوه وجود کروشه، کار پارزرها را راحتتر میکند. </p> <h4 id='rewrite'> <a aria_hidden='true' class='anchor' href='#rewrite'></a> آیا لازم است تاریخچهٔ تغییرات را بازنویسی کنیم؟ </h4> <p> قطعاً. معمولاً همیشه دلیل خوبی برای بهبود تاریخچهٔ تغییرات وجود دارد. من معمولاً بهطور منظم، فایل تاریخچهٔ تغییرات را برای پروژههای متنبازی که این کار را انجام ندادهاند مینویسم و تغییرات را به صورت یک پولریکوئست ارائه میدهم. </p> <p> گاهی نیز ممکن است یادتان رفته باشد که تغییرات ناسازگارِ یک نسخه را ثبت کنید. در چنین شرایطی نیز واضح است که باید تاریخچهٔ تغییرات را بروزرسانی کنید. </p> <h4 id='contribute'> <a aria_hidden='true' class='anchor' href='#contribute'></a> چطور میتوانم مشارکت کنم؟ </h4> <p> این سند، <strong>کامل و بینقص</strong> نیست؛ صرفاً نظرات بهدقت بررسیشدهای است که همراه اطلاعات و مثالهایی، در اینجا قرار دادهام. </p> <p> این به خاطر آن است که میخواهم جامعهٔ ما توسعهدهندهها به یک اتفاقنظر برسد. من معتقدم بحثوگفتگو بهاندازهٔ نتیجه مهم است. </p> <p> بنابراین شما نیز <strong><a href="https://github.com/olivierlacan/keep-a-changelog">دست به کار شوید</a></strong>. </p> </div> <div class='press'> <h3>گفتگو</h3> <p> در <a href="https://changelog.com/podcast/127">پادکست Changelog</a>، گفتگویی داشتهام دربارهٔ انگیزهٔ پشت این پروژه و اینکه چرا متصدیان نگهداری و مشارکتکنندگان پروژهها باید به تاریخچهٔ تغییرات اهمیت بدهند. </p> </div> <footer class='footer clearfix' role='contentinfo'> <img src="/assets/images/keep-a-changelog-mark-f8b06a42.svg" width="30" height="30" class="mark" alt=""/> <p class='about'> This project is <a href="https://choosealicense.com/licenses/mit/">MIT Licensed</a> // <a href="https://github.com/olivierlacan/keep-a-changelog/">Created & maintained</a> by <a href="https://olivierlacan.com/">Olivier Lacan</a> <a href="https://ruby.social/@olivierlacan" rel="me" aria-label="Link to Olivier Lacan's Mastodon account"></a> // Designed by Tyler Fortune </p> </footer> </div> </article> </body> <script>
|
||
var _gauges = _gauges || [];
|
||
(function() {
|
||
var t = document.createElement('script');
|
||
t.type = 'text/javascript';
|
||
t.async = true;
|
||
t.id = 'gauges-tracker';
|
||
t.setAttribute('data-site-id', '5389808eeddd5b055a00440d');
|
||
t.src = '//secure.gaug.es/track.js';
|
||
var s = document.getElementsByTagName('script')[0];
|
||
s.parentNode.insertBefore(t, s);
|
||
})();
|
||
</script> </html> |