
Generación de ChangeLog totalmente automatizada : esta gema genera un archivo Changelog basado en etiquetas , problemas y solicitudes de extracción fusionadas (y las divide en listas separadas según las etiquetas) desde GitHub.
Dado que no tiene que llenar su CHANGELOG.md manualmente ahora: simplemente ejecute el guión, relájese y tome una taza de ☕ antes de su próximo lanzamiento. ?
Para que sea más fácil para los usuarios y contribuyentes ver con precisión qué cambios notables se han realizado entre cada versión (o versión) del proyecto.
Porque las herramientas de software son para personas . "CangeLogs facilita a los usuarios y contribuyentes ver con precisión qué cambios notables se han realizado entre cada versión (o versión) del proyecto".
➡️ https://keepachangelog.com
Github Changelog Generator es un programa Ruby, distribuido como Rubygem. La página de inicio de Ruby Language tiene una página de instalación.
Instale la gema como:
$ gem install github_changelog_generator
Dependiendo de su sistema, es posible que deba ejecutar el shell como administrador (Windows) o usar sudo gem install github_changelog_generator (Linux).
github_changelog_generator -u github_project_namespace -p github_project
(Donde es probable que el espacio de nombres del proyecto sea su nombre de usuario si es un proyecto que posee, pero también podría ser el espacio de nombres del proyecto)
El uso de Docker es una alternativa a la instalación de Ruby y la gema.
Ejemplo de invocación:
$ docker run -it --rm -v "$(pwd)":/usr/local/src/your-app githubchangeloggenerator/github-changelog-generator
Para Repos Enterprise GitHub, especifique las opciones --github-site y --github-api :
$ github_changelog_generator --github-site="https://github.yoursite.com"
--github-api="https://github.yoursite.com/api/v3/"
Esto genera un CHANGELOG.md , con un formato de Markdown bonito.
Mire a ChangeLog.md para este proyecto
ActionSheetPicker-3.0/Changelog.md fue generado por comando:
$ github_changelog_generator -u github-changelog-generator -p ActionSheetPicker-3.0
En general, se ve así:
1.2.5 (2015-01-15)
Cambio de cambios completo
Mejoras implementadas:
- Use Milestone para especificar en el que se solucionó el error de la versión #22
Se corrigieron errores:
- Error al intentar generar registro para el repositorio sin etiquetas #32
Solicitudes de extracción fusionada:
La clase PrettyPrint se incluye usando minúsculas 'PP' #43 (Schwing)
Soporte de Enterprise GitHub a través de Opciones de línea de comandos #42 (Glenlovett)
Imprima la ayuda para todas las opciones de línea de comandos para obtener más detalles:
$ github_changelog_generator --help
Para obtener más detalles sobre los parámetros, lea la página Wiki: Ejemplos avanzados de generación de ChangeLog
En la raíz de su proyecto, puede colocar un archivo de parámetros llamado .github_changelog_generator para anular los parámetros predeterminados:
Ejemplo:
unreleased=false
future-release=5.0.0
since-tag=1.0.0
GitHub solo permite 50 solicitudes no autenticadas por hora .
Por lo tanto, se recomienda ejecutar este script con autenticación utilizando un token .
Aquí está como:
--token <your-40-digit-token> ; OCHANGELOG_GITHUB_TOKEN en su token de 40 dígitos Puede establecer una variable de entorno ejecutando el siguiente comando en el mensaje o agregándolo a su perfil de shell (por ejemplo, .env , ~/.bash_profile , ~/.zshrc , etc.):
export CHANGELOG_GITHUB_TOKEN="«your-40-digit-github-token»"
Entonces, si recibe un mensaje como este:
API rate limit exceeded for github_username.
See: https://developer.github.com/v3/#rate-limiting¡Es hora de crear este token! (O espere una hora para que GitHub restablezca su límite de solicitud no autenticado).
Sabiendo lo dedicado que es para su proyecto, probablemente no haya estado esperando que github-changelog-generator mantenga un Changelog. Pero probablemente no desee los problemas abiertos de su proyecto y los PRS para todas las características pasadas en su histórica ChangeLog, tampoco.
Ahí es donde --base <your-manual-changelog.md> ¡es útil! Esta opción permite agregar su antiguo manual ChangeLog al final de las entradas generadas.
Si tiene un archivo HISTORY.md en su proyecto, se elegirá automáticamente como el Static Historical ChangeLog y adjunto.
¿Te encanta rake ? ¡Nosotros también! Entonces, lo hemos hecho aún más fácil para usted: hemos proporcionado una biblioteca de tareas rake para su generación de ChangeLog.
Configure la tarea en su Rakefile :
require 'github_changelog_generator/task'
GitHubChangelogGenerator :: RakeTask . new :changelog do | config |
config . user = 'username'
config . project = 'project-name'
config . since_tag = '0.1.14'
config . future_release = '0.2.0'
end Todas las opciones de línea de comandos se pueden pasar a la tarea rake como parámetros config . Y dado que está nombrando la tarea rake usted mismo, puede crear tantos como desee.
Puede buscar nombres de parámetros del código fuente del analizador (#setup_parser). Por ejemplo, para traducir la etiqueta de errores a portugués, en lugar de configurar config.bugs_label , debe configurar config.bug_prefix , etc.
¿Generar un archivo ChangeLog canónico y ordenado, con secciones predeterminadas que siguen las pautas básicas de ChangeLog?
¿Opcionalmente genera cambios inéditos (problemas cerrados que aún no se han lanzado)?
¡Github Enterprise Support a través de opciones de línea de comandos! ?
Personalización de formato flexible:
milestone del problema el mismo nombre que la etiqueta de la versión.question , duplicate , invalid o wontfix ) ✂️Distinguir problemas por etiquetas . ?
bug )?enhancement )?¿Incluir manualmente o excluir problemas por etiquetas?
¡Personaliza mucho más! ¿Ajustar el ChangeLog para que se ajuste a sus preferencias? ( Ver github_changelog_generator --help para más detalles)
Para cada versión, puede agregar un resumen de lanzamiento con texto, imágenes, animaciones GIF, etc., y mostrar nuevas características y notas claramente al usuario. Esto se realiza usando metadatos de GitHub.
Ejemplo : Agregar el resumen de lanzamiento para V1.0.0:

