Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .mailmap
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Anna Henningsen <anna@addaleax.net> Anna Henningsen <addaleax@gmail.com>
Anna Henningsen <anna@addaleax.net> Anna Henningsen <anna.henningsen@mongodb.com>
Anna Henningsen <anna@addaleax.net> Anna Henningsen <github@addaleax.net>
Anna Herlihy <herlihyap@gmail.com> aherlihy <anna.herlihy@10gen.com>
Anna Herlihy <herlihyap@gmail.com> anna herlihy <anna.herlihy@10gen.com>
Irina Shestak <shestak.irina@gmail.com> Irina Shestak <lrlna@users.noreply.github.com>
Massimiliano Marcon <me@marcon.me>Massimiliano Marcon <max.marcon@mongodb.com>
Maurizio Casimirri <maurizio.cas@gmail.com> mcasimir <maurizio.cas@gmail.com>
Rhys Howell <rhys@rhysh@live.com> Rhys <Anemy@users.noreply.github.com>
Rhys Howell <rhys@rhysh@live.com> Rhys Howell <Anemy@users.noreply.github.com>
11 changes: 9 additions & 2 deletions AUTHORS
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
Anna Herlihy <herlihyap@gmail.com>
Durran Jordan <durran@gmail.com>
Maurizio Casimirri <maurizio.cas@gmail.com>
Anna Herlihy <herlihyap@gmail.com>
Irina Shestak <shestak.irina@gmail.com>
Maurizio Casimirri maurizio.cas@gmail.com
Rhys Howell <rhys@rhysh@live.com>
Anna Henningsen <anna@addaleax.net>
Massimiliano Marcon <me@marcon.me>
Liudmila Kornilova <kornilova203@gmail.com>
Lucas Hrabovsky <hrabovsky.lucas@gmail.com>
Mark Smith <judy@judy.co.uk>
Maxime <maxime.beugnet@gmail.com>
6 changes: 5 additions & 1 deletion packages/async-rewriter/AUTHORS
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
Anna Herlihy <herlihyap@gmail.com>
Durran Jordan <durran@gmail.com>
Maurizio Casimirri <maurizio.cas@gmail.com>
Irina Shestak <shestak.irina@gmail.com>
Maurizio Casimirri maurizio.cas@gmail.com
Rhys Howell <rhys@rhysh@live.com>
Anna Henningsen <anna@addaleax.net>
Liudmila Kornilova <kornilova203@gmail.com>
Massimiliano Marcon <me@marcon.me>
7 changes: 5 additions & 2 deletions packages/browser-repl/AUTHORS
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
Anna Herlihy <herlihyap@gmail.com>
Maurizio Casimirri <maurizio.cas@gmail.com>
Durran Jordan <durran@gmail.com>
Irina Shestak <shestak.irina@gmail.com>
Maurizio Casimirri maurizio.cas@gmail.com
Anna Herlihy <herlihyap@gmail.com>
Rhys Howell <rhys@rhysh@live.com>
Anna Henningsen <anna@addaleax.net>
Massimiliano Marcon <me@marcon.me>
7 changes: 5 additions & 2 deletions packages/browser-runtime-core/AUTHORS
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
Anna Herlihy <herlihyap@gmail.com>
Durran Jordan <durran@gmail.com>
Maurizio Casimirri <maurizio.cas@gmail.com>
Irina Shestak <shestak.irina@gmail.com>
Maurizio Casimirri maurizio.cas@gmail.com
Rhys Howell <rhys@rhysh@live.com>
Anna Herlihy <herlihyap@gmail.com>
Anna Henningsen <anna@addaleax.net>
Massimiliano Marcon <me@marcon.me>
7 changes: 5 additions & 2 deletions packages/browser-runtime-electron/AUTHORS
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
Anna Herlihy <herlihyap@gmail.com>
Maurizio Casimirri <maurizio.cas@gmail.com>
Durran Jordan <durran@gmail.com>
Irina Shestak <shestak.irina@gmail.com>
Maurizio Casimirri maurizio.cas@gmail.com
Rhys Howell <rhys@rhysh@live.com>
Anna Herlihy <herlihyap@gmail.com>
Anna Henningsen <anna@addaleax.net>
Massimiliano Marcon <me@marcon.me>
6 changes: 6 additions & 0 deletions packages/build/AUTHORS
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Durran Jordan <durran@gmail.com>
Irina Shestak <shestak.irina@gmail.com>
Maurizio Casimirri <maurizio.cas@gmail.com>
Anna Henningsen <anna@addaleax.net>
Anna Herlihy <herlihyap@gmail.com>
Rhys Howell <rhys@rhysh@live.com>
9 changes: 6 additions & 3 deletions packages/cli-repl/AUTHORS
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
Anna Herlihy <herlihyap@gmail.com>
Durran Jordan <durran@gmail.com>
Irina Shestak <shestak.irina@gmail.com>
Maurizio Casimirri maurizio.cas@gmail.com
Durran Jordan <durran@gmail.com>
Anna Herlihy <herlihyap@gmail.com>
Maurizio Casimirri <maurizio.cas@gmail.com>
Anna Henningsen <anna@addaleax.net>
Rhys Howell <rhys@rhysh@live.com>
Massimiliano Marcon <me@marcon.me>
7 changes: 5 additions & 2 deletions packages/compass-shell/AUTHORS
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
Anna Herlihy <herlihyap@gmail.com>
Maurizio Casimirri <maurizio.cas@gmail.com>
Rhys Howell <rhys@rhysh@live.com>
Durran Jordan <durran@gmail.com>
Irina Shestak <shestak.irina@gmail.com>
Maurizio Casimirri maurizio.cas@gmail.com
Anna Henningsen <anna@addaleax.net>
Anna Herlihy <herlihyap@gmail.com>
Massimiliano Marcon <me@marcon.me>
8 changes: 5 additions & 3 deletions packages/errors/AUTHORS
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
Anna Herlihy <herlihyap@gmail.com>
Durran Jordan <durran@gmail.com>
Irina Shestak <shestak.irina@gmail.com>
Maurizio Casimirri maurizio.cas@gmail.com
Maurizio Casimirri <maurizio.cas@gmail.com>
Anna Henningsen <anna@addaleax.net>
Durran Jordan <durran@gmail.com>
Rhys Howell <rhys@rhysh@live.com>
Anna Herlihy <herlihyap@gmail.com>
9 changes: 6 additions & 3 deletions packages/history/AUTHORS
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
Anna Herlihy <herlihyap@gmail.com>
Durran Jordan <durran@gmail.com>
Maurizio Casimirri <maurizio.cas@gmail.com>
Irina Shestak <shestak.irina@gmail.com>
Maurizio Casimirri maurizio.cas@gmail.com
Rhys Howell <rhys@rhysh@live.com>
Durran Jordan <durran@gmail.com>
Anna Henningsen <anna@addaleax.net>
Anna Herlihy <herlihyap@gmail.com>
Massimiliano Marcon <me@marcon.me>
5 changes: 4 additions & 1 deletion packages/i18n/AUTHORS
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
Maurizio Casimirri <maurizio.cas@gmail.com>
Anna Herlihy <herlihyap@gmail.com>
Durran Jordan <durran@gmail.com>
Irina Shestak <shestak.irina@gmail.com>
Maurizio Casimirri maurizio.cas@gmail.com
Rhys Howell <rhys@rhysh@live.com>
Anna Henningsen <anna@addaleax.net>
Massimiliano Marcon <me@marcon.me>
7 changes: 7 additions & 0 deletions packages/java-shell/AUTHORS
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Durran Jordan <durran@gmail.com>
Irina Shestak <shestak.irina@gmail.com>
Maurizio Casimirri <maurizio.cas@gmail.com>
Anna Herlihy <herlihyap@gmail.com>
Rhys Howell <rhys@rhysh@live.com>
Anna Henningsen <anna@addaleax.net>
Liudmila Kornilova <kornilova203@gmail.com>
5 changes: 4 additions & 1 deletion packages/service-provider-core/AUTHORS
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
Maurizio Casimirri <maurizio.cas@gmail.com>
Anna Herlihy <herlihyap@gmail.com>
Durran Jordan <durran@gmail.com>
Irina Shestak <shestak.irina@gmail.com>
Maurizio Casimirri maurizio.cas@gmail.com
Rhys Howell <rhys@rhysh@live.com>
Anna Henningsen <anna@addaleax.net>
Massimiliano Marcon <me@marcon.me>
7 changes: 5 additions & 2 deletions packages/service-provider-server/AUTHORS
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
Anna Herlihy <herlihyap@gmail.com>
Maurizio Casimirri <maurizio.cas@gmail.com>
Durran Jordan <durran@gmail.com>
Anna Herlihy <herlihyap@gmail.com>
Irina Shestak <shestak.irina@gmail.com>
Maurizio Casimirri maurizio.cas@gmail.com
Rhys Howell <rhys@rhysh@live.com>
Anna Henningsen <anna@addaleax.net>
Massimiliano Marcon <me@marcon.me>
5 changes: 4 additions & 1 deletion packages/shell-api/AUTHORS
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
Anna Herlihy <herlihyap@gmail.com>
Maurizio Casimirri <maurizio.cas@gmail.com>
Durran Jordan <durran@gmail.com>
Irina Shestak <shestak.irina@gmail.com>
Maurizio Casimirri maurizio.cas@gmail.com
Rhys Howell <rhys@rhysh@live.com>
Anna Henningsen <anna@addaleax.net>
Massimiliano Marcon <me@marcon.me>
6 changes: 4 additions & 2 deletions packages/shell-evaluator/AUTHORS
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
Irina Shestak <shestak.irina@gmail.com>
Anna Herlihy <herlihyap@gmail.com>
Maurizio Casimirri <maurizio.cas@gmail.com>
Rhys Howell <rhys@rhysh@live.com>
Anna Henningsen <anna@addaleax.net>
Durran Jordan <durran@gmail.com>
Irina Shestak <shestak.irina@gmail.com>
Maurizio Casimirri maurizio.cas@gmail.com
70 changes: 70 additions & 0 deletions scripts/generate-authors.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
#!/usr/bin/env node

