### CONTRIBUTING # Contributing to Electron Fiddle Electron Fiddle is a community-driven project, overseen by the [Electron Ecosystem Working Group](https://github.com/electron/governance/tree/main/wg-ecosystem#readme). As such, we welcome and encourage all sorts of contributions. They include, but are not limited to: - Constructive feedback - Bug reports / technical issues - Documentation changes - Feature requests - [Pull requests](#filing-pull-requests) We strongly suggest that before filing an issue, you search through the existing issues to see if it has already been filed by someone else. This project is a part of the Electron ecosystem. As such, all contributions to this project follow [Electron's code of conduct](https://github.com/electron/electron/blob/main/CODE_OF_CONDUCT.md) where appropriate. ## Contribution Suggestions We use the label [`good first issue`](https://github.com/electron/fiddle/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) in the issue tracker to denote fairly-well-scoped-out bugs or feature requests that the community can pick up and work on. If any of those labeled issues do not have enough information, please feel free to ask constructive questions. (This applies to any open issue.) ## Filing Pull Requests Here are some things to keep in mind as you file pull requests to fix bugs, add new features, etc.: - If you're unfamiliar with forking, branching, and pull requests, please see [GitHub's extensive documentation](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests). - GitHub Actions is used to make sure that any new or changed code meets the project's style guidelines, and that the project's test suite passes for each new commit. - Unless it's impractical, please write tests for your changes. This will help us so that we can spot regressions much easier. - When creating commit messages and pull request titles, please adhere to the [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) standard. - Please **do not** bump the version number in your pull requests, the maintainers will do that. Feel free to indicate whether the changes require a major, minor, or patch version bump, as prescribed by the [semantic versioning specification](https://semver.org/). ### Running Fiddle From Source 1. Clone the Electron Fiddle repository locally. ```sh git clone https://github.com/electron/fiddle.git ``` 2. Change directory to where Fiddle has been cloned. ```sh cd fiddle ``` 3. Install dependencies. ```sh yarn ``` 4. Start Fiddle and explore! ```sh yarn start ``` ### Running Tests ```sh yarn test ``` Note that console calls, e.g. console.log(), are mocked out during tests to avoid noise in the test reports. If you want this verbosity, e.g. if you're debugging or writing new tests, it can be enabled by setting the environment variable `FIDDLE_VERBOSE_TESTS` when running. ## Release Process > **Note:** Releasing is only available to contributors who have write > access to the `electron/fiddle` repository. First, create a new branch for your release. Then, run the [`yarn version`](https://yarnpkg.com/cli/version) command with the corresponding `major`, `minor`, or `patch` positional argument. After running the command, you should have a commit updating the `version` field in the `package.json` file. Create a new tag corresponding to this new value with the `git tag` command. Then, you'll want to commit the version bump change onto the main branch. Push your commit upstream and open a new pull request. Finally, push your tag to the GitHub repository with `git push origin `. CI will automatically draft a new release. Check that all the expected files are present, that installers work, and then publish the release. --- ### README # Electron Fiddle icon Electron Fiddle [](https://github.com/electron/fiddle/actions/workflows/test.yml) [](https://coveralls.io/github/electron/fiddle?branch=main) [](https://discord.com/invite/APGC3k5yaH) Electron Fiddle lets you create and play with small Electron experiments. It greets you with a quick-start template after opening – change a few things, choose the version of Electron you want to run it with, and play around. Then, save your Fiddle either as a GitHub Gist or to a local folder. Once published on GitHub, anyone can quickly try your Fiddle out by just entering it in the address bar. **[Download Fiddle now!](https://www.electronjs.org/fiddle)** Electron Fiddle screenshot ## Features ### Explore Electron Screenshot: Electron App running Try Electron without installing any dependencies: Fiddle includes everything you'll need to explore the platform. It also includes examples for every API available in Electron, so if you want to quickly see what a [BrowserView][BrowserView] is or how the [desktopCapturer][desktopCapturer] works, Fiddle has got you covered. ### Code with Types Fiddle includes Microsoft's excellent Monaco Editor, the same editor powering Visual Studio Code. It also installs the type definitions for the currently selected version of Electron automatically, ensuring that you always have all Electron APIs only a few keystrokes away. ### Compile and Package Screenshot: Fiddle's Tasks Menu Fiddle can automatically turn your experiment into binaries you can share with your friends, coworkers, or grandparents. It does so thanks to [electron-forge][electron-forge], allowing you to package your fiddle as an app for Windows, macOS, or Linux. ### Start with Fiddle, Continue Wherever Screenshot: Visual Studio Code with Fiddle Export Fiddle is not an IDE – it is however an excellent starting point. Once your fiddle has grown up, export it as a project with or without [electron-forge][electron-forge]. Then, use your favorite editor and take on the world! ## Contributing Electron Fiddle is a community-driven project that welcomes all sorts of contributions. Please check out our [Contributing Guide](https://github.com/electron/fiddle/blob/main/CONTRIBUTING.md) for more details. ## License [MIT, please see the LICENSE file for full details](https://github.com/electron/fiddle/blob/main/LICENSE.md). When using the Electron or other GitHub logos, be sure to follow the [GitHub logo guidelines](https://github.com/logos). [BrowserView]: https://electronjs.org/docs/latest/api/browser-view [desktopCapturer]: https://electronjs.org/docs/latest/api/desktop-capturer [electron-forge]: https://electronforge.io/ --- ### SECURITY # Reporting Security Issues The Electron team and community take security bugs in Electron seriously. We appreciate your efforts to responsibly disclose your findings, and will make every effort to acknowledge your contributions. To report a security issue, please use the GitHub Security Advisory ["Report a Vulnerability"](https://github.com/electron/fiddle/security/advisories/new) tab. The Electron team will send a response indicating the next steps in handling your report. After the initial reply to your report, the security team will keep you informed of the progress towards a fix and full announcement, and may ask for additional information or guidance. Report security bugs in third-party modules to the person or team maintaining the module. You can also report a vulnerability through the [npm contact form](https://www.npmjs.com/support) by selecting "I'm reporting a security vulnerability". ## Escalation If you do not receive an acknowledgement of your report within 6 business days, or if you cannot find a private security contact for the project, you may escalate to the OpenJS Foundation CNA at `security@lists.openjsf.org`. If the project acknowledges your report but does not provide any further response or engagement within 14 days, escalation is also appropriate. ## The Electron Security Notification Process For context on Electron's security notification process, please see the [Notifications](https://github.com/electron/governance/blob/main/wg-security/membership-and-notifications.md#notifications) section of the Security WG's [Membership and Notifications](https://github.com/electron/governance/blob/main/wg-security/membership-and-notifications.md) Governance document. ## Learning More About Security To learn more about securing an Electron application, please see the [security tutorial](https://www.electronjs.org/docs/latest/tutorial/security). ---