Giter VIP home page Giter VIP logo

dz's Introduction

Welcome to Phoenix!

Website: https://phcode.dev

Phoenix is a modern open-source and free software code editor for the web, built for the browser.

Code Guardian

Phoenix build verification

Sonar code quality check Security rating vulnerabilities Code Coverage Code Bugs Reliability Rating Maintainability Rating Lines of Code Technical debt commit msg linted by git-commit-msg-linter
Error and App stability monitoring powered by
bugsnag

Development status: Stable/Release-candidate.

Screenshot from 2022-09-20 13-35-03

Tenets

  1. Targeted for web development. Js, html and CSS enjoy special status.
  2. Game UX - Approach code editing like a game that a school kid would play after skipping the tutorial.
  3. Light-weight editor.
  4. Extension support maintaining full compatibility with Brackets extensions (except brackets-node extensions).
  5. Uncompromised local development experience.
  6. Support for pluggable remote back-ends.
  7. Phoenix core will work from a static web server.
  8. Source code in release builds will always be auditable and readable from dev-tools.

AGPL/Libre license guards your right to audit and change code that handles your data. Phoenix usually loads up in under one second and loading it faster at the expense of making it hard to read and develop is a noop. We prioritize simplicity and eaze of development.

Contributing/ Feedback

Building Phoenix

Source Repository

  • Install gulp globally once. npm install -g gulp-cli (use sudo in *nix systems)
  • run npm install
  • To build after npm install: npm run build

Running phoenix

IDE Setup

SonarLint static code analysis checker is not yet available as a Brackets extension. Use sonarLint plugin for webstorm or any of the available IDEs from this link before raising a pull request: https://www.sonarlint.org/

Building Release artifacts

  • run npm install
  • To build the release artifacts, run one of the following commands depending on what build you want:
    • npm run release:dev, npm run release:staging, npm run release:prod
  • The release artifacts to host will be in dist folder.

Running and debugging tests in browser

This is the easiest and preferred way to run Phoenix tests.

  • run npm run zipTestFiles in the terminal.
    • NB: this will setup all the required files for test
  • Use chrome/edge browser to navigate to Phoenixhttp://localhost:8000/src/index.html
  • In Phoenix Menu, select Debug > run Tests To open the test runner.
  • Run tests as required.
    • NB: To reset test data files, click on reset and reload tests option in the test runner.
  • You can use the browser dev tools to debug.

Running and debugging tests in headless mode or in GitHub Actions

We use Playwright to run the headless version of our tests. Please note that we do not use Playwright as our actual test framework, but as a headless browser(chrome and firefox) to run our tests written in Jasmine/Mocha.

  • run npm run test in the terminal to run the tests run in GitHub actions.
  • To debug the tests, npm run testDebug. However, we recommend using the above Running tests in browser section to actually fix/debug tests that are failing in the pipeline.

Running tests in dev staging and prod stacks

Browsing the virtual file system

To view/edit the files in the browser virtual file system in Phoenix: debug menu> Open Virtual File System

Clean and reset builds

  • clean builds only: npm run clean
  • Reset everything including node modules: npm run reset

Previewing changes in dev and staging

One a pull request is merged, it will be automatically deployed to dev.phcode.dev . To view the changes:

  1. goto https://dev.phcode.dev/devEnable.html and click enable dev.phcode.dev . only needs to be done once.
  2. goto https://dev.phcode.dev to preview your changes. If it is a recent change, you might need to wait for up to 15 minutes before the changes are deployed to the dev stage. Reload page a few times to get the latest dev build and reset cached content.

The process is the same for staging.phcode.dev. Builds that are verified in development will be pushed periodically to staging. To view staging:

  1. goto https://staging.phcode.dev/devEnable.html and click enable staging.phcode.dev . only needs to be done once.
  2. goto https://staging.phcode.dev to preview your changes. If it is a recent change, you might need to wait for up to 15 minutes before the changes are deployed to the dev stage. Reload page a few times to get the latest dev build and reset cached content.

Deployment to phcore.dev

  • All changes pushed to the main branch are automatically published to https://dev.phcode.dev
  • To publish the changes to https://staging.phcode.dev , push changes to the staging branch in this repo with a pull request.
  • Once the changes are validated and tested, trigger a prod deployment by pushing to the prod branch.

Acknowledgements

License

Discussion: phcode-dev/phoenix#184

GNU AGPL-3.0 License

Copyright (c) 2021 - present Core.ai

Based on Backets, Copyright (c) 2012 Adobe Systems Incorporated and the brackets.io community

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://opensource.org/licenses/AGPL-3.0.

dz's People

Contributors

redmunds avatar jasonsanjose avatar abose avatar njx avatar peterflynn avatar gruehle avatar raymondlim avatar dangoor avatar tvoliter avatar walfgithub avatar tommalbran avatar larz0 avatar jeffrybooher avatar ingorichter avatar zaggino avatar websitedeveloper avatar busykai avatar swmitra avatar joelrbrandt avatar miguelcastillo avatar jbalsas avatar denniskehrig avatar chrisbank avatar bchintx avatar lkcampbell avatar nethip avatar eztierney avatar pthiess avatar couzteau avatar mynetx avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.