/*
* Generate an AUTHOR file on the repo root and on each lerna package based on git log.
*
* Add / change aliases in .mailmap to avoid duplications and show the correct
* names / emails.
*/

const { execSync } = require('child_process');
const path = require('path');
const fs = require('fs');

const packageRootPath = path.resolve(__dirname, '..');



function getAuthorsGitLog(packagePath) {
return execSync(
`git log --format='%aN <%aE>' --use-mailmap -- ${packagePath}`,
{ cwd: packageRootPath }
).toString().trim().split('\n');
}

function getAuthorsOrderedByCommitNumber(packagePath) {
const authorsMap = {};

for (const authorName of getAuthorsGitLog(packagePath)) {
authorsMap[authorName] = authorName in authorsMap ? authorsMap[authorName] + 1 : 1;
}

const compareAuthors = ([name1, commitCount1], [name2, commitCount2]) => {
if (commitCount1 === commitCount2) {
return (name1 > name2) ? 1: -1;
}

return commitCount1 > commitCount2 ? -1 : 1;
};

const authors = Object.entries(authorsMap)
.sort(compareAuthors)
.map(([name]) => {
return name;
});

return authors;
}

function getAllPackages() {
return JSON.parse(execSync(`lerna list -a --loglevel=error --json`,
{ cwd: packageRootPath }
).toString().trim());
}

function renderAuthorsFileContent(authors) {
return `${authors.join('\n')}\n`;
}

const packages = getAllPackages();

for (const { location } of packages) {
const packagePath = path.relative(packageRootPath, location);
const authors = getAuthorsOrderedByCommitNumber(packagePath);
fs.writeFileSync(path.resolve(packagePath, 'AUTHORS'), renderAuthorsFileContent(authors));
}

fs.writeFileSync(
path.resolve(packageRootPath, 'AUTHORS'),
renderAuthorsFileContent(getAuthorsOrderedByCommitNumber('.'))
);