Compare commits
12 Commits
master
...
build/tags
Author | SHA1 | Date |
---|---|---|
giles | f1353754cc | |
batch-bot | 008e4e5ab7 | |
giles | f3d0897157 | |
batch-bot | 01305ae06d | |
giles | 9517502557 | |
giles | 136285d997 | |
giles | 731f923180 | |
giles | 0cd4d871bc | |
giles | c0a0144cbf | |
giles | b13353b13a | |
giles | b4bcd334ce | |
giles | 332970334f |
|
@ -0,0 +1,13 @@
|
|||
name: Changelog
|
||||
on:
|
||||
release:
|
||||
types:
|
||||
- created
|
||||
jobs:
|
||||
changelog:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: "✏️ Generate release changelog"
|
||||
uses: heinrichreimer/action-github-changelog-generator@v2.3
|
||||
with:
|
||||
token: ${{ secrets.BOT_TOKEN }}
|
|
@ -6,23 +6,11 @@ on:
|
|||
- closed
|
||||
- deleted
|
||||
branches:
|
||||
- 'master'
|
||||
- master
|
||||
|
||||
jobs:
|
||||
if_merged:
|
||||
if: github.event.pull_request.merged == true
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: delete develop branch
|
||||
id: delete_develop_branch
|
||||
run: git push origin --delete ${{ github.head_ref }}
|
||||
continue-on-error: true
|
||||
- uses: mainmatter/continue-on-error-comment@v1
|
||||
with:
|
||||
repo-token: ${{ secrets.BOT_TOKEN }}
|
||||
outcome: ${{ steps.delete_develop_branch.outcome }}
|
||||
test-id: Error code ${{ matrix.code }}
|
||||
delete-develop:
|
||||
if: ${{ ! startsWith(github.head_ref, 'develop/') }}
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: http://sigyl.com:3000/actions/checkout@v3.5.4
|
||||
|
@ -42,4 +30,6 @@ jobs:
|
|||
firstString=${{ github.head_ref }}
|
||||
secondString="build"
|
||||
echo ::set-env name=BUILD_BRANCH::${firstString/develop\//"$secondString"\/}s
|
||||
- name: delete build branch
|
||||
run: git push origin --delete ${{ env.BUILD_BRANCH }}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
on:
|
||||
pull_request:
|
||||
branches: [master]
|
||||
|
||||
jobs:
|
||||
prettier:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: http://sigyl.com:3000/actions/checkout@v3.5.4
|
||||
with:
|
||||
token: ${{ secrets.BOT_TOKEN }}
|
||||
# Make sure the actual branch is checked out when running on pull requests
|
||||
ref: ${{ github.head_ref }}
|
||||
# This is important to fetch the changes to the previous commit
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Prettify code
|
||||
uses: creyD/prettier_action@v4.3
|
||||
with:
|
||||
# This part is also where you can pass other options, for example:
|
||||
prettier_options: --write **/*.{js,md}
|
||||
only_changed: true
|
201
README.md
201
README.md
|
@ -1,101 +1,100 @@
|
|||
# batch-example
|
||||
|
||||
This repository will store and allow versioning and approval of a batch configuration.
|
||||
|
||||
This repository **only** contains exported configuration. It does not contain any binary files (eg equipment-model.cfg nor system state or log files). These are excluded using the **.gitignore** file.
|
||||
|
||||
## change process
|
||||
|
||||
tea is here (i had to change docker file to just be based on node:latest)
|
||||
|
||||
https://gitea.com/gitea/tea/src/branch/main/docs/CLI.md
|
||||
|
||||
|
||||
On ?tag ? push to master
|
||||
clone master
|
||||
branch deployed
|
||||
yml -> xml
|
||||
push deployed
|
||||
|
||||
|
||||
|
||||
pull to production PC and import
|
||||
|
||||
pull to development, import, modify, export
|
||||
push from development to format branch
|
||||
|
||||
on format-branch pull, xml -> yml, push to product-development and PR
|
||||
|
||||
### FTBatch development pc on development branch
|
||||
|
||||
```sh
|
||||
?git branch -D format-branch
|
||||
git checkout format-branch
|
||||
git merge deployed
|
||||
|
||||
```
|
||||
|
||||
make changes and export files
|
||||
|
||||
commit and push back to server
|
||||
|
||||
```sh
|
||||
git add -A
|
||||
git commit
|
||||
git push origin format-branch
|
||||
```
|
||||
|
||||
### format-bot pc
|
||||
|
||||
```sh
|
||||
git branch -D format-branch
|
||||
git fetch origin
|
||||
git checkout -b format-branch
|
||||
git checkout master
|
||||
git pull
|
||||
git branch -D product-development
|
||||
git checkout -b product-development
|
||||
git merge --squash --no-commit --no-ff --strategyoption=theirs format-branch
|
||||
|
||||
```
|
||||
|
||||
run the formatter
|
||||
|
||||
```sh
|
||||
git add -A
|
||||
git commit
|
||||
git push origin product-development
|
||||
git push origin --delete format-branch
|
||||
|
||||
```
|
||||
|
||||
create a pull request
|
||||
|
||||
```sh
|
||||
git fetch --tags
|
||||
gotea pr c --base=master --head=product-development --repo another-user/batch-example --title="WIP: this is a PR! it rocks!"
|
||||
|
||||
```
|
||||
|
||||
closing a pull request (not used)
|
||||
```sh
|
||||
gotea pr close --repo another-user/batch-example 11
|
||||
```
|
||||
|
||||
build
|
||||
|
||||
```sh
|
||||
|
||||
git checkout master
|
||||
git pull
|
||||
git checkout deployed
|
||||
git merge master
|
||||
```
|
||||
|
||||
make xml files
|
||||
|
||||
```sh
|
||||
git add -A
|
||||
git commit
|
||||
git push origin deployed
|
||||
```
|
||||
# batch-example
|
||||
|
||||
This repository will store and allow versioning and approval of a batch configuration.
|
||||
|
||||
This repository **only** contains exported configuration. It does not contain any binary files (eg equipment-model.cfg nor system state or log files). These are excluded using the **.gitignore** file.
|
||||
|
||||
## change process
|
||||
|
||||
tea is here (i had to change docker file to just be based on node:latest)
|
||||
|
||||
https://gitea.com/gitea/tea/src/branch/main/docs/CLI.md
|
||||
|
||||
|
||||
On ?tag ? push to master
|
||||
clone master
|
||||
branch deployed
|
||||
yml -> xml
|
||||
push deployed
|
||||
|
||||
|
||||
pull to production PC and import
|
||||
|
||||
pull to development, import, modify, export
|
||||
push from development to format branch
|
||||
|
||||
on format-branch pull, xml -> yml, push to product-development and PR
|
||||
|
||||
### FTBatch development pc on development branch
|
||||
|
||||
```sh
|
||||
?git branch -D format-branch
|
||||
git checkout format-branch
|
||||
git merge deployed
|
||||
|
||||
```
|
||||
|
||||
make changes and export files
|
||||
|
||||
commit and push back to server
|
||||
|
||||
```sh
|
||||
git add -A
|
||||
git commit
|
||||
git push origin format-branch
|
||||
```
|
||||
|
||||
### format-bot pc
|
||||
|
||||
```sh
|
||||
git branch -D format-branch
|
||||
git fetch origin
|
||||
git checkout -b format-branch
|
||||
git checkout master
|
||||
git pull
|
||||
git branch -D product-development
|
||||
git checkout -b product-development
|
||||
git merge --squash --no-commit --no-ff --strategyoption=theirs format-branch
|
||||
|
||||
```
|
||||
|
||||
run the formatter
|
||||
|
||||
```sh
|
||||
git add -A
|
||||
git commit
|
||||
git push origin product-development
|
||||
git push origin --delete format-branch
|
||||
|
||||
```
|
||||
|
||||
create a pull request
|
||||
|
||||
```sh
|
||||
git fetch --tags
|
||||
gotea pr c --base=master --head=product-development --repo another-user/batch-example --title="WIP: this is a PR! it rocks!"
|
||||
|
||||
```
|
||||
|
||||
closing a pull request (not used)
|
||||
```sh
|
||||
gotea pr close --repo another-user/batch-example 11
|
||||
```
|
||||
|
||||
build
|
||||
|
||||
```sh
|
||||
|
||||
git checkout master
|
||||
git pull
|
||||
git checkout deployed
|
||||
git merge master
|
||||
```
|
||||
|
||||
make xml files
|
||||
|
||||
```sh
|
||||
git add -A
|
||||
git commit
|
||||
git push origin deployed
|
||||
```
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,160 @@
|
|||
/**
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
import * as React from "react";
|
||||
import ReactVersion from "shared/ReactVersion";
|
||||
import { LegacyRoot } from "react-reconciler/src/ReactRootTags";
|
||||
import {
|
||||
createContainer,
|
||||
updateContainer,
|
||||
injectIntoDevTools,
|
||||
} from "react-reconciler/src/ReactFiberReconciler";
|
||||
import Transform from "art/core/transform";
|
||||
import Mode from "art/modes/current";
|
||||
import FastNoSideEffects from "art/modes/fast-noSideEffects";
|
||||
|
||||
import { TYPES, childrenAsString } from "./ReactARTInternals";
|
||||
|
||||
Mode.setCurrent(
|
||||
// Change to 'art/modes/dom' for easier debugging via SVG
|
||||
FastNoSideEffects,
|
||||
);
|
||||
|
||||
/** Declarative fill-type objects; API design not finalized */
|
||||
|
||||
const slice = Array.prototype.slice;
|
||||
|
||||
class LinearGradient {
|
||||
constructor(stops, x1, y1, x2, y2) {
|
||||
this._args = slice.call(arguments);
|
||||
}
|
||||
|
||||
applyFill(node) {
|
||||
node.fillLinear.apply(node, this._args);
|
||||
}
|
||||
}
|
||||
|
||||
class RadialGradient {
|
||||
constructor(stops, fx, fy, rx, ry, cx, cy) {
|
||||
this._args = slice.call(arguments);
|
||||
}
|
||||
|
||||
applyFill(node) {
|
||||
node.fillRadial.apply(node, this._args);
|
||||
}
|
||||
}
|
||||
|
||||
class Pattern {
|
||||
constructor(url, width, height, left, top) {
|
||||
this._args = slice.call(arguments);
|
||||
}
|
||||
|
||||
applyFill(node) {
|
||||
node.fillImage.apply(node, this._args);
|
||||
}
|
||||
}
|
||||
|
||||
/** React Components */
|
||||
|
||||
class Surface extends React.Component {
|
||||
componentDidMount() {
|
||||
const { height, width } = this.props;
|
||||
|
||||
this._surface = Mode.Surface(+width, +height, this._tagRef);
|
||||
|
||||
this._mountNode = createContainer(
|
||||
this._surface,
|
||||
LegacyRoot,
|
||||
null,
|
||||
false,
|
||||
false,
|
||||
"",
|
||||
);
|
||||
updateContainer(this.props.children, this._mountNode, this);
|
||||
}
|
||||
|
||||
componentDidUpdate(prevProps, prevState) {
|
||||
const props = this.props;
|
||||
|
||||
if (props.height !== prevProps.height || props.width !== prevProps.width) {
|
||||
this._surface.resize(+props.width, +props.height);
|
||||
}
|
||||
|
||||
updateContainer(this.props.children, this._mountNode, this);
|
||||
|
||||
if (this._surface.render) {
|
||||
this._surface.render();
|
||||
}
|
||||
}
|
||||
|
||||
componentWillUnmount() {
|
||||
updateContainer(null, this._mountNode, this);
|
||||
}
|
||||
|
||||
render() {
|
||||
// This is going to be a placeholder because we don't know what it will
|
||||
// actually resolve to because ART may render canvas, vml or svg tags here.
|
||||
// We only allow a subset of properties since others might conflict with
|
||||
// ART's properties.
|
||||
const props = this.props;
|
||||
|
||||
// TODO: ART's Canvas Mode overrides surface title and cursor
|
||||
const Tag = Mode.Surface.tagName;
|
||||
|
||||
return (
|
||||
<Tag
|
||||
ref={(ref) => (this._tagRef = ref)}
|
||||
accessKey={props.accessKey}
|
||||
className={props.className}
|
||||
draggable={props.draggable}
|
||||
role={props.role}
|
||||
style={props.style}
|
||||
tabIndex={props.tabIndex}
|
||||
title={props.title}
|
||||
/>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class Text extends React.Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
// We allow reading these props. Ideally we could expose the Text node as
|
||||
// ref directly.
|
||||
["height", "width", "x", "y"].forEach((key) => {
|
||||
Object.defineProperty(this, key, {
|
||||
get: function () {
|
||||
return this._text ? this._text[key] : undefined;
|
||||
},
|
||||
});
|
||||
});
|
||||
}
|
||||
render() {
|
||||
// This means you can't have children that render into strings...
|
||||
const T = TYPES.TEXT;
|
||||
return (
|
||||
<T {...this.props} ref={(t) => (this._text = t)}>
|
||||
{childrenAsString(this.props.children)}
|
||||
</T>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
injectIntoDevTools({
|
||||
findFiberByHostInstance: () => null,
|
||||
bundleType: __DEV__ ? 1 : 0,
|
||||
version: ReactVersion,
|
||||
rendererPackageName: "react-art",
|
||||
});
|
||||
|
||||
/** API */
|
||||
|
||||
export const ClippingRectangle = TYPES.CLIPPING_RECTANGLE;
|
||||
export const Group = TYPES.GROUP;
|
||||
export const Shape = TYPES.SHAPE;
|
||||
export const Path = Mode.Path;
|
||||
export { LinearGradient, Pattern, RadialGradient, Surface, Text, Transform };
|
Loading…
Reference in New Issue