• Stars
    star
    265
  • Rank 154,577 (Top 4 %)
  • Language
    JavaScript
  • License
    GNU General Publi...
  • Created almost 9 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Neos CMS UI written in ReactJS with Immutable data structures.

@neos/neos-ui

CircleCI Known Vulnerabilities Slack Forum Twitter

The Neos CMS interface written in ReactJS and a ton of other fun technology.

Versioning

This repository follows the same versioning scheme as Neos itself. Release roadmap is available here

That means:

  • All bugfixes go to the lowest maintained branch
  • All new features go only to the 8.3 and 9.0 branch
  • New minor and major releases are made in sync with Neos/Flow. Bugfix releases may be available independantly

Currently maintained versions

  • NeosCMS version 7.3: branch 7.3
  • NeosCMS version 8.0: branch 8.0
  • NeosCMS version 8.1: branch 8.1
  • NeosCMS version 8.2: branch 8.2
  • NeosCMS version 8.3: branch 8.3
  • NeosCMS version 9.0: branch 9.0
  • latest development happens currently in the 8.3 and 9.0 branch

Releases with just security updates

  • NeosCMS version 5.3: branch 5.3
  • NeosCMS version 7.0: branch 7.0
  • NeosCMS version 7.1: branch 7.1
  • NeosCMS version 7.2: branch 7.2

Browser support

The new interface supports all evergreen (i.e. self-updating) browsers, including: Chrome, Firefox, Safari, Edge, Opera and other webkit-based browsers.

If you discover bugs in any of the supported browsers, please report them!

Features

Installation and usage

The UI is already included in the base Neos distribution. And on Packagist available via: neos/neos-ui

Updating

composer update neos/neos-ui

Installing latest development

For trying out the new UI, we recommend you to run the regularily released beta releases. However, if you want to stay on bleeding-edge, or want to help out developing, you'll need the 9.0.x-dev release. You can install the latest release using:

composer require neos/neos-ui-compiled:9.0.x-dev neos/neos-ui:9.0.x-dev

Contributing

Please follow the respective guides for contributing on OSX and on Linux.

on Windows

  1. Ensure you have the relevant version installed (see above).

  2. Please install Docker for Windows.

  3. Run docker-compose up.

  4. Inside Configuration/Settings.yaml, set the following property for disabling the pre-compiled files:

Neos:
  Neos:
    Ui:
      frontendDevelopmentMode: true
  1. Get an overview about the codebase. We've recorded an introduction on YouTube which gets you acquainted with the basics. Additionally, please get in touch with us on Slack in the channel #project-ui-rewrite. We're eager to help you get started!

on OSX / Linux

