[Internal] Remove obsolete history information, and infrastructure (#13879)

* Remove history infrastructure.

* Remove history information

* Revert "Remove history information"

This reverts commit e490134192e3c99b0815cf5a87a574916f038ba7.
This commit is contained in:
Adam R 2021-09-24 22:02:35 +02:00 committed by GitHub
parent 596120739a
commit abb55dbfbf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 3 additions and 198 deletions

View File

@ -1,6 +1,6 @@
name: Fixes and History
name: Fixes
# Runs on:
# - on master branch of trustwallet repo: fix, history update, checkin
# - on master branch of trustwallet repo: fix, checkin
# - on other branch of trustwallet repo: fix, checkin
# - on fork repos: fix-sanity only
on:
@ -19,8 +19,6 @@ jobs:
with:
token: ${{ secrets.COMMIT_TOKEN }}
ref: ${{ github.ref }}
# this is needed for history, needs to access prev commits
fetch-depth: 0
- name: Checkout (fork repo, default token)
if: github.repository_owner != 'trustwallet'
uses: actions/checkout@v2
@ -40,9 +38,6 @@ jobs:
run: npm run fix-sanity
- name: Debug
run: echo "GITHUB_REF " $GITHUB_REF " GITHUB_BASE_REF " $GITHUB_BASE_REF
- name: Run history
if: github.repository_owner == 'trustwallet' && (github.base_ref == 'master' || github.ref == 'refs/heads/master')
run: npm run history
- name: Show result (diff) (run 'npm run fix' locally)
run: |
git status
@ -57,4 +52,4 @@ jobs:
with:
commit_user_name: trust-wallet-merge-bot
commit_user_email: mergebot@trustwallet.com
commit_message: Fixes (sanity and consistency, auto), history
commit_message: Fixes (sanity and consistency, auto)

View File

@ -11,7 +11,6 @@
"fix-sanity": "ts-node ./script/entrypoint/fix-sanity",
"updateAuto": "ts-node ./script/entrypoint/updateAuto",
"update": "ts-node ./script/entrypoint/updateManual",
"history": "ts-node ./script/entrypoint/history",
"lint": "npx eslint . --ext .js,.jsx,.ts,.tsx",
"lint:fix": "npx eslint . --ext .js,.jsx,.ts,.tsx --fix"
},

View File

@ -1,15 +0,0 @@
import { processChanges } from "../generic/history";
export async function main(): Promise<void> {
try {
const ret = await processChanges();
if (ret != 0) {
process.exit(ret);
}
} catch(err) {
console.error(err);
process.exit(1);
}
}
main();

View File

@ -1,174 +0,0 @@
import * as util from "util";
import {
isPathExistsSync,
readFileSync,
writeFileSync,
} from "./filesystem";
import * as child_process from "child_process";
class VersionInfo {
versionNum: number;
commit: string;
date: string;
}
const FilenameLatest = "history/LATEST.json";
const FilenameChangeTemplate = "history/versions/";
const IncludeHistoryPrefix1 = "blockchains/";
const IncludeHistoryPrefix2 = "dapps/";
//const TooManyChangesLimit = 40;
//const util = require('util');
const exec = util.promisify(child_process.exec);
async function execGit(options: string): Promise<string> {
try {
const cmd = `git ${options}`;
console.log(`executing cmd: ${cmd}`);
const { stdout, stderr } = await exec(cmd);
if (stdout) {
console.log('stdout:');
console.log(stdout);
}
if (stderr) {
console.log('stderr:', stderr);
}
return stdout;
} catch (err) {
console.log('exception:', err);
return "";
}
}
function readLatestVersion(): VersionInfo {
const zeroVer: VersionInfo = {versionNum: 0, commit: "", date: (new Date()).toISOString()};
try {
const rawdata = readFileSync(FilenameLatest);
const ver: VersionInfo = JSON.parse(rawdata) as VersionInfo;
if (!ver.versionNum && !ver.commit) {
return zeroVer;
}
return ver;
} catch (err) {
console.log('Exception:', err);
return zeroVer;
}
}
function writeLatestVersion(version: VersionInfo): void {
try {
const content: string = JSON.stringify(version, null, 4);
writeFileSync(FilenameLatest, content);
} catch (err) {
console.log('Exception:', err);
}
}
async function getCurrentCommit(): Promise<string> {
const raw = await execGit("rev-parse master");
if (!raw) {
return raw;
}
return raw.split("\n").filter(l => l)[0];
}
async function getChangedFiles(commitStart: string, commitEnd: string): Promise<string[]>{
const bulk: string = await execGit(`diff --name-only ${commitStart} ${commitEnd}`);
if (!bulk) {
return [];
}
const list: string[] = bulk.split("\n").map(l => l.trim()).filter(l => l);
return list;
}
function filterChangedFiles(files: string[]): string[] {
return files.filter(l => {
return (l.startsWith(IncludeHistoryPrefix1) || l.startsWith(IncludeHistoryPrefix2));
});
}
function changeListToJson(versionStart: VersionInfo, versionEnd: VersionInfo, changes: string[]): unknown {
//let fullChanges = false;
//if (changes.length > TooManyChangesLimit) {
// fullChanges = true;
//}
const obj: unknown = {
"versionEnd": versionEnd,
"versionStart": versionStart,
//"fullChange": fullChanges,
//"changeCount": changes.length,
};
//if (!fullChanges) {
obj["changes"] = changes;
//}
return obj;
}
// return filename
function writeChangeList(version: VersionInfo, changeList: unknown): string {
try {
const filename: string = FilenameChangeTemplate + version.versionNum.toString() + ".json";
if (isPathExistsSync(filename)) {
throw `Error: file already exists: ${filename}`;
}
const content = JSON.stringify(changeList, null, 4);
writeFileSync(filename, content);
return filename;
} catch (err) {
console.log('exception:', err);
return null;
}
}
export async function processChanges(): Promise<number> {
console.log("Compiling changes since last commit ...");
const ver = readLatestVersion();
if (ver.versionNum == 0 || !ver.versionNum || !ver.commit) {
console.log("Error: Could not obtain latest version");
return 1;
}
console.log(`Latest version: ${JSON.stringify(ver, null, 4)}`);
const currCommit = await getCurrentCommit();
console.log(`Current commit: ${currCommit}`);
if (!currCommit) {
console.log("Error: Could not obtain current commit");
return 2;
}
if (currCommit == ver.commit) {
console.log(`Warning: no new commit since ${ver.commit}`);
return 3;
}
const newVer: VersionInfo = {
versionNum: ver.versionNum + 1,
commit: currCommit,
date: (new Date()).toISOString(),
};
console.log(`New version: ${JSON.stringify(newVer, null, 4)}`);
const filesRaw: string[] = await getChangedFiles(ver.commit, currCommit);
console.log(`${filesRaw.length} changed files found`);
if (!filesRaw || filesRaw.length == 0) {
console.log(`Error: Could not obtain list of changed files between commits ${ver.commit} and ${currCommit}`);
return 4;
}
const files: string[] = filterChangedFiles(filesRaw);
console.log(`${files.length} changed files found (excluding history files)`);
if (!files || files.length == 0) {
console.log(`Warning: No changed files (excluding history files) between commits ${ver.commit} and ${currCommit}`);
return 0;
}
const changeList: unknown = changeListToJson(ver, newVer, files);
const newChangeFile = writeChangeList(newVer, changeList);
if (!newChangeFile) {
console.log(`Error: could not write out new change file`);
return 6;
}
writeLatestVersion(newVer);
console.log(`Changes written to ${FilenameLatest} and ${newChangeFile}`);
return 0;
}