diff --git a/.github/workflows/fix.yml b/.github/workflows/fix.yml index df8e88754..d9c945f99 100644 --- a/.github/workflows/fix.yml +++ b/.github/workflows/fix.yml @@ -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) diff --git a/package.json b/package.json index a672d440b..5c10290be 100644 --- a/package.json +++ b/package.json @@ -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" }, diff --git a/script/entrypoint/history.ts b/script/entrypoint/history.ts deleted file mode 100644 index b28250b95..000000000 --- a/script/entrypoint/history.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { processChanges } from "../generic/history"; - -export async function main(): Promise { - try { - const ret = await processChanges(); - if (ret != 0) { - process.exit(ret); - } - } catch(err) { - console.error(err); - process.exit(1); - } -} - -main(); diff --git a/script/generic/history.ts b/script/generic/history.ts deleted file mode 100644 index 9376b1301..000000000 --- a/script/generic/history.ts +++ /dev/null @@ -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 { - 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 { - 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{ - 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 { - 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; -}