Skip to content

Commit c780746

Browse files
committed
Let there be Rock
1 parent 8c3179d commit c780746

File tree

225 files changed

+1642
-1093
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

225 files changed

+1642
-1093
lines changed

.changeset/config.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"$schema": "https://unpkg.com/@changesets/[email protected]/schema.json",
33
"changelog": "@changesets/cli/changelog",
44
"commit": false,
5-
"fixed": [["@rnef/*"]],
5+
"fixed": [["@rock-js/*"]],
66
"linked": [],
77
"access": "public",
88
"baseBranch": "main",

.github/workflows/nightly.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ jobs:
6969
- name: Deploy template
7070
run: |
7171
cd ..
72-
NPM_CONFIG_REGISTRY=http://localhost:4873 pnpm create @rnef/app \
72+
NPM_CONFIG_REGISTRY=http://localhost:4873 pnpm create @rock-js/app \
7373
--registry http://localhost:4873 \
7474
NightlyDeploy \
7575
--template=default \
@@ -85,7 +85,7 @@ jobs:
8585
- name: Build Android template
8686
run: |
8787
cd ../NightlyDeploy
88-
pnpm rnef build:android
88+
pnpm rock build:android
8989
9090
build-ios:
9191
runs-on: macos-latest
@@ -110,7 +110,7 @@ jobs:
110110
- name: Deploy template
111111
run: |
112112
cd ..
113-
NPM_CONFIG_REGISTRY=http://localhost:4873 pnpm create @rnef/app \
113+
NPM_CONFIG_REGISTRY=http://localhost:4873 pnpm create @rock-js/app \
114114
--registry http://localhost:4873 \
115115
NightlyDeploy \
116116
--template=default \
@@ -126,5 +126,5 @@ jobs:
126126
- name: Build iOS template
127127
run: |
128128
cd ../NightlyDeploy
129-
pnpm rnef build:ios --verbose \
129+
pnpm rock build:ios --verbose \
130130
--destination=simulator

.verdaccio/config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ uplinks:
55
url: https://registry.npmjs.org/
66

77
packages:
8-
'@rnef/*':
8+
'@rock-js/*':
99
access: $all
1010
publish: $all
1111
'**':

CONTRIBUTING.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
# Contributing to RNEF
1+
# Contributing to Rock
22

33
## Development Process
44

5-
All work on RNEF happens directly on GitHub. Contributors send pull requests which go through review process.
5+
All work on Rock happens directly on GitHub. Contributors send pull requests which go through review process.
66

77
> **Working on your first pull request?** You can learn how from this _free_ series: [How to Contribute to an Open Source Project on GitHub](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github).
88
@@ -13,22 +13,22 @@ All work on RNEF happens directly on GitHub. Contributors send pull requests whi
1313

1414
## Testing your changes
1515

16-
> Please make sure the version of React Native matches the one present in devDependencies of RNEF. Otherwise, you may get unexpected errors.
16+
> Please make sure the version of React Native matches the one present in devDependencies of Rock. Otherwise, you may get unexpected errors.
1717
1818
### Setup
1919

20-
Because of a modular design of the RNEF, we recommend developing using symbolic links to its packages. This way you can use it seamlessly in the tested project, as you'd use the locally installed RNEF CLI. Here's what you need to run in the terminal:
20+
Because of a modular design of the Rock, we recommend developing using symbolic links to its packages. This way you can use it seamlessly in the tested project, as you'd use the locally installed Rock CLI. Here's what you need to run in the terminal:
2121

2222
```sh
23-
cd /path/to/cloned/rnef/
23+
cd /path/to/cloned/rock/
2424
pnpm link-packages
2525
```
2626

2727
And then in your test project link dependencies you're using, e.g.:
2828

2929
```sh
3030
cd /my/test/project/
31-
pnpm link @rnef/cli @rnef/platform-android @rnef/platform-ios @rnef/plugin-metro
31+
pnpm link rock @rock-js/platform-android @rock-js/platform-ios @rock-js/plugin-metro
3232
```
3333

3434
#### Hoist pnpm dependencies
@@ -41,11 +41,11 @@ node-linker=hoisted
4141

4242
#### Update Metro configuration
4343

44-
When using Metro plugin, you'll need to update the `watchFolders` to hint Metro to look for symlinks in RNEF project. You can do this by adding the following to your `metro.config.js`:
44+
When using Metro plugin, you'll need to update the `watchFolders` to hint Metro to look for symlinks in Rock project. You can do this by adding the following to your `metro.config.js`:
4545

4646
```js
4747
{
48-
watchFolders: [path.resolve(__dirname, '../path/to/rnef')],
48+
watchFolders: [path.resolve(__dirname, '../path/to/rock')],
4949
}
5050
```
5151

