fbt: reproducible manifest builds & improvements (#1801)

* fbt: reproducible manifest builds, less rebuild on small updates; scripts: assets: using timestamp from commandline af available
* fbt: added app import validation for launch_app & single app build targets
* fbt: COMSTR for app imports validation
* docs: minor fixes
* docs: markdown fix
* vscode: comments for RTOS startup

Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
hedger
2022-09-29 15:00:22 +04:00
committed by GitHub
parent aba20b6af8
commit 76d38e832e
10 changed files with 45 additions and 13 deletions

View File

@@ -39,6 +39,13 @@ class Main(App):
"manifest", help="Create directory Manifest"
)
self.parser_manifest.add_argument("local_path", help="local_path")
self.parser_manifest.add_argument(
"--timestamp",
help="timestamp value to embed",
default=0,
type=int,
required=False,
)
self.parser_manifest.set_defaults(func=self.manifest)
self.parser_copro = self.subparsers.add_parser(
@@ -213,7 +220,7 @@ class Main(App):
self.logger.info(
f'Creating temporary Manifest for directory "{directory_path}"'
)
new_manifest = Manifest()
new_manifest = Manifest(self.args.timestamp)
new_manifest.create(directory_path)
self.logger.info(f"Comparing new manifest with existing")

View File

@@ -106,11 +106,11 @@ addManifestRecord(ManifestRecordFile)
class Manifest:
def __init__(self):
def __init__(self, timestamp_value=None):
self.version = None
self.records = []
self.records.append(ManifestRecordVersion(MANIFEST_VERSION))
self.records.append(ManifestRecordTimestamp(timestamp()))
self.records.append(ManifestRecordTimestamp(timestamp_value or timestamp()))
self.logger = logging.getLogger(self.__class__.__name__)
def load(self, filename):