Giter Site home page Giter Site logo

boyquotes / godot-interactive-changelog Goto Github PK

View Code? Open in Web Editor NEW

This project forked from godotengine/godot-interactive-changelog

0.0 0.0 0.0 12.71 MB

An interactive tool to view a changelog for each version of Godot Engine

Home Page: https://godotengine.github.io/godot-interactive-changelog/

License: MIT License

JavaScript 96.11% Python 2.27% CSS 0.86% HTML 0.76%

godot-interactive-changelog's Introduction

Godot Interactive Changelog

This project is provided for Godot Engine users and contributors to document in a complete and comprehensive manner changes that go into each release and developer preview of the engine. This project aims to largely remove the manual labor from creating and maintaining a project changelog, and provides tools to generate static information, such as CHANGELOG.md and release notes for the blog.

The benefit of this automated system is that it allows to track PRs as well as individual commits, preserving important context for the work that goes into each release. For example, it can also detect commits that were cherry-picked, and identify their original PRs.

Live website: https://godotengine.github.io/godot-interactive-changelog/

Contributing

This project is written in JavaScript and is built using Node.JS. HTML and CSS are used for the presentation. The end result of the build process is completely static and can be server from any web server, no Node.JS required.

Front-end is designed in a reactive manner using industry standard Web Components (powered by lit-element). This provides native browser support, and results in a small overhead from the build process.

To build the project locally you need to have Node.JS installed (12.x and newer should work just fine).

This project uses GitHub's GraphQL API. To fetch live data you need to generate a personal OAuth token. You can supply your token to the scripts using the GRAPHQL_TOKEN environment variable. Note, that if you don't have member access to the organization, you may not be able to access all the information used when generating the database.

Building the website

  1. Clone or download the project.
  2. From the project root run npm install or yarn to install dependencies.
  3. Run npm run build or yarn run build to build the pages.
  4. Run npm run publish-db or yarn run publish-db to prepare and copy configs and data.
  5. Serve the out/ folder with your method of choice (e.g. using Python 3: python -m http.server 8080 -d ./out).

rollup is used for browser packing of scripts and copying of static assets. The data fetching script is plain JavaScript with node-fetch used to polyfill fetch()-like API.

Adding a new version

  1. Add a config file under the ./configs folder.
  • It must follow this format: <REPO_OWNER>.<REPO_NAME>.<VERSION>.json, e.g. godotengine.godot.1.2.3.json.
  1. Run npm run compose-db version:<VERSION> or yarn run compose-db version:<VERSION> to fetch the data from GitHub.
  • This project defaults to godotengine/godot, but you can also customize it with owner:<REPO_OWNER> and repo:<REPO_NAME>.
  • By default the repo is checked out to the ./temp folder, you can skip this step with skip-checkout.
  • GitHub API is very flaky and requests can fail from time to time due to the server-side issues; the compose script has a few tricks to mitigate that, but ultimately it can still randomly fail on bigger changelogs. Just run it again.
  1. Run npm run publish-db or yarn run publish-db to prepare and copy configs and data.

License

This project is provided under the MIT License.

godot-interactive-changelog's People

Contributors

yurisizov avatar akien-mga avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.