@@ -54,11 +54,11 @@ This configuration is not necessary when using Re.Pack plugin.
5454
### Run in your test project
5555

5656
```sh
57-
pnpm rnef start
58-
pnpm rnef run:android
57+
pnpm rock start
58+
pnpm rock run:android
5959
```
6060

61-
### Testing Create RNEF App project
61+
### Testing Create Rock App project
6262

6363
In order to test changes to `create-app` package, you need to run the following commands:
6464

@@ -78,8 +78,8 @@ rm -rf ~/Library/Caches/pnpm/dlx/
7878
# Run tests
7979
pnpm e2e
8080

81-
# Or Create RNEF app
82-
NPM_CONFIG_REGISTRY=http://localhost:4873 pnpm create @rnef/app --registry http://localhost:4873
81+
# Or Create Rock app
82+
NPM_CONFIG_REGISTRY=http://localhost:4873 pnpm create @rock-js/app --registry http://localhost:4873
8383
# Then use pnpm install with registry
8484
echo "node-linker=hoisted" > .npmrc
8585
NPM_CONFIG_REGISTRY=http://localhost:4873 pnpm install
@@ -147,12 +147,12 @@ This part is for maintainers only, documenting steps to manually publish the pac
147147

148148
## Reporting issues
149149

150-
You can report issues on our [bug tracker](https://github.com/callstack/rnef/issues). Please follow the issue template when opening an issue.
150+
You can report issues on our [bug tracker](https://github.com/callstack/rock/issues). Please follow the issue template when opening an issue.
151151

152152
## Stale Bot
153153

154154
This repository is using bot to automatically mark issues and PRs as stale and close them. The "stale" label is added after 90 days of inactivity, and it's getting closed 7 days later. If you find the issue important or you want to keep it open for any particular reason, please show any activity in the issue or contact maintainers to add the "no-stale-bot" label, which prevents bot from closing the issues.
155155

156156
## License
157157

158-
By contributing to RNEF, you agree that your contributions will be licensed under its **MIT** license.
158+
By contributing to Rock, you agree that your contributions will be licensed under its **MIT** license.

README.md

Lines changed: 66 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,84 @@
1-
<a href="https://www.callstack.com/open-source?utm_campaign=generic&utm_source=github&utm_medium=referral&utm_content=rnef" align="center">
1+
<a href="https://www.callstack.com/open-source?utm_campaign=generic&utm_source=github&utm_medium=referral&utm_content=rock" align="center">
22
<picture>
3-
<img alt="React Native Enterprise Framework" src="https://github.com/user-attachments/assets/5d7d2dd4-4561-431c-a70b-05a76896b8d4">
3+
<img alt="Rock" src="https://github.com/user-attachments/assets/417baa3c-ae36-447f-baf9-1e0f423c3433">
44
</picture>
55
</a>
66
<p align="center">
7-
This is a React Native framework for developing large, modular applications for all the platforms supported by React Native.
7+
🪨 Rock is a cross-platform React Native app development and build toolchain built for modularity, build reuse, and incremental adoption. It integrates seamlessly with your existing infrastructure, giving you complete control without vendor lock-in.
88
</p>
99

1010
---
1111

12+
## React Native at scale is challenging
13+
14+
Enterprise apps aren't built overnight. As maintainers of the Community CLI and partners to enterprise teams, we've seen the real challenges: high build times, difficulty adopting new third-party cloud services, and high barriers to introducing React Native into existing iOS and Android apps.
15+
16+
Rock simplifies native build setup and reuse. In most React Native codebases, only about 10% of code changes affect the native iOS/Android files. Yet most teams rebuild their native apps constantly—on every commit, PR, or merge to main—when it's completely unnecessary.
17+
18+
Rock leverages this insight by providing intelligent caching in your cloud infrastructure, seamlessly integrated through its CLI. This allows you to skip up to 90% of unnecessary native builds.
19+
1220
## Features
1321

14-
- 🐾 Incremental adoption in native apps thanks to our simplified brownfield approach
15-
- 🔬 Web-like DX thanks to advanced native build caching hosted on your infra
16-
- 🏰 Pluggable design to leverage out-of-tree platforms, custom bundlers, etc.
22+
**🖥️ Brand New CLI**
23+
A familiar CLI experience with end-to-end development and build workflows. Migrate in just 10 minutes.
24+
25+
**☁️ Reusable Cloud Builds**
26+
Reliable caching of native artifacts (APK, IPA) that you can store wherever you prefer, or use our out-of-the-box integrations with GitHub, S3, and R2.
27+
28+
**🔧 GitHub Actions**
29+
Complete logic for downloading, uploading, and building native artifacts for iOS (APP, IPA) and Android (APK, AAB).
30+
31+
**🔗 Plug-and-Play Brownfield**
32+
Package your React Native app as a framework and integrate it into your iOS and Android apps just like any other library.
33+
34+
**📦 Bundler Flexibility**
35+
Rock supports both Metro and Re.Pack for JavaScript bundling. With Re.Pack, you can build Super Apps and Mobile Microfrontends.
36+
37+
**🔌 Extensible Plugin System**
38+
Built with modularity in mind, Rock allows you to extend its capabilities through plugins that integrate with both the CLI and native templates.
1739

1840
## Installation
1941

20-
For new projects you can run:
42+
Rock is designed for incremental adoption. Whether you're just starting with React Native in your iOS or Android app, or want to migrate from the React Native Community CLI, you can do it step-by-step without having to figure everything out at once.
2143

44+
### Migrating an existing Community CLI project
45+
46+
To migrate an existing project, open a terminal in your project root and run:
47+
48+
```shell
49+
npm create rock-app
2250
```
23-
npx @rnef/create-app enterprise
51+
52+
### Creating a new project
53+
54+
To create a fresh React Native app with Rock, open a terminal and run:
55+
56+
```shell
57+
npm create rock-app
58+
```
59+
60+
### Adding to an existing native project
61+
62+
To add React Native to an existing iOS or Android app with Rock, use our Brownfield plugins:
63+
64+
```shell
65+
npm create rock-app
66+
# ...
67+
◆ What plugins do you want to start with?
68+
│ ◼ brownfield-ios
69+
│ ◼ brownfield-android
2470
```
2571

26-
## Adding to existing projects
72+
For detailed instructions, please follow our [Integrating with Native Apps](https://rockjs.dev/docs/brownfield/intro) documentation.
73+
74+
## Documentation
75+
76+
Visit [rockjs.dev](https://rockjs.dev) to learn more about the framework, why we created it, how it can be useful to you, and how to use it in more advanced scenarios.
77+
78+
## Contributing
79+
80+
Read our [contributing guidelines](CONTRIBUTING.md) to learn how you can contribute with bug reports, documentation, and code.
81+
82+
## Made with ❤️ at Callstack
2783

28-
To migrate your existing project, please follow steps described [here](https://rnef.dev/docs/getting-started/migrating-from-community-cli).
84+
Rock is an open source project and will always remain free to use. If you think it's cool, please star it 🌟. [Callstack](https://www.callstack.com/?utm_source=github.com&utm_medium=referral&utm_campaign=rock&utm_term=readme-with-love) is a group of React and React Native geeks. Contact us at [[email protected]](mailto:[email protected]) if you need any help with these technologies or just want to say hi!

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"name": "rnef",
2+
"name": "rock",
33
"version": "0.0.0",
44
"license": "MIT",
55
"type": "module",

packages/cli/CHANGELOG.md

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,16 @@
1-
# @rnef/cli
1+
# rock
2+
3+
## 0.9.0
4+
5+
### Minor Changes
6+
7+
- 47ec267: Let there be Rock
8+
9+
### Patch Changes
10+
11+
- Updated dependencies [47ec267]
12+
- @rock-js/config@0.9.0
13+
- @rock-js/tools@0.9.0
214

315
## 0.8.13
416

@@ -136,7 +148,7 @@
136148

137149
### Patch Changes
138150

139-
- 778a11f: fix: export Config type from @rnef/cli
151+
- 778a11f: fix: export Config type from rnef
140152
- @rnef/config@0.7.26
141153
- @rnef/tools@0.7.26
142154

packages/cli/README.md

Lines changed: 76 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,84 @@
1-
# @rnef/cli
1+
<a href="https://www.callstack.com/open-source?utm_campaign=generic&utm_source=github&utm_medium=referral&utm_content=rock" align="center">
2+
<picture>
3+
<img alt="Rock" src="https://github.com/user-attachments/assets/417baa3c-ae36-447f-baf9-1e0f423c3433">
4+
</picture>
5+
</a>
6+
<p align="center">
7+
🪨 Rock is a cross-platform React Native app development and build toolchain built for modularity, build reuse, and incremental adoption. It integrates seamlessly with your existing infrastructure, giving you complete control without vendor lock-in.
8+
</p>
29

3-
Command-line interface for React Native Enterprise Framework (RNEF). This package is part of the RNEF ecosystem.
10+
---
411

5-
## Quick Start
12+
## React Native at scale is challenging
613

7-
Create a new RNEF project:
14+
Enterprise apps aren't built overnight. As maintainers of the Community CLI and partners to enterprise teams, we've seen the real challenges: high build times, difficulty adopting new third-party cloud services, and high barriers to introducing React Native into existing iOS and Android apps.
815

9-
```sh
10-
npx @rnef/create-app enterprise
16+
Rock simplifies native build setup and reuse. In most React Native codebases, only about 10% of code changes affect the native iOS/Android files. Yet most teams rebuild their native apps constantly—on every commit, PR, or merge to main—when it's completely unnecessary.
17+
18+
Rock leverages this insight by providing intelligent caching in your cloud infrastructure, seamlessly integrated through its CLI. This allows you to skip up to 90% of unnecessary native builds.
19+
20+
## Features
21+
22+
**🖥️ Brand New CLI**
23+
A familiar CLI experience with end-to-end development and build workflows. Migrate in just 10 minutes.
24+
25+
**☁️ Reusable Cloud Builds**
26+
Reliable caching of native artifacts (APK, IPA) that you can store wherever you prefer, or use our out-of-the-box integrations with GitHub, S3, and R2.
27+
28+
**🔧 GitHub Actions**
29+
Complete logic for downloading, uploading, and building native artifacts for iOS (APP, IPA) and Android (APK, AAB).
30+
31+
**🔗 Plug-and-Play Brownfield**
32+
Package your React Native app as a framework and integrate it into your iOS and Android apps just like any other library.
33+
34+
**📦 Bundler Flexibility**
35+
Rock supports both Metro and Re.Pack for JavaScript bundling. With Re.Pack, you can build Super Apps and Mobile Microfrontends.
36+
37+
**🔌 Extensible Plugin System**
38+
Built with modularity in mind, Rock allows you to extend its capabilities through plugins that integrate with both the CLI and native templates.
39+
40+
## Installation
41+
42+
Rock is designed for incremental adoption. Whether you're just starting with React Native in your iOS or Android app, or want to migrate from the React Native Community CLI, you can do it step-by-step without having to figure everything out at once.
43+
44+
### Migrating an existing Community CLI project
45+
46+
To migrate an existing project, open a terminal in your project root and run:
47+
48+
```shell
49+
npm create rock-app
1150
```
1251

52+
### Creating a new project
53+
54+
To create a fresh React Native app with Rock, open a terminal and run:
55+
56+
```shell
57+
npm create rock-app
58+
```
59+
60+
### Adding to an existing native project
61+
62+
To add React Native to an existing iOS or Android app with Rock, use our Brownfield plugins:
63+
64+
```shell
65+
npm create rock-app
66+
# ...
67+
◆ What plugins do you want to start with?
68+
│ ◼ brownfield-ios
69+
│ ◼ brownfield-android
70+
```
71+
72+
For detailed instructions, please follow our [Integrating with Native Apps](https://rockjs.dev/docs/brownfield/intro) documentation.
73+
1374
## Documentation
1475

15-
For detailed documentation about RNEF and its tools, visit [RNEF Documentation](https://rnef.dev)
76+
Visit [rockjs.dev](https://rockjs.dev) to learn more about the framework, why we created it, how it can be useful to you, and how to use it in more advanced scenarios.
77+
78+
## Contributing
79+
80+
Read our [contributing guidelines](CONTRIBUTING.md) to learn how you can contribute with bug reports, documentation, and code.
81+
82+
## Made with ❤️ at Callstack
83+
84+
Rock is an open source project and will always remain free to use. If you think it's cool, please star it 🌟. [Callstack](https://www.callstack.com/?utm_source=github.com&utm_medium=referral&utm_campaign=rock&utm_term=readme-with-love) is a group of React and React Native geeks. Contact us at [[email protected]](mailto:[email protected]) if you need any help with these technologies or just want to say hi!

packages/cli/package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
2-
"name": "@rnef/cli",
3-
"version": "0.8.13",
2+
"name": "rock",
3+
"version": "0.9.0",
44
"type": "module",
55
"types": "./dist/src/index.d.ts",
66
"exports": {
@@ -11,7 +11,7 @@
1111
"./package.json": "./package.json"
1212
},
1313
"bin": {
14-
"rnef": "./dist/src/bin.js"
14+
"rock": "./dist/src/bin.js"
1515
},
1616
"files": [
1717
"dist"
@@ -25,8 +25,8 @@
2525
"dependencies": {
2626
"adm-zip": "^0.5.16",
2727
"@react-native-community/cli-config": "^19.1.0",
28-
"@rnef/config": "^0.8.13",
29-
"@rnef/tools": "^0.8.13",
28+
"@rock-js/config": "^0.9.0",
29+
"@rock-js/tools": "^0.9.0",
3030
"commander": "^12.1.0",
3131
"tar": "^7.4.3",
3232
"tslib": "^2.3.0"

packages/cli/src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
export * from './lib/cli.js';
2-
export type { Config } from '@rnef/config';
2+
export type { Config } from '@rock-js/config';

0 commit comments

Comments
 (0)