mirror of
https://github.com/olivierlacan/keep-a-changelog.git
synced 2025-08-25 03:38:13 +02:00
276 lines
30 KiB
HTML
276 lines
30 KiB
HTML
<!DOCTYPE html> <html lang='ru'> <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 в changelog’и.' name='description'> <meta content='https://www.facebook.com/olivier.lacan.5' property='og:article:publisher'> <meta content='Ведите changelog' property='og:title'> <meta content='article' property='og:type'> <meta content='https://keepachangelog.com/ru/1.0.0/' property='og:url'> <meta content='Не позволяйте своим друзьям сливать логи Git в changelog’и.' 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/ru/1.0.0/' rel='canonical'> <title>Ведите changelog</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> <div class='newer'> There is a newer version available: <a href="/ru/1.1.0">Pyccкий 1.1.0</a> </div> <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кий' selected 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 فارسی' 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'> <div class='header'> <div class='title'> <h1>Ведите changelog</h1> <h2>Не позволяйте своим друзьям сливать логи Git в changelog’и.</h2> </div> <a href="https://github.com/olivierlacan/keep-a-changelog/blob/main/CHANGELOG.md">Version <strong>1.0.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> </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>Добавлено</code> — для новых функций. </li> <li> <code>Изменено</code> — для изменений в существующей функциональности. </li> <li> <code>Устарело</code> — для функций, которые скоро будут удалены. </li> <li> <code>Удалено</code> — для удалённых на данный момент функций. </li> <li> <code>Исправлено</code> — для любых исправлений багов. </li> <li> <code>Безопасность</code> — на случай уязвимостей. </li> </ul> </div> <div class='effort'> <h3 id='effort'> <a aria_hidden='true' class='anchor' href='#effort'></a> Как мне тратить меньше усилий на ведение лога изменений? </h3> <p> Держите в начале файла раздел <code>Новое</code>, позволяющий отслеживать предстоящие изменения. </p> <p>Это служит достижению двух целей:</p> <ul> <li> люди смогут видеть, каких изменений им можно ожидать в предстоящих выпусках; </li> <li> в момент релиза вы можете переместить изменения из раздела <code>Новое</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> Diff’ы лога коммитов </h4> <p> Использование diff’ов лога коммитов в качестве лога изменений — это плохая идея: они полны информационного шума от слияния коммитов, от коммитов с непонятными заглавиями, от изменений, вносимых в документацию, и т. п. </p> <p> Назначение коммита в том, чтобы задокументировать шаг в эволюции исходного кода. В некоторых проектах следят за историей коммитов, в некоторых — нет. </p> <p> Назначение же раздела в логе изменений — задокументировать заслуживающие внимания различия (зачастую привнесённые несколькими коммитами), чтобы внятно сообщить конечным пользователям об этих различиях. </p> <h4 id='ignoring-deprecations'> <a aria_hidden='true' class='anchor' href='#ignoring-deprecations'></a> Игнорирование устаревших функций </h4> <p> Когда люди переходят с одной версии продукта на другую, им должно быть до боли ясно, в какой именно момент что-то сломается. Следует предусмотреть возможность перейти к версии, в которой перечислены устаревшие функции, удалить то, что устарело, а затем перейти к версии, из которой эти устаревшие функции удалены. </p> <p> Перечисляйте в логе изменений устаревшие и удалённые функции, а также любые критические изменения, даже если не перечисляете ничего другого. </p> <h4 id='confusing-dates'> <a aria_hidden='true' class='anchor' href='#confusing-dates'></a> Даты, сбивающие с толку </h4> <p> Региональные форматы дат различаются по всему миру, и зачастую трудно найти удобный для человека формат, который был бы интуитивно понятен каждому. Преимущество дат в форматах наподобие <code>2017-07-17</code> заключается в том, что элементы в них следуют в порядке от более крупной единицы измерения к более мелкой: год, месяц и день. К тому же, в отличие от некоторых региональных форматов, в которых изменено положение чисел, обозначающих день и месяц, этот формат не пересекается с другим и не вызывает неоднозначных толкований. Исходя из этих причин и того факта, что этот формат соответствует <a href="https://www.iso.org/iso-8601-date-and-time-format.html">стандарту ISO</a>, именно он рекомендован для записей в логе изменений. </p> <aside> Есть кое-что ещё. Помогите мне собрать эти антипаттерны, подав <a href="https://github.com/olivierlacan/keep-a-changelog/issues">заявку о наличии проблемы</a> или pull request. </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> <p> Хотя легко подумать, что имя файла лога изменений не имеет большого значения, зачем усложнять вашим конечным пользователям поиск места, в котором описаны все значимые изменения? </p> <h4 id='github-releases'> <a aria_hidden='true' class='anchor' href='#github-releases'></a> Что насчёт функции «Релизы» на GitHub’е? </h4> <p> Это отличная инициатива. <a href="https://docs.github.com/en/github/administering-a-repository/releasing-projects-on-github/managing-releases-in-a-repository">Релизы</a> можно использовать для превращения простых тегов Git (например, тега, названного <code>v1.0.0</code>) в подробные примечания к выпускам, вручную добавляя эти примечания, или же можно извлечь сообщения из аннотированных тегов Git и превратить их в примечания. </p> <p> Релизы на GitHub’е создают непортируемый лог изменений, который может быть показан пользователям только на самом GitHub’е. Имеется возможность вести такой лог в формате, очень похожем на формат проекта Keep a Changelog, но это, как правило, требует большей вовлечённости в процесс. </p> <p> Также возможно, что конечным пользователям не всегда легко обнаружить текущую версию GitHub Releases, в отличие от обычных файлов с именами в верхнем регистре (<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 для Ruby, созданный командой 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> Конечно. Всегда есть веские причины для усовершенствования лога изменений. Я регулярно подаю pull request’ы на добавление недостающих выпусков в проекты с открытым исходным кодом, которые оставили свои логи изменений без сопровождения. </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">подкаст The Changelog</a>, чтобы поговорить о том, почему maintainer’ам (персоналу сопровождения) и контрибуторам следует озаботиться ведением логов изменений, а также о мотивах, стоящих за этим проектом. </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> |