In order to start contributing on OSX / Linux, follow the following steps:

  1. Ensure you have the relevant version installed (see above).

  2. We require Chrome as well as the yarn(https://yarnpkg.com/en/) command and GNU Make(https://www.gnu.org/software/make/) to be installed on your system.

  3. The currently supported version of node is defined in .nvmrc file. If you have nvm installed, you can just run nvm install && nvm use from the project directory.

  4. Inside Configuration/Settings.yaml, set the following property for disabling the pre-compiled files:

Neos:
  Neos:
    Ui:
      frontendDevelopmentMode: true
  1. Run the initialization script:
make setup
  1. Get an overview about the codebase. We've recorded an introduction on YouTube which gets you acquainted with the basics. Additionally, please get in touch with us on Slack in the channel #project-ui-rewrite. We're eager to help you get started!

Guideline for PR and commit messages

Please see our guideline on how to write meaningful descriptions for your contributions.

Doing upmerges

To do the upmerge run the following commands

git checkout 7.0 && git fetch && git reset --hard origin/7.0 && git merge --no-ff --no-commit origin/5.3
# review and `git commit`
git checkout 7.1 && git fetch && git reset --hard origin/7.1 && git merge --no-ff --no-commit origin/7.0
# review and `git commit`
git checkout 7.2 && git fetch && git reset --hard origin/7.2 && git merge --no-ff --no-commit origin/7.1
# review and `git commit`
git checkout 7.3 && git fetch && git reset --hard origin/7.3 && git merge --no-ff --no-commit origin/7.2
# review and `git commit`
git checkout 8.0 && git fetch && git reset --hard origin/8.0 && git merge --no-ff --no-commit origin/7.3
# review and `git commit`
git checkout 8.1 && git fetch && git reset --hard origin/8.1 && git merge --no-ff --no-commit origin/8.0
# review and `git commit`
git checkout 8.2 && git fetch && git reset --hard origin/8.2 && git merge --no-ff --no-commit origin/8.1
# review and `git commit`
git checkout 8.3 && git fetch && git reset --hard origin/8.3 && git merge --no-ff --no-commit origin/8.2
# review and `git commit`
git checkout 9.0 && git fetch && git reset --hard origin/9.0 && git merge --no-ff --no-commit origin/8.3
# review and `git commit`

Development commands

Command Description
make clean delete all node_modules in every subdirectory.
make build Runs the development build.
make build-watch Watches the source files for changes and runs a build in case.
make lint Executes make lint-js and make lint-editorconfig.
make lint-js Runs test in all subpackages.
make lint-editorconfig Tests if all files respect the .editorconfig.
make test Executes the test on all source files.
make test-e2e Executes integration tests.

Writing unit tests

The unit tests are executed with jest. To run the unit tests, execute make test in your shell.

Adding unit tests is fairly simple, just create a file on the same tree level as your changed/new feature, named [filename].spec.js and karma will execute all tests found within the spec file, other than that, just orient yourself on the existing tests.

Use it.only(() => {}) and describe.only(() => {}) if you want to run a specific test and not the whole test suite.

Integration tests

To setup end-to-end tests locally you have got to do the same things described in CircleCI workflow, namely take the test disribution and composer install in it, put the right branch into Neos.Neos.Ui folder and run webserver and mysql server with the same config as described in the test distribution's Settings.yaml (or adjust it).

For executing the end to end tests on a Mac with catalina or higher you need to permit screen recording. Open 'System Preferences > Security & Privacy > Privacy > Screen Recording' and check 'TestCafe Browser Tools' in the application list.

Local Development with e2e-tests & docker

To speed up the e2e-test workflow/feedback loop you can start the system under test in a docker setup and run the tests against that:

  • make start-neos-dev-instance (starts a docker setup with the system under test)
  • The neos dev instance is available at localhost:8081
  • To enter the container run docker compose -f Tests/IntegrationTests/docker-compose.neos-dev-instance.yaml exec php bash
  • yarn run testcafe <browser> <testFile> <optional flags>
    • for example, this runs all tests in chrome: yarn run testcafe chrome Tests/IntegrationTests/Fixtures
    • some helpful optional flags are
      • -T 'sidebars' - grep tests by pattern and only execute those
      • --selector-timeout=10000 - if you work on async pieces of the UI then this might help to prevent race conditions
      • --assertion-timeout=30000 - see above
      • --debug-on-fail - you can debug the state of the app at the moment an assertion failed
Debugging integration tests
  • View the recording via Sauce Labs. You can find the url in the beginning of the test output.
  • Observe Flow exceptions and logs in build artifacts.
  • You can trigger a SSH enabled build via the CircleCI interface and then login.
Just the end to end tests fail

It can happen that end to end tests fail caused by cached sources. So if you change PHP code for instance and don't adjust the composer.json it can happen that your new code change is not used because it is not part of the cache. In this case we need to flush the CircleCI caches manualy.

We have introduced an environment variable called CACHE_VERSION. We need to change the variable to to new timestamp for instance to invalidate the caches.

  1. go to https://app.circleci.com/settings/project/github/neos/neos-ui and login
  2. open the project settings and choose Environment Variables
  3. Delete the CACHE_VERSION and create a new one with the value of the current timestamp

Retrigger the build and it should work.

Releasing

You only need to trigger the jenkins release with the version you want to release. After jenkins has finished you need release a new version on github.

License

see LICENSE

More Repositories

1

neos-development-collection

The unified repository containing the Neos core packages, used for Neos development.
PHP
260
star
2

flow-development-collection

The unified repository containing the Flow core packages, used for Flow development.
PHP
137
star
3

neos

[READ-ONLY] An open source Content Application Platform based on Flow. A set of core Content Management features is resting within a larger context that allows you to build a perfectly customized experience for your users
PHP
108
star
4

flow

[READ-ONLY] Flow Application Framework, provides MVC, DI, AOP, Security, …
PHP
77
star
5

Neos.EventSourcing

A library for Event Sourcing and CQRS for Flow projects.
PHP
45
star
6

neos-base-distribution

Distribution providing a basis for starting new Neos projects
40
star
7

fusion-afx

[READ-ONLY] JSX inspired compact syntax for Neos.Fusion
PHP
25
star
8

Neos.NeosIo

The neos.io website
SCSS
20
star
9

fusion-form

PHP
19
star
10

neos-ui-extensibility-examples

Neos UI Extensibility Examples
JavaScript
18
star
11

Neos.Demo

The Neos demo site package
PHP
18
star
12

form-builder

Flow Form Framework integration into Neos CMS
PHP
18
star
13

flow-base-distribution

Distribution providing a basis for starting new Flow projects
18
star
14

form

Flow Form Framework
PHP
15
star
15

neos-development-distribution

Distribution providing a basis for developing Neos
Shell
14
star
16

neos-googleanalytics

A package to enable the use and display of Google Analytics data inside Neos.
PHP
14
star
17

swiftmailer

A Flow package for easy use of SwiftMailer
PHP
14
star
18

neos-seo

A package to bundle SEO-related functionality for Neos.
PHP
13
star
19

redirecthandler-ui

This package provides a backend module to manage Neos.RedirectHandler redirects which are stored in Neos.RedirectHandler.DatabaseStorage.
TypeScript
13
star
20

diff

[READ-ONLY] A diff tool package for Flow applications
PHP
11
star
21

composer-plugin

Neos composer install plugin
PHP
11
star
22

eel

[READ-ONLY] The Embedded Expression Language (Eel) is a building block for creating Domain Specific Languages
PHP
11
star
23

metadata-extractor

Extractor to extract asset meta data into Neos MetaData objects
PHP
10
star
24

content-repository-search

Neos Contentrepository search common package
PHP
10
star
25

media

[READ-ONLY] A media management package for Flow applications
PHP
10
star
26

Neos.Contribute

Tools helping contribution to Flow and Neos
PHP
9
star
27

Neos.DocsNeosIo

The docs.neos.io website
JavaScript
9
star
28

BuildEssentials

Flow build toolchain essentials
PHP
9
star
29

cache

[READ-ONLY] A package split from Flow containing cache classes
PHP
9
star
30

party

A party package for PHP based on the OASIS Customer Information Quality (CIQ) XML Standard
PHP
9
star
31

fluidadaptor

[READ-ONLY] A package split from Flow containing our Fluid adaptor
PHP
8
star
32

form-fusionrenderer

Flow Form Framework preset for Fusion based Form rendering
PHP
8
star
33

form-yamlbuilder

Flow Form Framework YAML Builder
JavaScript
7
star
34

error-messages

[READ-ONLY] The Neos.Error.Messages package for Flow
PHP
7
star
35

imagine

A package for easy use of imagine in Flow applications
PHP
7
star
36

ldap

A LDAP integration for the Neos Flow Framework
PHP
7
star
37

neos-ui-compiled

Compiled JavaScript assets of the neos-ui repository (Auto-Generated)
7
star
38

utility-files

[READ-ONLY] A package split from Flow containing utilty classes
PHP
7
star
39

rector

Neos Rector Recipes for code migrations
PHP
6
star
40

redirecthandler-neosadapter

Neos RedirectHandler adapter for Neos CMS for creating redirects and status codes
Gherkin
6
star
41

Neos.MarketPlace

Package used to display Flow Framework and Neos packages on www.neos.io (alpha)
PHP
6
star
42

utility-pdo

[READ-ONLY] A package split from Flow containing utilty classes
PHP
6
star
43

utility-opcodecache

[READ-ONLY] A package split from Flow containing utilty classes
PHP
6
star
44

flow-log

[READ-ONLY] A package split from Flow containing logging infrastructure
PHP
6
star
45

utility-arrays

[READ-ONLY] A package split from Flow containing utilty classes
PHP
6
star
46

setup

An extensible setup tool for Flow based applications
PHP
6
star
47

utility-unicode

[READ-ONLY] A package split from Flow containing utilty classes
PHP
6
star
48

utility-schema

[READ-ONLY] A package split from Flow containing utilty classes
PHP
6
star
49

utility-objecthandling

[READ-ONLY] A package split from Flow containing utilty classes
PHP
6
star
50

utility-mediatypes

[READ-ONLY] A package split from Flow containing utilty classes
PHP
6
star
51

neos-kickstarter

[READ-ONLY] A simple generator for Neos assets, like sites and plugins
PHP
5
star
52

kickstart

[READ-ONLY] A simple generator for controller and views
PHP
5
star
53

utility-lock

A package one developed for Flow containing a locking utilty
PHP
5
star
54

media-browser

[READ-ONLY] A media browser UI package for Neos
JavaScript
5
star
55

typoscript

[READ-ONLY] Fusion is a hierarchical, prototype based processing language
PHP
5
star
56

fusion

[READ-ONLY] Fusion is a hierarchical, prototype based processing language
PHP
5
star
57

metadata

Neos Asset MetaData Management
PHP
4
star
58

fluid

[READ-ONLY] Next-Generation Templating Framework for Flow and Neos,
PHP
4
star
59

Neos.EventSourcingSymfonyBridge

Symfony bridge for the event sourcing package
PHP
4
star
60

behat

PHP
4
star
61

neos-nodetypes

[READ-ONLY] Node type configuration for Neos
PHP
4
star
62

twitter-bootstrap

Twitter Bootstrap, packaged for use in Flow applications
PHP
4
star
63

redirecthandler-databasestorage

DB storage for the Neos.RedirectHandler
PHP
4
star
64

typo3cr

[READ-ONLY] The content repository for Neos, usable also for other Flow applications
PHP
4
star
65

redirecthandler

The Neos.RedirectHandler package for Flow
PHP
4
star
66

nodetypes-basemixins

[READ-ONLY] Implements some basic mixins, originally was part of Neos.NodeTypes
4
star
67

contentrepository-development-collection

Work in Progress on the Event Sourced Content Repository as installable set of packages
PHP
4
star
68

brand

Neos brand assets
JavaScript
3
star
69

content-repository

[READ-ONLY] The content repository for Neos, usable also for other Flow applications
PHP
3
star
70

metadata-contentrepositoryadapter

Neos MetaData ContentRepositoryAdapter
PHP
3
star
71

neos-splash

PHP
3
star
72

slicer

Some code to keep read-only package repositories updated
PHP
3
star
73

guild-ux

A home for all usability work around the Neos CMS User Interface
3
star
74

http-factories

[READ-ONLY] Split of the HTTP factories package
PHP
3
star
75

flow-welcome

This package provides a start screen for the Flow distribution with links to online resources
HTML
3
star
76

Neos.EventStore

NOTE: This package is not in use at the moment, code & issue tracker have been moved to https://github.com/neos/Neos.EventSourcing
PHP
2
star
77

documentation

Base for documentation discussions/issues, WIP
2
star
78

nodetypes-html

[READ-ONLY] HTML NodeType
HTML
2
star
79

team

Repository for the Neos Team
2
star
80

Neos.IdNeosIo

The id.neos.io website
CSS
2
star
81

demo.neos.io

The Neos demo distribution
PHP
2
star
82

Neos.Cqrs.MonitoringHelper

PHP
2
star
83

nodetypes-columnlayouts

[READ-ONLY] Column layout NodeTypes
HTML
2
star
84

nodetypes-contentreferences

[READ-ONLY] Contentreferences NodeType
HTML
2
star
85

cli-setup

PHP
2
star
86

Neos.EventStore.InMemoryStorageAdapter

NOTE: This package is not in use at the moment, code & issue tracker have been moved to https://github.com/neos/Neos.EventSourcing
PHP
2
star
87

eslint-config-neos

ESLint shareable config based on XO with a 4-space indent for the neos project.
JavaScript
2
star
88

neosdemotypo3org

This package is deprecated. Please use https://github.com/neos/Neos.Demo insetad.
CSS
2
star
89

nodetypes-navigation

[READ-ONLY] Navigation NodeType
HTML
2
star
90

nodetypes-assetlist

[READ-ONLY] Assetlist NodeType
HTML
2
star
91

release

Release plugin for www.neos.io site
PHP
1
star
92

mailform

A mail form plugin for Neos
PHP
1
star
93

nodetypes-form

[READ-ONLY] Form package NodeType
PHP
1
star
94

neoscr-eventsourced

The prototype for the event sourced Neos Content Repository
PHP
1
star
95

doctools

Tools for generating and rendering Flow and Neos documentation
PHP
1
star
96

flow-development-distribution

Distribution providing a basis for developing Flow
Shell
1
star
97

TcPdf

Note: This package is unmaintained and will not work with current Flow version
PHP
1
star
98

Crowd-TYPO3-Connector

TYPO3 SSO connector for Atlassian Crowd
Java
1
star
99

neos-setup

Custom neos/setup steps and configuration for Neos CMS
PHP
1
star
100

empty

1
star