Hello, World! :tada:
release-summary y agréguelo al hito github v1.0.0github-changelog-generatorV1.0.0 (2014-11-07)
Cambio de cambios completo
¡Hola Mundo! ?
Mejoras implementadas:
- Agregar algunas características
Aquí hay una lista de wikipage de alternativas que encontré. Pero ninguno satisfizo mis requisitos.
Si conoce otros proyectos, ¡no dude en editar esta página de wiki!
Aquí hay una lista de proyectos Wikipage.
Si ha usado este proyecto en una aplicación en vivo, ¡hágamelo saber! Nada me hace más feliz que ver a alguien más tomar mi trabajo y volverse loco con él.
Si está utilizando github_changelog_generator para generar el cambio de cambios de su proyecto o conocer otros proyectos que lo usan, agrégalo a esta lista.
github_changelog_generator se puede usar en combinación con la CLI GitHub para crear notas de versión. Use las opciones --since-tag y --output de github_changelog_generator para crear un cambio de cambios para la versión actual y almacenar los resultados en un archivo. En el siguiente ejemplo, la versión 2.0.0 es la versión actual y la versión 1.0.0 es la versión anterior.
mkdir -p build
github_changelog_generator
--since-tag 1.0.0
--output build/changelog.md
Luego use la función Crear la versión de la CLI GitHub para crear una nueva versión de GitHub
gh release create 2.0.0
--notes-file build/changelog.md
--title 2.0.0
¡Nada es imposible!
¡Abra un problema y hagamos que el generador sea mejor juntos!
Los informes de errores, las solicitudes de funciones, los parches y los buenos deseos siempre son bienvenidos. ❗
Github se lanza es algo muy bueno. Y es muy buena práctica mantenerlo. (¡No mucha gente todavía lo está usando!) ㊗️
Por cierto: me gustaría apoyar las versiones de GitHub en los próximos lanzamientos;)
No estoy tratando de comparar la calidad de los registros escritos a mano y generados automáticamente. Dicho eso ...
¡Un cambio de cambios generado automáticamente realmente ayuda, incluso si completa manualmente las notas de la versión!
Esto es posible utilizando la entrada add-sections o configure-sections en .github_changelog_generator . Por ejemplo, para agregar una nueva entrada nueva llamada "Mantenimiento" que atrapará PRS etiquetado con su etiqueta maintenance , puede agregar a .github_changelog_generator The Line:
add-sections= {"maintenance":{"prefix":"**Project maintenance**","labels":["maintenance"]}}
Se puede utilizar un enfoque similar a través de configure-sections para establecer todas las propiedades de la sección (¡incluida la adición de nuevas!).
Cuando su rubí es viejo y no desea actualizar, y desea controlar qué bibliotecas usa, puede usar Bundler.
En un grupo Gem, quizás en un grupo de :development agregue esta gema:
group :development do
gem 'github_changelog_generator' , require : false
endLuego puede mantener dependencias de vuelta como Rack, que actualmente solo es compatible con Ruby> = 2.2.2. Por lo tanto, use una versión anterior para su aplicación agregando una línea como esta a Gemfile:
gem 'rack', '~> 1.6'
De esta manera, puede seguir usando GitHub_changelog_Generator, incluso si no puede instalar la última versión de Ruby.
Windows: V1.14.0 introdujo un error donde intenta crear /tmp/github_changelog-logger.log ... que no es una ruta válida en Windows y, por lo tanto, falla
Solución alternativa: crea un C:tmp .
¿Le gustaría contribuir a este proyecto? Contribuyendo.md tiene todos los detalles sobre cómo hacerlo.
Únase al chat en Gitter: Github-Changelog-Generator
Github Changelog Generator se lanza bajo la licencia MIT.