mirror of
https://github.com/EthanShoeDev/fressh.git
synced 2026-01-11 14:22:51 +00:00
Better docs
This commit is contained in:
@@ -1,6 +1,10 @@
|
||||
import type { Config } from 'release-it';
|
||||
import { type Config } from 'release-it';
|
||||
|
||||
export default {
|
||||
npm: {
|
||||
publish: true,
|
||||
publishArgs: ['--access', 'public'],
|
||||
},
|
||||
git: {
|
||||
requireCleanWorkingDir: true,
|
||||
tagName: '${npm.name}-v${version}',
|
||||
@@ -10,20 +14,9 @@ export default {
|
||||
push: true,
|
||||
},
|
||||
|
||||
// This one *does* publish to npm
|
||||
npm: {
|
||||
publish: true,
|
||||
// pass flags you’d give to `npm publish`
|
||||
publishArgs: ['--access', 'public'],
|
||||
// (optional) skip npm’s own prepublish checks:
|
||||
// skipChecks: true
|
||||
},
|
||||
|
||||
github: {
|
||||
release: true,
|
||||
releaseName: '${npm.name} v${version}',
|
||||
// optional: attach build artifacts
|
||||
// assets: ['dist/**']
|
||||
},
|
||||
|
||||
plugins: {
|
||||
@@ -36,7 +29,7 @@ export default {
|
||||
|
||||
hooks: {
|
||||
'before:init': ['turbo run lint:check'],
|
||||
'before:npm:release': 'turbo run build:android build:ios',
|
||||
'after:bump': 'turbo run build',
|
||||
'after:release': 'echo "Published ${npm.name} v${version} to npm"',
|
||||
},
|
||||
} satisfies Config;
|
||||
|
||||
@@ -1,162 +0,0 @@
|
||||
# Contributing
|
||||
|
||||
Contributions are always welcome, no matter how large or small!
|
||||
|
||||
We want this community to be friendly and respectful to each other. Please
|
||||
follow it in all your interactions with the project. Before contributing, please
|
||||
read the [code of conduct](./CODE_OF_CONDUCT.md).
|
||||
|
||||
## Development workflow
|
||||
|
||||
This project is a monorepo managed using
|
||||
[Yarn workspaces](https://yarnpkg.com/features/workspaces). It contains the
|
||||
following packages:
|
||||
|
||||
- The library package in the root directory.
|
||||
- An example app in the `example/` directory.
|
||||
|
||||
To get started with the project, make sure you have the correct version of
|
||||
[Node.js](https://nodejs.org/) installed. See the [`.nvmrc`](./.nvmrc) file for
|
||||
the version used in this project.
|
||||
|
||||
Run `yarn` in the root directory to install the required dependencies for each
|
||||
package:
|
||||
|
||||
```sh
|
||||
yarn
|
||||
```
|
||||
|
||||
> Since the project relies on Yarn workspaces, you cannot use
|
||||
> [`npm`](https://github.com/npm/cli) for development without manually
|
||||
> migrating.
|
||||
|
||||
The [example app](/example/) demonstrates usage of the library. You need to run
|
||||
it to test any changes you make.
|
||||
|
||||
It is configured to use the local version of the library, so any changes you
|
||||
make to the library's source code will be reflected in the example app. Changes
|
||||
to the library's JavaScript code will be reflected in the example app without a
|
||||
rebuild, but native code changes will require a rebuild of the example app.
|
||||
|
||||
If you want to use Android Studio or XCode to edit the native code, you can open
|
||||
the `example/android` or `example/ios` directories respectively in those
|
||||
editors. To edit the Objective-C or Swift files, open
|
||||
`example/ios/UniffiRusshExample.xcworkspace` in XCode and find the source files
|
||||
at `Pods > Development Pods > react-native-uniffi-russh`.
|
||||
|
||||
To edit the Java or Kotlin files, open `example/android` in Android studio and
|
||||
find the source files at `react-native-uniffi-russh` under `Android`.
|
||||
|
||||
You can use various commands from the root directory to work with the project.
|
||||
|
||||
To start the packager:
|
||||
|
||||
```sh
|
||||
yarn example start
|
||||
```
|
||||
|
||||
To run the example app on Android:
|
||||
|
||||
```sh
|
||||
yarn example android
|
||||
```
|
||||
|
||||
To run the example app on iOS:
|
||||
|
||||
```sh
|
||||
yarn example ios
|
||||
```
|
||||
|
||||
To confirm that the app is running with the new architecture, you can check the
|
||||
Metro logs for a message like this:
|
||||
|
||||
```sh
|
||||
Running "UniffiRusshExample" with {"fabric":true,"initialProps":{"concurrentRoot":true},"rootTag":1}
|
||||
```
|
||||
|
||||
Note the `"fabric":true` and `"concurrentRoot":true` properties.
|
||||
|
||||
Make sure your code passes TypeScript and ESLint. Run the following to verify:
|
||||
|
||||
```sh
|
||||
yarn typecheck
|
||||
yarn lint
|
||||
```
|
||||
|
||||
To fix formatting errors, run the following:
|
||||
|
||||
```sh
|
||||
yarn lint --fix
|
||||
```
|
||||
|
||||
Remember to add tests for your change if possible. Run the unit tests by:
|
||||
|
||||
```sh
|
||||
yarn test
|
||||
```
|
||||
|
||||
### Commit message convention
|
||||
|
||||
We follow the
|
||||
[conventional commits specification](https://www.conventionalcommits.org/en) for
|
||||
our commit messages:
|
||||
|
||||
- `fix`: bug fixes, e.g. fix crash due to deprecated method.
|
||||
- `feat`: new features, e.g. add new method to the module.
|
||||
- `refactor`: code refactor, e.g. migrate from class components to hooks.
|
||||
- `docs`: changes into documentation, e.g. add usage example for the module.
|
||||
- `test`: adding or updating tests, e.g. add integration tests using detox.
|
||||
- `chore`: tooling changes, e.g. change CI config.
|
||||
|
||||
Our pre-commit hooks verify that your commit message matches this format when
|
||||
committing.
|
||||
|
||||
### Linting and tests
|
||||
|
||||
[ESLint](https://eslint.org/), [Prettier](https://prettier.io/),
|
||||
[TypeScript](https://www.typescriptlang.org/)
|
||||
|
||||
We use [TypeScript](https://www.typescriptlang.org/) for type checking,
|
||||
[ESLint](https://eslint.org/) with [Prettier](https://prettier.io/) for linting
|
||||
and formatting the code, and [Jest](https://jestjs.io/) for testing.
|
||||
|
||||
Our pre-commit hooks verify that the linter and tests pass when committing.
|
||||
|
||||
### Publishing to npm
|
||||
|
||||
We use [release-it](https://github.com/release-it/release-it) to make it easier
|
||||
to publish new versions. It handles common tasks like bumping version based on
|
||||
semver, creating tags and releases etc.
|
||||
|
||||
To publish new versions, run the following:
|
||||
|
||||
```sh
|
||||
yarn release
|
||||
```
|
||||
|
||||
### Scripts
|
||||
|
||||
The `package.json` file contains various scripts for common tasks:
|
||||
|
||||
- `yarn`: setup project by installing dependencies.
|
||||
- `yarn typecheck`: type-check files with TypeScript.
|
||||
- `yarn lint`: lint files with ESLint.
|
||||
- `yarn test`: run unit tests with Jest.
|
||||
- `yarn example start`: start the Metro server for the example app.
|
||||
- `yarn example android`: run the example app on Android.
|
||||
- `yarn example ios`: run the example app on iOS.
|
||||
|
||||
### Sending a pull request
|
||||
|
||||
> **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://app.egghead.io/playlists/how-to-contribute-to-an-open-source-project-on-github).
|
||||
|
||||
When you're sending a pull request:
|
||||
|
||||
- Prefer small pull requests focused on one change.
|
||||
- Verify that linters and tests are passing.
|
||||
- Review the documentation to make sure it looks good.
|
||||
- Follow the pull request template when opening a pull request.
|
||||
- For pull requests that change the API or implementation, discuss with
|
||||
maintainers first by opening an issue.
|
||||
@@ -1,34 +1,26 @@
|
||||
# react-native-uniffi-russh
|
||||
## @fressh/react-native-uniffi-russh
|
||||
|
||||
Uniffi bindings for russh
|
||||
React Native bindings (via UniFFI) for the Rust SSH library
|
||||
[russh](https://github.com/Eugeny/russh).
|
||||
|
||||
## Installation
|
||||
[](https://www.npmjs.com/package/@fressh/react-native-uniffi-russh)
|
||||
|
||||
```sh
|
||||
npm install react-native-uniffi-russh
|
||||
### Install
|
||||
|
||||
```bash
|
||||
pnpm add @fressh/react-native-uniffi-russh
|
||||
```
|
||||
|
||||
## Usage
|
||||
Peer dependencies (you manage): `react`, `react-native`.
|
||||
|
||||
```js
|
||||
import { multiply } from 'react-native-uniffi-russh';
|
||||
### Usage
|
||||
|
||||
// ...
|
||||
This package exposes a native Rust module for SSH transport. For a complete,
|
||||
working integration, see the example app in this monorepo at `apps/mobile`.
|
||||
|
||||
const result = multiply(3, 7);
|
||||
```
|
||||
### Links
|
||||
|
||||
## Contributing
|
||||
|
||||
- [Development workflow](CONTRIBUTING.md#development-workflow)
|
||||
- [Sending a pull request](CONTRIBUTING.md#sending-a-pull-request)
|
||||
- [Code of conduct](CODE_OF_CONDUCT.md)
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
||||
|
||||
---
|
||||
|
||||
Made with
|
||||
[create-react-native-library](https://github.com/callstack/react-native-builder-bob)
|
||||
- Changelog: [`CHANGELOG.md`](./CHANGELOG.md)
|
||||
- Contributing: see the monorepo guide at
|
||||
[`../../CONTRIBUTING.md`](../../CONTRIBUTING.md)
|
||||
- License: MIT
|
||||
|
||||
Reference in New Issue
Block a user