-
-
Notifications
You must be signed in to change notification settings - Fork 29
Building, bundling and CI
LeoTM edited this page Apr 16, 2023
·
65 revisions
- 1970s: Yacc (Yet Another Compiler-Compiler) (Unix) - LALR parser generator
- 1976: Make (Unix) - Makefiles
- 1985: Bison (GNU) - general-purpose language parser generator (CFG -> LR/GLR)
- 1987: Flex (fast lexical analyzer generator) - tokenise input
- 1995: Ruby - high-lvl general-purpose language
- 1999: (Apache) Tomccat - Java HTTP server
- 2000: CMake - generate another system's build files - used w Make/Ninja/AndroidStudio/Xcode/MSVisualStudio/etc
- Jul00: (Apache) Ant - Java Make replacement (needs Java plat), XML
- Mar04: RubyGems - Ruby pkg man
- Jul04: (Apache) Maven - Java + C#/Ruby/Scala
- 2007: Qt Creator / Workbench (Qt) - C++/JS/QML IDE for GUIs/widgets on desktop/mobile/Linux - can use qmake/CMake/GNUAutotools
- Apr08: Gradle - Groovy/Kotlin DSL (bundles RN w Metro) (top-down)
- Nov09: Leiningen - Clojure
- 2010: Ninja (Google) - Make replacement, speed up Chrome, parts of Android, LLVM, other
- Sep11: CocoaPods - Obj-C/Swift dep man (inspired by RubyGems) and auto Xcode integ
- May14: Sbt - Scala (needs Java)
- Mar15: Bazel (Blaze) - Starlark (Python) rules/macros - Java/C/C++/Go/Python/Objective-C/Bourne - Android/iOS - (bottom-up)
- Feb16: Please - not Maven, pip, or go build - not make - not Bazel, Buck or Pants - no Windows
- Apr18: Metro (Meta) - RN JS bundler (customise w rnx-kit) - minify faster
- Jun18: Pants - Python/Go/Java/Scala/Shell/Docker - inspired by Blaze - JS help needed (contribute after CLI or earlier)
- Nov20: ESBuild - extremely fast JS/CSS bundler/minifier
- Jan21: Buck (Meta) - Java/Android/iOS/Other - inspired by Bazel
- Mar21: Re.Pack (Haul, Webpack-based) - RN builder
- π§: swcpack (Rust-based) - bundle JS/TS
- π§: Buck2
- IDE: Android Studio [Stable / Preview - RC/Canary]
- Build Tool / Bundler (CLI): Gradle Wrapper
./gradlew
- IDE: Xcode [stable / beta]
- Build Tool / Bundler (CLI):
xcodebuild
- fastlane (CLI)
- Renovate
- Examples
- React Native CircleCI
- RN Storybook CircleCI
- GitHub Actions (yml)
- Xcode - Build and Analyze
- iOS (build and test on sim)
- Java with Gradle (wrapper)
- Android CI (Gradle)
- fastlane
- Super Linter
- etc
- BitRise (yml)
- CocoaPods
- Cert/Profile install
- Xcode Archive/Export
- Android Build
- fastlane
- etc
- CircleCI
- AppCenter
- CodePush only
- Unreliable, Detox E2E not pos
- Host runner
- Remote
- Self-hosted (e.g. M2 Mac Mini)