@seanox/aspect-js
Version:
full stack JavaScript framework for SPAs incl. reactivity rendering, mvc / mvvm, models, expression language, datasource, virtual paths, unit test and some more
159 lines (115 loc) • 4.7 kB
Markdown
[Test](test.md) | [Inhalt](README.md#entwicklung)
- - -
# Entwicklung
## Inhalt
* [Server](#server)
* [Build](#build)
* [Test](#test)
* [Firewall](#firewall)
* [Browser zum Testen](#browser-zum-testen)
* [Ablauf](#ablauf)
* [Release](#release)
* [GitHub](#github)
* [npmjs.com](#npmjscom)
* [cdn.jsdelivr.net](#cdnjsdelivrnet)
* [Playground](#playground)
## Server
Das Projekt enthält einen komplett vorkonfigurierten Webserver, der am
einfachsten per Kommandozeile aus dem Projektverzeichnis mit dem beiliegenden
Ant-Script gestartet und auch beendet werden kann.
```
ant -f ./development/build.xml start
```
```
ant -f ./development/build.xml stop
```
Folgende wichtigen Adressen sind konfiguriert:
| Adresse | Verwendung |
|----------------------------------|-------------------------------|
| http://127.0.0.1:8000/ | Testumgebung |
| http://127.0.0.1:8000/test | Testumgebung mit Context-Path |
| http://127.0.0.1:8000/playground | Playground |
| http://127.0.0.1:8000/tutorial | Tutorials |
Das Logging ist so konfiguriert, dass die Kommandozeile zur Ausgabe verwendet
wird.
Konfiguriert wird der Webserver über `./server/devwex.ini`. Änderungen
greifen sofort und der Webserver startet automatisch neu.
## Build
Das Release wird per Ant-Skript direkt aus dem Wurzelverzeichnis vom Projekt
erstellt.
```
ant -f ./develpoment/build.xml test
```
## Test
Vor einem Release müssen geschätzt 500 000 Einzeltests erfolgreich
durchlaufen. Die hohe Zahl ergibt sich aus der Kombination der verschiedenen
Browser-Engines und Szenarien. Dennoch sind über 21000 Behauptungen
(Assertions) real implementiert.
### Firewall
- Windows Defender Firewall (add a rule)
- Name: Seanox Development TCP 8000
- Protocol Type: TCP
- Local Port: 8000
- Remote Port: all
- Remote IP Address: subnet
Erstellung der Regel über die Kommandozeile:
```
set rule_name=Seanox Development TCP 8000
netsh advfirewall firewall delete rule name="%rule_name%"
netsh advfirewall firewall add rule^
name="%rule_name%"^
dir=in protocol=tcp localport=8000 localip=any^
remoteip=localsubnet profile=any action=allow
```
Mehr erfahren:
```
netsh advfirewall firewall delete rule -?
```
### Browser zum Testen
| Engine | Download |
| ------ |---------------------------------------------------------------------|
| Blink | https://portableapps.com/apps/internet/google_chrome_portable |
| Gecko | https://portableapps.com/apps/internet/firefox_portable |
| Goanna | https://www.palemoon.org/download.shtml |
| WebKit | not available, native integration required<br>e.g. Safari iOS/MacOS |
Übersicht über die Browser-Engines
https://en.wikipedia.org/wiki/Comparison_of_browser_engines
### Ablauf
- Erstellen vom Release
`ant -f ./develpoment/build.xml test`
- Starten vom Websever
`ant -f ./develpoment/build.xml start`
- Zu testende URLs
http://127.0.0.1:8000
http://127.0.0.1:8000/index.html
http://127.0.0.1:8000/test
http://127.0.0.1:8000/test/index.html
http://127.0.0.1:8000/tutorial
- Zu testende URLs
MS Edge, Google Chrome, Firefox, Palemoon, Safari iOS, Safari MacOS
## Release
### GitHub
- Überprüfen, ob alle Aufgaben (TODOs) erledigt sind
- Alle Tests in allen Engines durchführen (Blink, Gecko, Goanna, WebKit)
- Finalisieren von `CHANGES` und `README.md`
- Finales Release erstellen
- Release per Tag veröffentlichen
- Erstellen vom Release in GitHub, basierens auf dem Tag
- Aktualisieren der Version vom Tutorial
### npmjs.com
- Go to the project directory
- Update the file `package.json`
- Log in with your credentials: `npm login`
- Publish the version: `npm publish --access public`
- In case the old version should be deprecated:
e.g. `npm deprecate seanox/aspect-js@"< 1.4.0" "WARNING: This version has been updated to 1.4.0."`
### cdn.jsdelivr.net
Hier muss nichts geändert werden, der Inhalt wird mit npmjs.com synchronisiert.
## Playground
Playground dient dem schnellen Testen und zur Fehleranalyse mit den aktuellen
Quellen, auch ohne ein Build zu erstellen, da die Komponenten einzeln als Link
verwendet werden.
http://127.0.0.1:8000/playground
Zur Verwendung muss der [Server](#server) gestartet sein.
- - -
[Test](test.md) | [Inhalt](README.md#entwicklung)