Skip to content

Commit 8dc3d25

Browse files
committed
v4.7.8
1 parent 668c4fb commit 8dc3d25

File tree

7 files changed

+88
-19
lines changed

7 files changed

+88
-19
lines changed

CONTRIBUTING.md

+70-13
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ The `grunt dev` implements watching for tests and allows for in browser testing
4949
If you notice any problems, please report them to the GitHub issue tracker at
5050
[http://github.com/handlebars-lang/handlebars.js/issues](http://github.com/handlebars-lang/handlebars.js/issues).
5151

52-
##Running Tests
52+
## Running Tests
5353

5454
To run tests locally, first install all dependencies.
5555

@@ -86,7 +86,7 @@ You can use the following scripts to make sure that the CI job does not fail:
8686
- **npm run lint** will run `eslint` and fail on warnings
8787
- **npm run format** will run `prettier` on all files
8888
- **npm run check-before-pull-request** will perform all most checks that our CI job does in its build-job, excluding the "integration-test".
89-
- **npm run integration-test** will run integration tests (using old NodeJS versions and integrations with webpack, babel and so on)
89+
- **npm run test:integration** will run integration tests (using old NodeJS versions and integrations with webpack, babel and so on)
9090
These tests only work on a Linux-machine with `nvm` installed (for running tests in multiple versions of NodeJS).
9191

9292
## Releasing the latest version
@@ -101,17 +101,74 @@ Before attempting the release Handlebars, please make sure that you have the fol
101101

102102
_When releasing a previous version of Handlebars, please look into the CONTRIBUNG.md in the corresponding branch._
103103

104-
A full release may be completed with the following:
105-
106-
```
107-
npm ci
108-
npx grunt
109-
npm publish
110-
111-
cd dist/components/
112-
gem build handlebars-source.gemspec
113-
gem push handlebars-source-*.gem
114-
```
104+
A full release via Docker may be completed with the following:
105+
106+
1. Create a `Dockerfile` in this folder for releasing
107+
```Dockerfile
108+
FROM node:10-slim
109+
110+
ENV EDITOR=vim
111+
112+
# Update stretch repositories
113+
RUN sed -i -e 's/deb.debian.org/archive.debian.org/g' \
114+
-e 's|security.debian.org|archive.debian.org/|g' \
115+
-e '/stretch-updates/d' /etc/apt/sources.list
116+
117+
# Install release dependencies
118+
RUN apt-get update
119+
RUN apt-get install -y git vim
120+
121+
# Work around deprecated npm dependency install via unauthenticated git-protocol:
122+
# https://github.com/kpdecker/generator-release/blob/87aab9b84c9f083635c3fcc822f18acce1f48736/package.json#L31
123+
RUN git config --system url."https://github.com/".insteadOf git://github.com/
124+
125+
# Configure git
126+
RUN git config --system user.email "release@handlebarsjs.com"
127+
RUN git config --system user.name "handlebars-lang"
128+
129+
RUN mkdir /home/node/.config
130+
RUN mkdir /home/node/.ssh
131+
RUN mkdir /home/node/tmp
132+
133+
# Generate config for yo generator-release:
134+
# https://github.com/kpdecker/generator-release#example
135+
# You have to add a valid GitHub OAuth token!
136+
RUN echo "module.exports = {\n auth: 'oauth',\n token: 'GitHub OAuth token'\n};" > /home/node/.config/generator-release
137+
RUN chown -R node:node /home/node/.config
138+
139+
# Add the generated key to GitHub: https://github.com/settings/keys
140+
RUN ssh-keygen -q -t ed25519 -N '' -f /home/node/.ssh/id_ed25519 -C "release@handlebarsjs.com"
141+
RUN chmod 0600 /home/node/.ssh/id_ed25519*
142+
RUN chown node:node /home/node/.ssh/id_ed25519*
143+
```
144+
2. Build and run the Docker image
145+
```bash
146+
docker build --tag handlebars:release .
147+
docker run --rm --interactive --tty \
148+
--volume $PWD:/app \
149+
--workdir /app \
150+
--user $(id -u):$(id -g) \
151+
--env NPM_CONFIG_PREFIX=/home/node/.npm-global \
152+
handlebars:release bash -c 'export PATH=$PATH:/home/node/.npm-global/bin; bash'
153+
```
154+
3. Add SSH key to GitHub: `cat /home/node/.ssh/id_ed25519.pub` (https://github.com/settings/keys)
155+
4. Add GitHub API token: `vi /home/node/.config/generator-release`
156+
5. Execute the following steps:
157+
```bash
158+
npm ci
159+
npm install -g yo@1 grunt@1 generator-release
160+
npm run release
161+
yo release
162+
npm login
163+
npm publish
164+
yo release:publish components handlebars.js dist/components/
165+
166+
cd dist/components/
167+
gem build handlebars-source.gemspec
168+
gem push handlebars-source-*.gem
169+
```
170+
171+
### After the release
115172

116173
After the release, you should check that all places have really been updated. Especially verify that the `latest`-tags
117174
in those places still point to the latest version

components/bower.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "handlebars",
3-
"version": "4.7.7",
3+
"version": "4.7.8",
44
"main": "handlebars.js",
55
"license": "MIT",
66
"dependencies": {}

components/handlebars.js.nuspec

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<package>
33
<metadata>
44
<id>handlebars.js</id>
5-
<version>4.7.7</version>
5+
<version>4.7.8</version>
66
<authors>handlebars.js Authors</authors>
77
<licenseUrl>https://github.com/handlebars-lang/handlebars.js/blob/master/LICENSE</licenseUrl>
88
<projectUrl>https://github.com/handlebars-lang/handlebars.js/</projectUrl>

components/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "handlebars",
3-
"version": "4.7.7",
3+
"version": "4.7.8",
44
"license": "MIT",
55
"jspm": {
66
"main": "handlebars",

lib/handlebars/base.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { registerDefaultDecorators } from './decorators';
55
import logger from './logger';
66
import { resetLoggedProperties } from './internal/proto-access';
77

8-
export const VERSION = '4.7.7';
8+
export const VERSION = '4.7.8';
99
export const COMPILER_REVISION = 8;
1010
export const LAST_COMPATIBLE_COMPILER_REVISION = 7;
1111

package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "handlebars",
33
"barename": "handlebars",
4-
"version": "4.7.7",
4+
"version": "4.7.8",
55
"description": "Handlebars provides the power necessary to let you build semantic templates effectively with no frustration",
66
"homepage": "https://www.handlebarsjs.com/",
77
"keywords": [
@@ -82,6 +82,7 @@
8282
},
8383
"scripts": {
8484
"build": "grunt build",
85+
"release": "npm run build && grunt release",
8586
"format": "prettier --write '**/*.js' && eslint --fix .",
8687
"lint": "npm run lint:eslint && npm run lint:prettier && npm run lint:types",
8788
"lint:eslint": "eslint --max-warnings 0 .",

release-notes.md

+12-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,18 @@
22

33
## Development
44

5-
[Commits](https://github.com/handlebars-lang/handlebars.js/compare/v4.7.7...master)
5+
[Commits](https://github.com/handlebars-lang/handlebars.js/compare/v4.7.8...master)
6+
7+
## v4.7.8 - July 27th, 2023
8+
9+
- Make library compatible with workers (#1894) - 3d3796c
10+
- Don't rely on Node.js global object (#1776) - 2954e7e
11+
- Fix compiling of each block params in strict mode (#1855) - 30dbf04
12+
- Fix rollup warning when importing Handlebars as ESM - 03d387b
13+
- Fix bundler issue with webpack 5 (#1862) - c6c6bbb
14+
- Use https instead of git for mustache submodule - 88ac068
15+
16+
[Commits](https://github.com/handlebars-lang/handlebars.js/compare/v4.7.7...v4.7.8)
617

718
## v4.7.7 - February 15th, 2021
819

0 commit comments

Comments
 (0)