gotron-builder failed with --win, on mac

Hi
Working on MacBook pro.
Both go build and gotron-builder work properly for the same platform.
Cross-compiling the go app with go build (GOOS=windows etc...) works.
gotron-builder --win fails with the following error:
github.com/develar/app-builder/pkg/util.Execute
	/Volumes/data/Documents/app-builder/pkg/util/util.go:75
github.com/develar/app-builder/pkg/wine.execWine
	/Volumes/data/Documents/app-builder/pkg/wine/wine.go:92
github.com/develar/app-builder/pkg/wine.ConfigureCommand.func2
	/Volumes/data/Documents/app-builder/pkg/wine/wine.go:43
github.com/alecthomas/kingpin.(*actionMixin).applyActions
	/Volumes/data/go/pkg/mod/github.com/alecthomas/kingpin@v2.2.6+incompatible/actions.go:28
github.com/alecthomas/kingpin.(*Application).applyActions
	/Volumes/data/go/pkg/mod/github.com/alecthomas/kingpin@v2.2.6+incompatible/app.go:557
github.com/alecthomas/kingpin.(*Application).execute
	/Volumes/data/go/pkg/mod/github.com/alecthomas/kingpin@v2.2.6+incompatible/app.go:390
github.com/alecthomas/kingpin.(*Application).Parse
	/Volumes/data/go/pkg/mod/github.com/alecthomas/kingpin@v2.2.6+incompatible/app.go:222
main.main
	/Volumes/data/Documents/app-builder/main.go:78
runtime.main
	/usr/local/Cellar/go/1.12/libexec/src/runtime/proc.go:200
runtime.goexit
	/usr/local/Cellar/go/1.12/libexec/src/runtime/asm_amd64.s:1337

Error: /Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/app-builder-bin/mac/app-builder exited with code 1
    at ChildProcess.childProcess.once.code (/Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/builder-util/src/util.ts:244:14)
    at Object.onceWrapper (events.js:317:30)
    at emitTwo (events.js:126:13)
    at ChildProcess.emit (events.js:214:7)
    at maybeClose (internal/child_process.js:925:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
From previous event:
    at runCallback (timers.js:789:20)
    at tryOnImmediate (timers.js:751:5)
    at processImmediate [as _immediateCallback] (timers.js:722:5)
From previous event:
    at WinPackager.signAndEditResources (/Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/app-builder-lib/src/winPackager.ts:260:158)
    at _bluebirdLst.default.map.file (/Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/app-builder-lib/src/winPackager.ts:363:21)
    at go$readdir$cb (/Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/graceful-fs/graceful-fs.js:162:14)
    at FSReqWrap.oncomplete (fs.js:135:15)
From previous event:
    at /Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/app-builder-lib/src/winPackager.ts:361:27
    at Generator.next (<anonymous>)
From previous event:
    at WinPackager.signApp (/Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/app-builder-lib/src/winPackager.ts:355:73)
    at /Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/app-builder-lib/src/platformPackager.ts:250:16
    at Generator.next (<anonymous>)
    at runCallback (timers.js:789:20)
    at tryOnImmediate (timers.js:751:5)
    at processImmediate [as _immediateCallback] (timers.js:722:5)
From previous event:
    at WinPackager.doPack (/Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/app-builder-lib/src/platformPackager.ts:167:165)
    at /Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/app-builder-lib/src/platformPackager.ts:113:16
    at Generator.next (<anonymous>)
From previous event:
    at WinPackager.pack (/Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/app-builder-lib/src/platformPackager.ts:111:95)
    at /Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/app-builder-lib/src/packager.ts:430:24
    at Generator.next (<anonymous>)
    at runCallback (timers.js:789:20)
    at tryOnImmediate (timers.js:751:5)
    at processImmediate [as _immediateCallback] (timers.js:722:5)
From previous event:
    at Packager.doBuild (/Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/app-builder-lib/src/packager.ts:396:24)
    at /Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/app-builder-lib/src/packager.ts:366:57
    at Generator.next (<anonymous>)
    at /Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/graceful-fs/graceful-fs.js:111:16
    at /Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/graceful-fs/graceful-fs.js:45:10
    at FSReqWrap.oncomplete (fs.js:135:15)
From previous event:
    at Packager._build (/Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/app-builder-lib/src/packager.ts:335:133)
    at /Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/app-builder-lib/src/packager.ts:331:23
    at Generator.next (<anonymous>)
    at runCallback (timers.js:789:20)
    at tryOnImmediate (timers.js:751:5)
    at processImmediate [as _immediateCallback] (timers.js:722:5)
From previous event:
    at Packager.build (/Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/app-builder-lib/src/packager.ts:288:14)
    at build (/Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/app-builder-lib/src/index.ts:59:28)
    at build (/Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/electron-builder/src/builder.ts:228:10)
    at then (/Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/electron-builder/src/cli/cli.ts:46:19)
    at <anonymous>

What do I miss?
Thanks

Hi,
is this the full log?
Thanks

Hi
Nope.
Here, this is the full log after running sudo gotron-builder --win from the project folder:
npm WARN saveError ENOENT: no such file or directory, open '/Users/user/go/src/domain.com/productpackage/.gotron-builder/package.json'
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open '/Users/user/go/src/domain.com/productpackage/.gotron-builder/package.json'
npm WARN .gotron-builder No description
npm WARN .gotron-builder No repository field.
npm WARN .gotron-builder No README data
npm WARN .gotron-builder No license field.

+<EMAIL_ADDRESS>added 197 packages in 6.869s
Configuring yargs through package.json is deprecated and will be removed in the next major release, please use the JS API instead.
Configuring yargs through package.json is deprecated and will be removed in the next major release, please use the JS API instead.
  • electron-builder version=20.39.0
  • description is missed in the package.json appPackageFile=/Users/user/go/src/domain.com/productpackage/.gotron/package.json
  • author is missed in the package.json appPackageFile=/Users/user/go/src/domain.com/productpackage/.gotron/package.json
  • writing effective config file=/Users/user/go/src/domain.com/productpackage/.gotron/dist/builder-effective-config.yaml
  • rebuilding native production dependencies platform=win32 arch=x64
  • packaging       platform=win32 arch=x64 electron=2.0.17 appOutDir=/Users/user/go/src/domain.com/productpackage/.gotron/dist/win-unpacked
  • default Electron icon is used reason=application icon is not set
  ⨯ error: exit status 1
path: /Users/user/Library/Caches/electron-builder/wine/wine-2.0.3-mac-10.13/bin/wine
args: /Users/user/Library/Caches/electron-builder/wine/wine-2.0.3-mac-10.13/bin/wine /Users/user/Library/Caches/electron-builder/winCodeSign/winCodeSign-2.4.0/rcedit-ia32.exe /Users/user/go/src/domain.com/productpackage/.gotron/dist/win-unpacked/gotron-browser-window.exe --set-version-string FileDescription gotron-browser-window --set-version-string ProductName gotron-browser-window --set-version-string LegalCopyright Copyright © 2019 gotron-browser-window --set-file-version 0.1.0 --set-product-version <IP_ADDRESS> --set-version-string InternalName gotron-browser-window --set-version-string OriginalFilename
output:
error output:wine: failed to initialize: dlopen(/tmp/wine-stage/wine/usr/lib/wine/ntdll.dll.so, 258): image not found

github.com/develar/app-builder/pkg/util.Execute
	/Volumes/data/Documents/app-builder/pkg/util/util.go:75
github.com/develar/app-builder/pkg/wine.execWine
	/Volumes/data/Documents/app-builder/pkg/wine/wine.go:92
github.com/develar/app-builder/pkg/wine.ConfigureCommand.func2
	/Volumes/data/Documents/app-builder/pkg/wine/wine.go:43
github.com/alecthomas/kingpin.(*actionMixin).applyActions
	/Volumes/data/go/pkg/mod/github.com/alecthomas/kingpin@v2.2.6+incompatible/actions.go:28
github.com/alecthomas/kingpin.(*Application).applyActions
	/Volumes/data/go/pkg/mod/github.com/alecthomas/kingpin@v2.2.6+incompatible/app.go:557
github.com/alecthomas/kingpin.(*Application).execute
	/Volumes/data/go/pkg/mod/github.com/alecthomas/kingpin@v2.2.6+incompatible/app.go:390
github.com/alecthomas/kingpin.(*Application).Parse
	/Volumes/data/go/pkg/mod/github.com/alecthomas/kingpin@v2.2.6+incompatible/app.go:222
main.main
	/Volumes/data/Documents/app-builder/main.go:78
runtime.main
	/usr/local/Cellar/go/1.12/libexec/src/runtime/proc.go:200
runtime.goexit
	/usr/local/Cellar/go/1.12/libexec/src/runtime/asm_amd64.s:1337

Error: /Users/user/go/src/domain.com/productpackage/.gotron-builder/node_modules/app-builder-bin/mac/app-builder exited with code 1
    at ChildProcess.childProcess.once.code (/Users/user/go/src/domain.com/productpackage/.gotron-builder/node_modules/builder-util/src/util.ts:244:14)
    at Object.onceWrapper (events.js:317:30)
    at emitTwo (events.js:126:13)
    at ChildProcess.emit (events.js:214:7)
    at maybeClose (internal/child_process.js:925:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
From previous event:
    at runCallback (timers.js:789:20)
    at tryOnImmediate (timers.js:751:5)
    at processImmediate [as _immediateCallback] (timers.js:722:5)
From previous event:
    at WinPackager.signAndEditResources (/Users/user/go/src/domain.com/productpackage/.gotron-builder/node_modules/app-builder-lib/src/winPackager.ts:260:158)
    at _bluebirdLst.default.map.file (/Users/user/go/src/domain.com/productpackage/.gotron-builder/node_modules/app-builder-lib/src/winPackager.ts:363:21)
    at go$readdir$cb (/Users/user/go/src/domain.com/productpackage/.gotron-builder/node_modules/graceful-fs/graceful-fs.js:162:14)
    at FSReqWrap.oncomplete (fs.js:135:15)
From previous event:
    at /Users/user/go/src/domain.com/productpackage/.gotron-builder/node_modules/app-builder-lib/src/winPackager.ts:361:27
    at Generator.next (<anonymous>)
From previous event:
    at WinPackager.signApp (/Users/user/go/src/domain.com/productpackage/.gotron-builder/node_modules/app-builder-lib/src/winPackager.ts:355:73)
    at /Users/user/go/src/domain.com/productpackage/.gotron-builder/node_modules/app-builder-lib/src/platformPackager.ts:250:16
    at Generator.next (<anonymous>)
    at runCallback (timers.js:789:20)
    at tryOnImmediate (timers.js:751:5)
    at processImmediate [as _immediateCallback] (timers.js:722:5)
From previous event:
    at WinPackager.doPack (/Users/user/go/src/domain.com/productpackage/.gotron-builder/node_modules/app-builder-lib/src/platformPackager.ts:167:165)
    at /Users/user/go/src/domain.com/productpackage/.gotron-builder/node_modules/app-builder-lib/src/platformPackager.ts:113:16
    at Generator.next (<anonymous>)
From previous event:
    at WinPackager.pack (/Users/user/go/src/domain.com/productpackage/.gotron-builder/node_modules/app-builder-lib/src/platformPackager.ts:111:95)
    at /Users/user/go/src/domain.com/productpackage/.gotron-builder/node_modules/app-builder-lib/src/packager.ts:430:24
    at Generator.next (<anonymous>)
    at runCallback (timers.js:789:20)
    at tryOnImmediate (timers.js:751:5)
    at processImmediate [as _immediateCallback] (timers.js:722:5)
From previous event:
    at Packager.doBuild (/Users/user/go/src/domain.com/productpackage/.gotron-builder/node_modules/app-builder-lib/src/packager.ts:396:24)
    at /Users/user/go/src/domain.com/productpackage/.gotron-builder/node_modules/app-builder-lib/src/packager.ts:366:57
    at Generator.next (<anonymous>)
    at /Users/user/go/src/domain.com/productpackage/.gotron-builder/node_modules/graceful-fs/graceful-fs.js:111:16
    at /Users/user/go/src/domain.com/productpackage/.gotron-builder/node_modules/graceful-fs/graceful-fs.js:45:10
    at FSReqWrap.oncomplete (fs.js:135:15)
From previous event:
    at Packager._build (/Users/user/go/src/domain.com/productpackage/.gotron-builder/node_modules/app-builder-lib/src/packager.ts:335:133)
    at /Users/user/go/src/domain.com/productpackage/.gotron-builder/node_modules/app-builder-lib/src/packager.ts:331:23
    at Generator.next (<anonymous>)
    at runCallback (timers.js:789:20)
    at tryOnImmediate (timers.js:751:5)
    at processImmediate [as _immediateCallback] (timers.js:722:5)
From previous event:
    at Packager.build (/Users/user/go/src/domain.com/productpackage/.gotron-builder/node_modules/app-builder-lib/src/packager.ts:288:14)
    at build (/Users/user/go/src/domain.com/productpackage/.gotron-builder/node_modules/app-builder-lib/src/index.ts:59:28)
    at build (/Users/user/go/src/domain.com/productpackage/.gotron-builder/node_modules/electron-builder/src/builder.ts:228:10)
    at then (/Users/user/go/src/domain.com/productpackage/.gotron-builder/node_modules/electron-builder/src/cli/cli.ts:46:19)
    at <anonymous>
1553614488 FTL home/equa/repos/gotron/cmd/gotron-builder/main.go:64 > : : exit status 1: exit status 1: : exit status 1: exit status 1

Are you using wine version 2.0?
Can you check if installing wine version 3 solves your problem?

I'm running wine stable 4.0 (bottled)


Should load_people, load_decks, etc. return total or not

I refactored them to return {results, total} because that's what the API wants. And because in general it's dangerous to form queries that don't have a limit. The refactoring made it so that we're issuing one query to get results+total instead of two queries. However in practical terms almost all the calls to these funcs don't include a limit and discard the total as irrelevant. So perhaps load_decks and friends should go back to having a single return value, and you call load_decks_with_total or something from the API. Or perhaps every callsite should be examined for potential perf issues. I dropped slow_query to 500ms yesterday and haven't heard anything so perhaps eveyrhting we're doing is just fine. Needs some thought.

Also while we're in there we should decide if these funcs return a Sequence or a list. They are currently split between the two. Sequence does allow the changing of implementation in future but that doesn't seem important compared to the practical benefit of not having to cast the list to a list in order to use it as a list in a type-safe way as we do in at least one place (list(matchup_people)).
And we should probably move the removing of "total" from result objects into a helper func as we do it in so many places. [Container({k: v for k, v in r.items() if k != 'total'}) for r in rs] … could form these from rs even and return the total too.

If we do switch to list not Sequence as return value, 1c9186fa has another case of an unnecessary cast to list


Build release the ruby gem

Admin merged because action in question only works on main. The other commits are opportunistic experimentation.


Added Local, Minimal and Base views to ENTITY param type

Added Local, Minimal and Base views to ENTITY param type

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.strokov seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Allow updating of props (and similar) in a simpler way

The Problem: Updating component props is annoying and different across RTL & Enzyme
When you have a component and you'd like to test its behavior over time and as props change (like if you were testing something in a useEffect hook or similar), you have:

Divergent APIs across enzyme and RTL (wrapper.setProps() & view.rerender() respectively)
APIs that update props differently (rerender() notoriously requires you to re-provide the underlying component and a set of all props, not just the delta of what's changed
Ex:

        const {
          view: { rerender, getByTestId },
        } = renderView();

        let newProps: PlanInvitationsProps = {
          ...defaultProps,
          planInvitations: {
            ...defaultProps.planInvitations,
            sort: 'asc',
            sortColumn: 'email',
          },
        };

        rerender(<PlanInvitations {...newProps} />);

(There are likely more pain points in the gaps that the current API provides, so please feel free to comment with more!)
Goals
By creating a layer of abstraction that hides this divergent complexity between these two libraries, we can:

Empower developers to write tests that are terse and clear in what they're trying to test for
Reduce the overhead for developers who want to work in/convert-from one underlying test library to another

Proposed Implementation
Using a fairly straightforward adapter layer that's re-using its known scope should allow us to do this. Something like:
(assume new method is called updateProps)
// in setupEnzyme
  return function renderWrapper(
    testProps?: RemainingPropsAndTestOverrides<ComponentType, BaseProps>,
  ) {
    const props = {
      ...baseProps,
      ...testProps,
    } as FullProps<ComponentType>;
    const wrapper = mount(<Component {...(props as any)} />);

    return { props, wrapper, updateProps: wrapper.setProps };
  };
}

// in setupRtl:
  function renderView(testProps?: RemainingPropsAndTestOverrides<ComponentType, BaseProps>) {
    const props = {
      ...baseProps,
      ...testProps,
    } as FullProps<ComponentType>;
    const view = render(<Component {...(props as any)} />, options);

    const updateProps = (updatedProps: Partial<FullProps<ComponentType>>) =>
      view.rerender(<Component {...(props as any)} {...updatedProps} />);

    return { props, view, updateProps };
  }

If we really want to, we can wrap both in an async function that makes act() an automatic inclusion so callers have to juggle even less boilerplate/overhead.
Other stuff
Are there other aspects of the CTS that you find clunky and divergent across the two main patterns? Please add them down here (or create a separate issue if you think it warrants it!)

If we really want to, we can wrap both in an async function that makes act() an automatic inclusion so callers have to juggle even less boilerplate/overhead.

Looks like this already is wrapped internally for both RTL and Enzyme.
Only enzyme's .prop() and .props() methods are not wrapped, but you can get around this with .invoke().

Enzyme puts component updating into update() for both mount and shallow:
const wrapper = mount(<ImpureRender />);
expect(wrapper.text()).to.equal('0');
wrapper.update();
expect(wrapper.text()).to.equal('1');

...with this note:

NOTE: this does not force a re-render. Use wrapper.setProps({}) to force a re-render.

RTL does both with rerender:
const { rerender } = render(<NumberDisplay number={1} />);
rerender(<NumberDisplay number={2} />);

Since RTL is closer and rerender (with props) is what we generally are thinking of, I think my naming preference would be:

rerender(newProps?)
update(newProps?)

Love those single-word API names. 😁
Regardless of what the name is, +1 from me on going ahead and doing it!

Since RTL is closer and rerender (with props) is what we generally are thinking of, I think my naming preference would be:

rerender(newProps?)
update(newProps?)

I'll probably end up going with update, since I actually don't want to confuse people whenever they have to use the native rerender (they shouldn't if using this, but still).
Getting right on this!


Include dataset logos in ac-export

For each dataset in the export include 2 images {datasetKey}.png/gif with the image height being fixed to 30px (GIF) and 100px (PNG).
Keep all images in a logo subfolder

see https://github.com/Sp2000/ConversionTool/issues/15

not really present

https://github.com/Sp2000/colplus-backend/commit/90cf942f88a20b5249c7f9a568d96240e4705d04


Added .gitattributes files to make cycling changes without overwriting original connection strings easier.

The SSRS connection in the original project uses a named instance located at:
http://localhost/ReportServer_SQLEXPRESS
While my local SSRS connection is at port 60002 on the default instance:
http://localhost:60002/ReportServer
In order to test effectively, I have to update all of my local connection strings in order to connect to a live SSRS server when running the example project or unit tests. This means I have to remember NOT to update Web.config or TestData.cs when merging to a branch I intend to use for a pull request. Otherwise, I will feel like a bad citizen.
To work around this annoyance, I have added two .gitattribute files: One for the Example project and one for the Test project. These files will cause Git to merge the Web.config and TestData.cs files with a user-defined "ours" merge strategy, if one exists in the user's .gitconfig file. Otherwise, the default merge strategy will be used.  For more information on .gitattributes and the merge attribute, look here.
The result is that anyone wishing to contribute to the project is now free to define an "ours" merge strategy in their local .gitconfig and not worry about updating their local connection strings. When merging back from local branches, the local connection strings will be discarded, along with any other changes to those two files.

Thank you!


Popup menu with manual_complete does not update items

Ubuntu 20.04.5 or MacOS 13.0.1
NVIM v0.9.0-dev-550+g3ea1524cf
See minimal.txt file for reproduction with packages and settings.
When opening popup menu with manual_complete, the menu does not update items in the list when typing characters. This only happens with manual_complete. If main UI is native, then list is updated when typing characters.
To reproduce (here, main UI is none):

convert minimal.txt to minimal.lua
nvim -u minimal.lua
do <S-Tab> in insert mode to open manual completion
Start typing one of the suggestion.

Problem is present with completeopt = "menu,menuone,noselect" or default completeopt when going to previous item on first suggestion.
minimal.txt

Please don't use plugin manager in it.

Reproduced.  But it is expected behavior.  The update items features are auto complete feature.
It is already disabled by your config.

I am not sure I understand (where is it disabled?), but if it is the expected behaviour, then I will live with it.
Thanks anyway to have checked! Next time I won't use plugin manager.

Next time I won't use plugin manager.

Thanks.

I am not sure I understand (where is it disabled?), but if it is the expected behaviour, then I will live with it.

You have disabled sources in default and you have use none UI.  It means disable auto completion.
But I have changed ddc.vim auto completion behavior.
Please update ddc.vim to the latest.

It is working now, Awesome! Thanks for the fast feature :)


GitHub Actions user needs permission to push to master branch for automated refresh-manifests CI

cc @adlerjohn, is it possible to allow the GitHub @actions-user special permissions to push to master?
This is how the nightly cron job workflow automates refreshing the set of manifests each night:
https://github.com/FuelLabs/fuel.nix/blob/e0224ed6272392fe95c43d97185d3083d6fc571b/.github/workflows/refresh-manifests.yml#L9-L52
It was previously working before transferring the repo, but it looks like the repo protections block the direct push:
Push to branch master
Pushing to https://github.com/FuelLabs/fuel.nix.git
POST git-receive-pack (1626 bytes)
remote: error: GH006: Protected branch update failed for refs/heads/master.
remote: error: At least 1 approving review is required by reviewers with write access.
To https://github.com/FuelLabs/fuel.nix.git
 ! [remote rejected] HEAD -> master (protected branch hook declined)
error: failed to push some refs to 'https://github.com/FuelLabs/fuel.nix.git'
Error: Invalid exit code: 1
    at ChildProcess.<anonymous> (/home/runner/work/_actions/ad-m/github-push-action/master/start.js:29:21)
    at ChildProcess.emit (events.js:314:20)
    at maybeClose (internal/child_process.js:1022:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:287:5) {
  code: 1
}
Error: Invalid exit code: 1
    at ChildProcess.<anonymous> (/home/runner/work/_actions/ad-m/github-push-action/master/start.js:29:21)
    at ChildProcess.emit (events.js:314:20)
    at maybeClose (internal/child_process.js:1022:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:287:5)

https://github.com/FuelLabs/fuel.nix/actions/runs/3109748765/jobs/5040255324

It should be possible to make an exception for that user. I'll take a gander this weekend or so and we'll see if it works.

Just had a quick look, it looks like this might be possible under the last "Require a pull request before merging" option, "Allow specified actors to bypass required pull requests" - something like this:

Any updates on this. Trying to use forc from nix and it's falling behind the std lib so I can't compile a super basic application.

@freesig I've manually updated the manifests here in the meantime: #32. You can use this branch now with something like:
nix shell github:fuellabs/fuel.nix/mitchmindtree/refresh-manifests#forc

though note this will build it from scratch as the cache won't be populated yet.

Just tried and this doesn't work because @actions-user isn't part of the org.

@mitchmindtree I've disabled PR requirements for master for this repo as a workaround. Let's see how that works for now.

Looks to be working nicely, cheers!


How to stop the loader?

pixi.js version: 4.7.0
Browser: Google Chrome 66
Device: macOS High Sierra

Hello everyone!
I've the following setup: my React component mounts and the PixiJS application gets initialised. Then the following code gets executed:
this.loader.load((loader, resources) => {
  this.app.stage.addChild(this.getImage({ image: item, texture: resources[item.identifier].texture }));
  this.sortStage();
});

However, now a problem occurs. If a user navigates away from the page while the loader is still running the following error occurs: Canvas.js:332 Uncaught TypeError: Cannot read property 'addChild' of null
I already implemented the following code to try to solve this issue:
componentWillUnmount() {
  this.componentIsMounted = false;
  this.app.destroy(true);
  this.loader.destroy();
}

But the error still occurs. I can use the this.componentIsMounted inside of the loader to check if the component is still mounted before adding things to the stage (this solution works) but I'd rather just stop the loader. So my question is: how do I stop the loader from loading?
Thanks in advance!

You can call .reset() to abort a load and clear resources, however I bet this isn't the root cause of your issue. I bet it is just not handling errored (or cancelled) resources correctly.

@englercj thanks for your response!
I'm indeed not handling failed (or cancelled) resources correctly since I'm not handling them whatsoever.
However, I don't get how my problem has got anything to do with failed/cancelled resources? The problem is that the React component is already unmounted while the loader is still running. So the loader tries to add children to the stage but the stage is already removed from the DOM.
I'll implement your solution by calling .reset() in componentWillUnmount and will check if it works.
Also I think it's kinda weird that .reset() isn't called by .destroy().

Calling .reset() inside of componentWillUnmount solved my issue.


Enhancement: Pre-populate .eslintrc.js when upgrading SPFx projects to v1.15

With SPFX v1.15 tslint has been replaced with eslint and by default a bunch of more rules are added. When building an upgraded project you are likely to get a whole bunch of eslint warnings which to the average developer can be overwhelming unless you're not bothered by warnings.
eslint is not about code correctness, but is there to help you write more robust code - with a pre-opinionated rule set. I have two proposals.
One
Instead of a blank eslintrc file, add the rules likely to cause warnings, but have them enables as the default 1.15 has. But having them in place makes it easier to turn them off. Something like:
require('@rushstack/eslint-config/patch/modern-module-resolution');
module.exports = {
    extends: ['@microsoft/eslint-config-spfx/lib/profiles/react'],
    parserOptions: { tsconfigRootDir: __dirname },
    rules: {
        "@microsoft/spfx/no-async-await": 1,
        "@typescript-eslint/naming-convention": 1,
        "@typescript-eslint/typedef": 1,
        "@typescript-eslint/explicit-function-return-type": 1,
        "react/jsx-no-bind": 1,
        "@typescript-eslint/no-explicit-any": 1,
        "@typescript-eslint/no-parameter-properties": [1, {
            allows: ["public"]
        }],
        "max-lines": 1,
        "@rushstack/security/no-unsafe-regexp": 1,
        "dot-notation": 1,
        "prefer-const": 1,
        "eqeqeq": 1,
        "react/self-closing-comp":1,
    }
};

could be more as well.
Two
Have a switch to add the same rules but in a disabled state, or output a message in the output report about taking a peek at the eslintrc file and make up your mind.

Awesome suggestion! @pnp/cli-for-microsoft-365-maintainers we'd appreciate your feedback

yes, definitely nice to have.
Maybe just mark it optional somehow.

Sounds good, I vote for an extra section for optional changes, with the benefits described along with them. This could be used with upgrades to other versions as well. (if we have optional advice like this)

Sounds good, I vote for an extra section for optional changes, with the benefits described along with them. This could be used with upgrades to other versions as well. (if we have optional advice like this)

We already have the notion of optional rules, so this could be one of them. The only challenge is how (if at all) it would show up in the summary script, which is how most folks go about upgrading their project. Alternatively, we could consider introducing a switch, like --extraSuggestions, to include these extra recommendations, but we'd need to see how discoverable it would be.

I'd say not use a switch, but add it anyhow. It would fantastic if the suggestions where appended anyway below their own Suggestions header or something.

Change from using 0/1 => "off"/"on" to be more clear and consistent with existing rules.
Would prefer to have a single configuration, such as one in the default profile on my environment, that the project inherits from, so one doesn't have to configure each project, or uses it as the default.
For instance, why set tabs vs. spaces or font size in a project when it's can be as a setting in the editor.

Additional rules:

no-floating-promises
react/jsx-no-bind
no-explicit-any
consistent-type-assertions
explicit-member-accessibility
naming-convention

I also love the idea 😍
Not having the option and just adding it always seems ok 👍
TBH I would add a option for it which will maybe allow us not to only add or not to add empty eslintrc file but maybe also allow the user define how much validation she or he wants to add 🤔. Of course now we will need to discuss what rule should be added to which option 😋.
So I was thinking like adding something like --eslintRules [empty, basic, advance, tooRestrictiveToWriteCode]  or something similar. Each of those could pre populate the file with different set of rules (more/less).

Let's keep in mind, that the context is the spfx project upgrade command that runs across all versions of SPFx, so we should be mindful of introducing new options that apply only to specific versions.
If we're to hide the functionality behind an option, then I'd suggest something more generic, like --withRecommendations or --recommendations and which we could use for things other than just eslint.

@Adam-it said:

TBH I would add a option for it which will maybe allow us not to only add or not to add empty eslintrc file but maybe also allow the user define how much validation she or he wants to add 🤔. Of course now we will need to discuss what rule should be added to which option 😋.

@waldekmastykarz said:

If we're to hide the functionality behind an option, then I'd suggest something more generic, like --withRecommendations or --recommendations and which we could use for things other than just eslint.

Not a fan of this... IMHO, the project upgrade command should be for upgrading a project from one version of SPFx to another version. Going down the path of adding features that modify projects and yield something you woudln't normally get from a brand new project created with the generator is changing this command to be more about project customization than project upgrade.

In general, not a fan of having this tool make changes to .eslintrc.js to silence coding issues the ESLint config is now exposing in SPFx v1.15 projects.
IMHO, this (new ESLint rule messages) should be addressed in the generator itself, hence the discussion item I created... or get my heavily opinionated version from my blog post / ]video 🤷♂.
Play this out: if the SPFx engineering team makes adjustments to SPFx v1.15.1 that mitigate the default projects to be more in line & yield only critical changes, do you really want to change them here?
IMHO, the only thing this tool should do is not make changes to the project, rather provide guidance if you upgrade a pre-SPFx v1.15 project => a v1.15+ version. Because I don't see much how this differs from if your app used an older & now removed API from the version you're working with. In that case, you have to fix your code.
When it comes down to it, ESLint rule messages are warnings, not errors.

Is this discussion still relevant now that SPFx 1.15.2 has been released some weeks ago?

I don't think so, because the default set has changed and developers can still decide which rules they want to use. Closing for now.


Change account_id for many/all domains at once

Is there a way to change the account of more than one or even all domains at once? The GUI does not offer such an option and doing this via mysql cli does not yield the expected result.
I can execute the statement
update domain set account_id='4' where account_id IS NULL;
which changes the account_id just fine, but the moment I open up PowerDNS-Admin it changes the account_id back to NULL. The logfile says
2019-11-26 14:04:55,806 - app.views - DEBUG - Update domains in foreground
2019-11-26 14:04:55,815 - root - INFO - 598 Entrys in pdnsADMIN
2019-11-26 14:04:55,825 - urllib3.connectionpool - DEBUG - Starting new HTTP connection (1): <IP_ADDRESS>:8081
2019-11-26 14:04:55,834 - urllib3.connectionpool - DEBUG - http://<IP_ADDRESS>:8081 "GET /api/v1/servers/localhost/zones HTTP/1.1" 200 150523
2019-11-26 14:04:55,838 - root - INFO - 598 Entrys in PDNSApi
2019-11-26 14:04:55,922 - root - INFO - updated PDNS-Admin Domain <Domain sub.domain.com>
2019-11-26 14:04:55,933 - root - INFO - updated PDNS-Admin Domain <Domain another.domain.com>
[...]

Am I missing something? I really do not want to change the account for 600 domains manually... Any help is appreciated.

Figured it out. The account information is stored in the pdns database. The table domains has a column called account that stores this information.


Feat/aliases - signify

https://github.com/bramstroker/homeassistant-powercalc/pull/955

[ ] Assess the linked_lut examples.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 93.005%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
2207

Relevant Lines:
2373

💛  - Coveralls

#955

[ ]  Assess the linked_lut examples.

Could you elaborate on this?

Example:
https://github.com/bramstroker/homeassistant-powercalc/pull/956/commits/79ec7009203761c4f4a5160c2022b02ca02611ce
What exactly is linked_lut? An earlier edition of aliases, or something else? Wasn't sure.

Example: 79ec700
What exactly is linked_lut? An earlier edition of aliases, or something else? Wasn't sure.

With the linked_lut feature it will de handled as a different model, so it will also generate a separate entry in supported_models.md so the user can more easily find the model.
But there is a lot of overlap to aliases. Maybe we can re-assess this in the future to see if we still need it.


sst console not showing any errors when the current aws cli sso session expires

if I sign in via the aws cli with aws sso login and then the session expires, when I run sst console the console is stuck on waiting for cli. Looking at the emssages being transferred over the websocket in DevTools I can see a useful error message being sent over it, but that's not shown on the actual page or at least in the js console, which makes it really confusing if you don't think of checking the websocket messages

Can you post this over on #help on Discord?


Update registration failed

Does anyone here experience the same issue?
I've updated my IPT but after the process all Organization content was gone.

Thank you for contacting us.
This is your issue https://github.com/gbif/ipt/issues/1794. You need to upgrade your IPT to the most recent version (currently 2.7.3) and update IPT tokens at the GBIF registration options page.

Feel free to contact us if this is still a problem


Where is the explanation of the severity levels?

On the TextEditor -> C# -> CodeStyle -> Formatting -> Naming config page there is a “Refactoring Only” option for Severity. What does it do?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: e8c8357d-11a6-6f12-b044-5ff44df65d10
Version Independent ID: 0c103fd7-5cc4-2726-40f8-d759419ae635
Content: .NET code style rule options - .NET
Content Source: docs/fundamentals/code-analysis/code-style-rule-options.md
Product: dotnet-fundamentals
GitHub Login: @gewarren
Microsoft Alias: gewarren

I will check this out as soon as I have a moment, but maybe it's an option that only appears in the Context Menu under refactor?

This info would be more appropriate in the VS docs, perhaps in this section. Also, there's a link to what severity levels mean in the VS IDE in the green Tip box here, but it redirects back to the .NET docs. Once we have the info for the VS severity levels documented, we should fix that link to point to it. @TerryGLee @Mikejo5000 Do you want me to transfer this issue to MicrosoftDocs/visualstudio-docs?

This info would be more appropriate in the VS docs, perhaps in this section. Also, there's a link to what severity levels mean in the VS IDE in the green Tip box here, but it redirects back to the .NET docs. Once we have the info for the VS severity levels documented, we should fix that link to point to it. @TerryGLee @Mikejo5000 Do you want me to transfer this issue to MicrosoftDocs/visualstudio-docs?

@gewarren  that page does have some of the info I needed but I still dont see what "Refactoring Only" means or does.  When searching for "Refactoring Only" in all of MS VS IDE documentation this article is the only mention of it.

@gewarren  that page does have some of the info I needed but I still dont see what "Refactoring Only" means or does.  When searching for "Refactoring Only" in all of MS VS IDE documentation this article is the only mention of it.

Here's the VS descriptions that have since been deleted. The "Refactoring Only" option corresponds to "silent" in this table.

Here's the VS descriptions that have since been deleted. The "Refactoring Only" option corresponds to "silent" in this table.

Looks fine to transfer this, Genevieve.

Looks fine to transfer this, Genevieve.

This issue was moved to MicrosoftDocs/visualstudio-docs#6263

This issue was moved to MicrosoftDocs/visualstudio-docs#6263


[BUG] Auto complete using the TAB key no longer works

I'm not sure when it stopped working but at least in the 3.0.8 release, pressing the TAB key while entering a query no longer offers a drop-down of auto completion hints.
It is possible to re-enable it by entering the command
%config Completer.use_jedi = False

This is caused by a bug whereipython<=7.19.0 pulls in jedi>=0.18.0 which is incompatible:
https://github.com/ipython/ipython/issues/12740
We can pin the jedi version to 0.17 to patch this.


Misleading command line option description

type - mlcp.bat import (assuming mlcp is in path)
This will list out all the possible options for import command -
search for -transform_param  and check the description. Description says "Name of the transform function"
it should be "Optional extra data to pass through to a custom transformation function"

Good catch.  Thank you Sanju!

I see the following
-transform_param  Parameters of the transform function


Latest felix not programming all iptables rules in calico-docker

I'm hitting a problem in calico-docker with the latest felix.  I initially had a problem with the installation (we needed to fix up our container image to include the yajl2 libraries) but have resolved that.
I'm running a 2 host test with a single workload on each host and a single profile used by both workloads.  Connectivity between the workloads is fine with<EMAIL_ADDRESS>but broken with the latest master.
Looking at the iptables on a working (calico 1.2.1) and non-working (calico master) system reveals a large number of missing iptable entries.  No felix error logs.
I've gathered diagnostics from both hosts on the working and non-working system.  In all cases I've set log level to DEBUG.
Diagnostics can be downloaded as follows:
Host 1 (working system):  https://transfer.sh/O4KhO/diags-181115-024426.tar.gz
Host 2 (working system):  https://transfer.sh/mnqq1/diags-181115-024516.tar.gz
Host 1 (Non-working system): https://transfer.sh/blY0Q/diags-181115-024848.tar.gz
Host 2 (Non-working system): https://transfer.sh/NcPre/diags-181115-024920.tar.gz

First thing that comes to mind is that we have added extra log files, and your diags job is not picking them up. That'll be what happens when we have different log collection jobs in different places (there's a driver log).

I've had a brief dig into this, but couldn't find anything quickly. The only major change since v1.2.1 is Shaun's PR for concurrent resync. I suspect the problem is probably buried in there, although there aren't any obvious changes to the ipsets code.

OK - I had a quick look but have stopped now. A few odd things.

The Felix process is refreshing data every few seconds, which is odd. It might be that the refresh timer is firing too often?
The driver logs added in this version are missing. Those would tell us what is going on from the etcd point of view.
Looks like we do not have debug logs, just INFO level.

Net of this is that I think we probably do have a bug, but we should get debug logs and driver logs as well as felix logs to figure out why this is so broken in your environment.

I'll update our log collection today and gather more logs and update the issue.

oops sorry closed by mistake!

Hmm, actually the logging might be a little more tricky in calico-docker land.  We currently have our processes log to stdout and use svlogd handle log file rotation.
So, what happens if the felix log level is set to write to stdout only?  What happens to the driver logs?

I can see driver logs in the trace:
2015-11-18 02:46:08,759 [INFO][50/140139390368432] calico.etcddriver.driver 329: Sent config message to Felix.
Or should I be looking for something else?

I think this might be related to #903.
If I stop and restart felix on both of my hosts, everything fixes itself - so this would appear to be an issue with notifications from etcd maybe?

I've turned on debug tracing before Felix started.  Both of these are for a non-working system using the latest Felix.  Half way through you will see I forced a stop/start of felix, at which point everything kicks into life.  Diags were collected after the restart.
Host 1: https://transfer.sh/1738MK/diags-181115-201857.tar.gz
Host 2: https://transfer.sh/Vz5YD/diags-181115-202008.tar.gz

@robbrockbank the driver has its own logging config params.  It can log to stdout too; I think that will mix the logs in one stream for you to collect.

@plwhite and I had a look though the diags for bad host 1.  It appears that Felix is receiving no updates at all from etcd.  @robbrockbank are you sure that you're not writing to one etcd cluster and reading from another :-P ?  That would explain #903 too.

We only have a single etcd instance running.  The only difference between the working and non-working scenarios is which version of calico we are baking into our ST.  So whilst it could be some kind of configuration issue, it is suspect that it was working before.

@robbrockbank You said on Slack that you thought this was some sort of timing window, which you only see when running docker-in-docker.


Make a GitHub release when a tag is created

Make a GitHub release when a tag is created
Version 0.14.1

@ablbot autosquash


Build broken

OS: Windows 10, 64bit
bgfx has alot of compilation errors trying to compile for a 64bit target:
$   genie --with-examples --platform=x64 vs2015
It's the same thing with vs2017. 32bit seems to compile fine, except:

HEAD is broken. I had to update to a previous revision.
Most of the tests crash with a debug_break. This might be related to not finding some runtime data. I ran the tests from where they were built.

The latest commit '16ddf4f', has a build error when compiling for 32bits. For this one, it was revision of 10/7/2017 @12:50:38 AM, EST that broke the build.

Fixed build.

Most of the tests crash with a debug_break. This might be related to not finding some runtime
data. I ran the tests from where they were built.

Yes, see:
https://bkaradzic.github.io/bgfx/examples.html#examples


As part of vAMM, remove the part of the margin calculation where we estimate slippage from order book...

... and allow lower margin based on that.
I.e. the margin will be based on (linear slippage factor + rf) x price x size
And max leverage is simply 1/ (linear slippage factor + rf)

@peterbarrow / @wwestgarth  - please can we do some performance review/thinkings and see if this is likely to be required


read/write traffic controller settings

Ability to read (and perhaps write) controller settings, including things like server IPs, timeouts, etc.
A concrete example is the ability to read/write the NTP (network time protocol) settings.

Settings such as NTP is accessible using the admin web interface of the TLC (at least for Swarco and Dynniq controllers).
However, some configuration details differs between the TLC's. For NTP there might be a difference of settings regarding primary and secondary servers, synchronization intervals and so forth. I understand that we'd like to have all settings accessible, but some TLC might not support all options. Do you think there is a point of having these in RSMP or is the web interface good enough?

Somethings we might want to standardize across all traffic controllers. For these it makes sense to be able to read/write them via RSMP. We could also consider a general way to access (possible standardized) settings as a key/value pairs.

closing, as we have implemented a way to download all settings as a binary format.


PS7 block not initialized on series-7 Zynq targets

I'm using Vivado 2019.2, with the artix z7 board. Vivado spits this warning:
WARNING: [DRC ZPS7-1] PS7 block required: The PS7 cell must be used in this Zynq design in order to enable correct default configuration.

this should be simple enough to fix in verilog, but I don't know how to fix that in nMigen.

Try something like:
m.d.submodules += Instance("PS7")

Did this work for you?

it did not.

Right, there's likely a bug in the RTLIL backend that prevents this from working. I'll take a look.

From IRC:
[11:45:03] <vup> this seems to be the problematic line: https://github.com/nmigen/nmigen/blob/7aedb3e77045e865ea8e676b4a6616d03599a3ad/nmigen/back/rtlil.py#L858-L859 Considering Instances could be nested arbitrarily deep inside submodules without any ports this doesn't seem correct

@rroohhh Ah right, so the problem that 9faa1d37425ddafb5b2e76d502d86e3bff9ae54c was fixing is that Yosys treats empty modules as black boxes. Maybe they should contain a dummy wire or something.

Now that I think again about it, this might be a Yosys bug.

from a question on the xilinx forums, it seems like putting a dummy with all the wires connected to some values (or disconnected- open in vhdl) should solve the issue. I am not sure this is optimal- this means many many lines of code for this one small problem.


chore: Update migration notes with version #

Docs Preview
Hey there! 👋 You can check your preview at https://67040072be26b12fcfe5a5f4--aztec-docs-dev.netlify.app


Inna: Welcome to JS, 3 weeks

Learning Objectives

all of these skills are limited to short, single-page programs written with
Just Enough JavaScript

Priorities: 🥚, 🐣, 🐥, 🐔 (click to learn more)

There is a lot to learn in this repository. If you can't master all the material
at once, that's expected! Anything you don't master now will always be waiting
for you to review when you need it. These 4 emoji's will help you prioritize
your study time and to measure your progress:

🥚: Understanding this material is required, it covers the base skills you'll
need for this module and the next. You do not need to finish all of them but
should feel comfortable that you could with enough time.
🐣: You have started all of these exercises and feel you could complete them
all if you just had more time. It may not be easy for you but with effort you
can make it through.
🐥: You have studied the examples and started some exercises if you had time.
You should have a big-picture understanding of these concepts/skills, but may
not be confident completing the exercises.
🐔: These concepts or skills are not necessary but are related to this module.
If you are finished with 🥚, 🐣 and 🐥 you can use the 🐔 exercises to push
yourself without getting distracted from the module's main objectives.

1. What is Programming
What is a program? What is a programming language? How do programs and people
fit together?

[x] 🥚 Data in, Data Out: You understand that computer programs are used
to transform data, and can explain a JS program from this module in terms
of the data that goes in and the data that comes out.
🥚 Three Audiences: You can explain how a single file of code is used to
communicate with 3 different audiences:

[x] Developers: You can explain how code formatting, comments, logs and
variable names make it easier (or harder!) for a developer to understand
a program.
[x] Computers: You can explain how a computer follows your instructions
to store, read and modify data in program memory.
[x] Users: You can explain how the computer creates a dynamic user
experience by following different executions paths depending on user
input.

[x] 🥚 Tracing Variables: You can complete a trace table for a program
that uses only variables, and can check your work using the "trace"
button.
🥚 JavaScript Syntax: Given a program, you can identify these parts of
JavaScript syntax:

[x] Primitives
[x] Operators
[x] Identifiers
[x] Keywords
[x] Checks
[x] Blocks
[x] Function Calls

[ ] 🥚 Pseudo Code: You can explain what pseudo code is, how it's used and
why it's helpful.
[ ] 🥚 Program Goals: You understand that a full JavaScript program can be
explained as a series of smaller goals, and can write names for the goals
in a simple working program.
🐣 Program Analysis: You can study a simple working program and identify:

[ ] The program's behavior (data in, data out)
[ ] The program's goals
[ ] The program's syntax and language features
[ ] Which parts of the source code are for which audience (users, devs,
computers)

[ ] 🐥 Same Behavior, Different Code: You can study simple programs with
the same behavior (data in, data out) but different source code and
explain how the differences matter for each audience.

2. Just Enough JavaScript
Go in depth on JavaScript you need to know for writing interactive text-based
programs in the browser. Along the way you will learn how each language feature
works in small programs.

🥚 Listening and Reading: You can read code out loud, and understand your
classmates when they read code to you. You don't need to understand how a
program works to master these learning objectives!

[ ] Listening You can exactly re-write a program that a classmate has
read
[ ] Reading You can read a program out loud and guide your classmates to
re-write exactly the same code without them seeing the program. Every
indentation, semi-colon, comment and spelling in their program must be
identical to yours.

🥚 Static vs. Dynamic Analysis: You can explain and use these two ways of
studying a program, each can help you understand different aspects of your
code. To help understand this concept, the options panel in Study Lenses is
organized into static and dynamic study options:

[ ] Static: Studying the text in a code file without running it. Some
static study methods are creating a flowchart, analyzing variables,
filling out a trace table, and drawing on code.
[ ] Dynamic: Running code and studying the computer's behavior. Some
dynamic study methods are running code and reading console logs, using
the trace button, and stepping through in the debugger or JS Tutor.

[ ] 🥚 Tracing Execution: You can complete a "steps" trace table for all
JS language features in Just Enough JavaScript, and can correct your table
using console output from the "trace" button.
[ ] 🥚 Analyzing Variables: You can list all the variables in a program,
and answer these 5 questions for each variable:

Where is the variable declared?
What is the variable's scope?
Is the variable initialized with a value?
How many times is it's value used (read) in the program?
How many times is the variable assigned a new value?
What types are assigned to this variable during the program's execution?

[ ] 🥚 Completing Programs: You can successfully fill in blanks for a
program when the missing words are provided, including distractors.
[ ] 🐣 Translating Pseudo Code: Given a program written in Pseudo Code,
you can translate it to working JavaScript.
[ ] 🐣 Comparing Programs: You can compare two programs with similar code
and explain if they have the same behavior or not. If they do not, you can
explain how they behave differently and why.
[ ] 🐥 Constructing Programs: You can reconstruct a program's lines and
indentation, successfully ignoring distractor lines.
[ ] 🐥 Linting: You can find and fix simple linting errors in JavaScript
programs.
[ ] 🐔 Writing Programs: You can write small programs that log specific
values, or pass specific test cases.

3. Understanding Programs
Learn how to understand a larger programs by finding connections between the
details and the big picture. By the end of this chapter you will know how to
read a new program and do a simple code review.

[ ] 🥚 Stepping Through: You can pause a script in a your browser's
debugger, arrange the debugger, collapse extra panels, and step through a
script written with Just Enough JS. At each point in execution you can
make a prediction of the next line before executing, and can check your
prediction using the scopes panel.
[ ] 🥚 Imperative Programming: You can explain what the Imperative
Programming paradigm is, and can explain how you know the programs in
Welcome to JS are Imperative.
[ ] 🥚 Logging: You can tracing specific aspects of a program's execution
and log them to the console.
[ ] 🐣 Naming Variables: You can analyze how a variable is used in a
program and give it two names:

Generic: You can give a generic name to a variable based on how it is
used in the program.
Specific: You can give a specific name to a variable based on how it's
used and the program's domain (the program's specific data and use-case).

[ ] 🐣 Describing Programs: You can read a program and describe it with
comments using to the methodology from /describing-programs:

Zoom Out
Zoom In
Find Connections
Describe Goals

[ ] 🐥 Code Review: Given a working program you can review the code for
clarity, correctness and style.

4. Developing Programs
Learn to modify and write larger programs in JavaScript. You'll cover many of
the hidden skills necessary to develop quality software and to work
collaboratively on a code base.

[ ] 🥚 Program Life Cycle: You can explain the two phases of a program's
life cycle.

Creation Phase
Execution Phase

[ ] 🥚 Fixing Errors: You can use the structured comment to describe an
error in your program, and can make several educated guesses at how to fix
the error.
[ ] 🐣 Fixing Bugs: You can use the structured comment to describe and fix
a bug in small programs.
[ ] 🐣 Modifying Programs: You can make small changes in a program to
change it's behavior without breaking it.
[ ] 🐥 Refactoring: Given a working program, you can make changes to the
code without changing the program's behavior.
[ ] 🐥 Writing Programs: Given a description of a program's behavior
(user story + test cases), you can plan goals for the program and write
code to pass the tests.
🐔 Reverse Engineering: Given a working program with unreadable code, you
can:

[ ] Give the program a name.
[ ] Describe the program's behavior with a user story, acceptance criteria
and test cases.
[ ] Plan goals for the program.
[ ] Develop your own working program with the exact same behvior.

🐔 Imagining Programs: Given an empty page, you can imagine and develop
your own programs using Just Enough JavaScript. This includes:

[ ] A title.
[ ] A description with a user story, acceptance criteria and test cases.
[ ] Commented goals.
[ ] Fully working Code.

@inna9Z any comments?

Week 1
I Need Help With:
For this moment I haven't questions , i know that I need to practice more , what i do now .
What went well?

JavaScript Features
Tracing variables
Interaction: alert, prompt, confirm

What went less well?
I understand general concept of JS but there is a lot of theory and its hard to remember all.
Lessons Learned
I learned a lot of theory but to understand and remember  it better need to practice a lot.
One of the videos that helped me to better understand JS
JavaScript Tutorial
Sunday Prep Work
Started  2-just-enough-javascript

@danielhalasz added

Week 2
I Need Help With:
For the moment all is fine
What went well?
I learned just-enough-javascript ,I can't say it was easy and I learned everything
What went less well?
I had problem understanding to using while loop ( now is clear )
Lessons Learned
Better to do slowly and correctly than fast and bad . Practice more because JavaScript is really complex language
Sunday Prep Work
3-understanding-programs

@inna9Z week3?

Week 3
I Need Help With:
What went well?
I really enjoyed working last Sunday where we worked in pairs and could ask the coaches our questions.  I finished doing all the exercises ( javascript-exercises ) except the extra exercises.
What went less well?
It was a bit difficult for me to use (html css and JS) all together but i'm trying to get there and better understand how its works.
Lessons Learned
More practice, try to repeat study lenses every day, don't forget about html and css.
Sunday Prep Work
improve their knowledge , 3-understanding-programs

It was a bit difficult for me to use (html css and JS) all together but i'm trying to get there and better understand how its works.

it is completely fine not to fully understand it at this point, the important now is that you learn the core of JS.. so later you can apply it however you need


Logging V2 UI

Users will need a custom UI for configuring the cluster logging pipeline.
annotations

catalog.cattle.io/certified: rancher
catalog.cattle.io/namespace: logging-system
catalog.cattle.io/release-name: rancher-logging
catalog.cattle.io/component: logging

Header: Output
A dropdown to select from a list of supported outputs is need.  Based on the value of the select one of the multiple output forms will be displayed.  To start only elasticsearch is supported.
Outputs::elasticsearch

Field
Type
Default

elasticsearch.enabled
hidden field set to true
true

elasticsearch.host
string, required
""

elasticsearch.scheme
drop down http
https

elasticsearch.port
int
9200

elasticsearch.index_name
string
<cluster name

elasticsearch.user
string
null

elasticsearch.password
password
null

elasticsearch.client_cert
string
null

elasticsearch.client_key
string
null

elasticsearch.client_key_pass
string
null

Additional outputs will be needed as they are supported.

There will be more providers as we continue to develop. They can be added here or in separate issues.

@paynejacob catalog.cattle.io/component: logging is supposed to be catalog.cattle.io/ui-component: logging

Here's a screenshot of what we have for now. Let me know if there's anything we want changed.

Additional Outputs
Outputs::kafka

Field
Type
Default

kafka.enabled
hidden field set to true
true

kafka.brokers
string
blank

kafka.default_topic
string
cattle-logging-system

kafka.sasl_over_ssl
bool
false

kafka.scram_mechanism
string
PLAIN

kafka.username
string
blank

kafka.password
string
blank

kafka.ssl_ca_cert
string
blank

kafka.ssl_client_cert
string
blank

kafka.ssl_client_cert_chain
string
blank

kafka.ssl_client_cert_key
string
blank

Outputs::splunk

Field
Type
Default

splunk.enabled
hidden field set to true
true

splunk.host
string
blank

splunk.port
int
8088

splunk.protocol
string
http,https

splunk.index
string
cattle-logging-system

splunk.token
string
blank

splunk.client_cert
string
blank

splunk.client_key
string
blank

splunk.insecure_ssl
bool
false

Outputs::syslog

Field
Type
Default

syslog.enabled
hidden field set to true
true

syslog.address
string
blank

syslog.cluster
bool
true

splunk.root_ca
string
blank

@paynejacob @cbron Instead of constantly adding to this ticket, can we open new tickets for new providers so that each provider could be tested by QA?
@lvuch For selecting provider, I'd like to be able to use either the graphical boxes that we have for 2.4 logging or using the side tab style to be able to see all options available instead of using a dropdown.
Is there a way we could group these boxes to be prettier?

I think this ticket is irrelevant at this point based on the changes going on in deployment, output/clusterouput, etc.
@paynejacob if you think otherwise, please let me know.

I agree this is covered by https://github.com/rancher/dashboard/issues/1109


写一个轮播图

Is your feature request related to a problem? Please describe.

Describe the solution you'd like:

Describe alternatives you've considered:

Additional context:

用html写一个轮播图


AlpineJS class object syntax breaks when being sorted

When I assign classes with Alpine.js' class object syntax the extension has suddenly started to corrupt this syntax. I have been using the extension for years, and Alpine.js for years, so I have no idea why it suddenly started doing this.
I tried disabling the extension, and then the attribute stays as it is, when saving the file, so I'm pretty certain that this is a bug in this extension.
Can we make some kind of exception, so the extension doesn't sort classes between { and }?

It might be as simple as adding \s (to require a whitespace character before class) in the start of these regexes: https://github.com/theron-wang/VS2022-Editor-Support-for-Tailwind-CSS/blob/ff2172486b1368e64ae97e3048d34b891c9ce8f5/src/Helpers/ClassRegexHelper.cs#L12
But of course it would be nice if it could sort the classes (and offer intellisense) inside the object too :)

Adding \s[cC]lass\s*=\s*(['""])\s*(?<content>(?:\n.|(?!\1).)*)?\s*(\1|$) to my custom regex seems to fix it.
Can it be added in tailwind.extension.js too, to make it easier to enforce on a project basis?

Thanks. I will either add a safeguard to stop class sorting when apostrophes are present, or I will re-add direct support for Alpine, as you suggested, in the future.

It might be as simple as adding \s (to require a whitespace character before class) in the start of these regexes:

Unfortunately, I can’t do this because the extension has historically supported IntelliSense in razor components, which can have classes in variables and custom attributes.
Regarding custom regexes in tailwind.extension.json files, I do believe this is the right way to go forward.
Thank you for your help and your patience! I apologize for my oversight.

@skttl This should be fixed in 1.7.1. I've also included your suggestion for project-based custom regexes (see more details here). Please let me know if you run into any further issues!

That is amazing - thanks!


Make cursor visible when in a cmdline

This fixes the oversight in #379.

Coverage decreased (-0.002%) to 28.149% when pulling fa48f8b3982561926889e28ac168ac24c4a3e233 on sometoby:hide-cursor into f1fdab152c136c6d2496a07855e18cb09821b9fc on akrennmair:master.

While testing, I also found a number of other places where it makes sense to show the cursor:

search dialog
goto-url
bookmark
edit-flags

We have a thingy called QNA somewhere in the view.cpp IIRC—it's responsible for things like that. Can you patch it as well?

Theres formaction::start_qna and formaction::finished_qna in formaction.cpp, setting the cursor visibility there would probably be the cleanest solution.

There we go, that should do it. Apologies for my lackluster testing.

I broke it :) ?/<Enter>, i.e. open help dialog, start a search, press Enter. The cursor stays on. If I enter search again and press Escape, the cursor disappears.
The rest of stuff I listed before works properly.

Coverage increased (+0.004%) to 28.155% when pulling e91bbb6ea9554bff0e6dacfd6a37ea9ad9121b29 on sometoby:hide-cursor into f1fdab152c136c6d2496a07855e18cb09821b9fc on akrennmair:master.

Coverage increased (+0.004%) to 28.155% when pulling e91bbb6ea9554bff0e6dacfd6a37ea9ad9121b29 on sometoby:hide-cursor into f1fdab152c136c6d2496a07855e18cb09821b9fc on akrennmair:master.

To be clear on what's going on: are you looking/will look into this, @sometoby?

Fixed that too!

Coverage increased (+0.04%) to 28.188% when pulling d23a6ef79f0f0723055f8493970810d00548a36b on sometoby:hide-cursor into f1fdab152c136c6d2496a07855e18cb09821b9fc on akrennmair:master.

Yes you did! Just tested it all.

Podbeuter still needs to have this fix applied seperately, I'll look into that later.

Did you have a chance to look into updating Podbeuter yet?
I'm thinking of merging this PR as-is to fix Newsbeuter, and opening a separate, Podbeuter-specific issue that can be closed later with another PR. What do you think?

I'm thinking of merging this PR as-is to fix Newsbeuter, and opening a separate, Podbeuter-specific issue that can be closed later with another PR.

Going through with this because this will allow me to finally bring {ordinary,fancy}-changelog branches up to date with the master.
I'm re-opening #344 to remind us that Podbeuter part isn't done yet.

And last but not least: thanks for working on this!


Doesn't compile for AVR chips in PlatformIO

Looks like current AVR compiler does not support C++11 (or doesn't include standard library for that).

Thanks for the Info. I think I did not mention AVR as a supported platform, but I've made that more clear in the readme.


[WIP] Spreadsheet validation

This is associated with moving inappropriate code out of config/settings.yml which is associated with the upload of orphan spreadsheets (https://osraav.atlassian.net/browse/OSRA-240)
I've created this pull request just to provide visibility of the approach I've been taking, to see if you want me to progress along these lines.
Note that this will cause several rspec failures, because I haven't updated the tests to align with this module design.

Functionality has been updated to drive the mapping from spreadsheet to orphan attributes off the headers within the spreadsheet. Also a number of test spreadsheets updated to take account of the latest changes within the v3.3 headers.


Make bot automatically copyedit

I suggest that @eth-bot automatically submit a review requesting changes when travis detects spelling errors, or the bot detects missing EIP header info, missing EIP sections, incorrect filenames, and the like. I would estimate that the average EIP author would save a dozen years per second.
This is probably low-priority, given the high complexity.

Note: The dozen years per second is likely an overestimate.

Agreed. Low priority for sure..

I'll make a list of things that I'd suggest the bot do:

If the EIP number is missing, directly edit the file to set the EIP number to the PR number, automatically replace all instances of EIP-XXXX to the actual EIP number (including the PR title), and change the filename.
If the EIP is in the title or description, directly remove it.
If the title, description, discussions-to, type, or category are missing, add comments prompting the user to add them.
If the created field is missing, fill it in with the current date.
Automatically edit the requires field to include all EIPs referenced (assets folder, EIPs folder, text containing eip-XXXX, erc-XXXX, eipXXXX, or ercXXXX).
Automatically add the CC0 waiver at the bottom if missing.
Warn users of missing EIP sections.
Point out probable spelling errors by adding suggestions.
Warn about external links. Add a folder in the EIP's assets folder called references, and put a PDF of the linked documents in it.
In the Specification section, suggest to replace all links to solidity files to inline versions.

More to be added.

If the EIP number is missing, directly edit the file to set the EIP number to the PR number, automatically replace all instances of EIP-XXXX to the actual EIP number (including the PR title), and change the filename.

This should be two separate items I think.  One to set the EIP number, and another to fix all incorrect references to other EIPs.  Regarding setting the EIP number in the header, I'm a bit hesitant to automate this because it is already a source of people trying to game the system, and automating it I fear will make that problem worse.  Assigning EIP numbers is probably the easiest part of the editor job, so not doing this feels like it may be better.

I like the idea of crawling links and putting a PDF version of them in assets automatically, but it feels like a lot of work and I worry that most users won't want that in the end.
I'm generally in favor of most of those changes though.  The value provided by each varies greatly, so for prioritization it may make sense to figure out which ones would be the most impactful.

Maybe editors can manually set the EIP number in the header, and then the bot updates it?

Hi Guys,
Suggestions for Pandapip1 list:

EIP number is and must be assigned by Editors. For this EIP 1 / EIP - template must be completed (full fitted) by author(s), if-not, EIP number is not assigned by editor (?).
2, 3, 4, 6, 7 could be implemented by bot (assert..)
5, 8, 9, 10 do not see the consensus from you guys in the comments. Needs further discussion/feedback.

I think there are actually a couple different features mixed together in your list @Pandapip1. There are some fields which should (or can only be) set upon merge:
(1) Setting the EIP number
(4) Setting the created date
(11) Setting the last-call-deadline date to 14 days after merging
Then there are lints which can either be automatically be applied+committed, or the bot could leave a comment:
(2) Disallow text matching eip[-\s]*[0-9]+ and erc[-\s]*[0-9]+ in title and description.
(3) Require all mandatory preamble headers are present and in the correct order.
(5) Warn if referenced EIPs are not included in requires preamble header.
(6) Require CC0 waiver.
(7) Require mandatory EIP sections and disallow others.
(8) Warn on spelling errors.
(9) Warn about external links.
(10) Warn about solidity in assets directory.
Where WARN means make a comment but do not request changes; REQUIRE means make a comment and request changes if the condition isn't met; and DISALLOW means make a comment and request changes if the condition is met.

Note that I've reworded some of these, but hopefully maintained their intent (mostly).
As I've worded them, I would support implementing them all, in the following order:
Highest priority: (1), (4), and (11) because they are difficult to do as an editor who isn't also a contributor with push permissions.
Next highest priority: (3) and (7) because they should be relatively easy and are super annoying to check.
Finally, everything else :rofl:

Hi, could we agree / define a possible action plan for this issue:
1, 4, 11 (upon merge)
3 and 7
The rest..
and not (include / create) any PDF file (mentioned in Pandapip1 list as number 9)

This issue should probably be split into many issues with different priorities.
I disagree. Making PDFs of web pages might still be useful.
I suggest the following:

All external links are converted to PDFs.
All the PDFs are put in a new folder, assets/references.
The links are changed to IPFS multihashes.
The Ethereum foundation runs an IPFS node that pins these files.

That's a good idea. Remove PDF actions from this one and create a new issue (low priority ??) for it. in this way we can identify a definitive action plan for this issue.


performance: Augment existing Indexer/Conduit metrics & logs

Make sure the metrics and logs available from Conduit are sufficient for measuring performance.
At a minimum, Conduit needs:

the total transaction count per block added to the log.
the # of transactions per type (axfer, pay, app call..)
the time it took to ingest a block.

Some of this is already available in Indexer.
(out of scope) the idea is that we will use some tool/script to analyze the logs. This is separate from the Prometheus data (general system performance), which uses the metrics endpoint (which reports averages).

AFAIK this is out of date.


logrotate: this only works for the default logdir path: /var/log/tcmu-runner*

There are 4 ways to set the logdir path, as from the README:

The priority of the logdir setting can be managed via following options:

1. Cli argument
    --tcmu_log_dir/-l LOG_DIR_PATH [Highest prio]

2. Environment variable
    export TCMU_LOGDIR="/var/log/mylogdir/"

3. Configuration file
    uncommenting and adjusting value of 'log_dir_path' at /etc/tcmu/tcmu.conf

4. Default logdir as hard coded i.e. '/var/log/' [Least prio]

Currently the logrotate will only work for the 4th, which is the default one.

For 1 - 3 the user has to explicitly set the log dir, so can't they just edit the logrorate file at the same time?

For 1 - 3 the user has to explicitly set the log dir, so can't they just edit the logrorate file at the same time?

If so, shouldn't we comment or mention it somewhere, in the README, or just one Warning message in the logs ?

Send a patch for both or either one.


What’s the process to on board? as you mentioned on #527

@yesbhautik if you're interested in contributing to Daytona, you can check out the list of Issues and our contributing guidelines.

cool


 Clearing a line with a lock block doesn't drop any lines above them. They're drawn as metal rectangles with bolts where the corners are.
Some lock blocks have numbered padlocks. These numbers can be decreased by making line clears adjacent to padlocks.

Combination locks require a line clear exceeding a certain combo
Cake locks require a line clear with an adjacent cake box
Snack locks require a line clear with an adjacent snack box
Regular locks require a line clear of any type

Lock blocks without padlocks can be used for narrower playfields. One level might reward the player for lowering a set of lock blocks to a set of pickups.

Maybe a scenario which adds more lines if you clear rows 3-7 -- but lines 0-2 have easy rewards filled with lock blocks.


🎁 [Feature Request]: The keyboard pops up for amount update should be a number only keyboard instead of a regular one

What is the feature you would like to see?
Currently, we are using a regular keyboard, yet for amount field it should have been a number keyboard.
Using the regular keyboard was intentional, since back then, number keyboard did not have . or , to enter decimal part.

we had this line commented out:
keyboardType: const TextInputType.numberWithOptions(
                        decimal: true, signed: true),

due to the below bug: https://stackoverflow.com/questions/58802772/textinputtype-numberwithoptions-doesnt-show-comma-or-dot


Token in libsql connection string

I was trying to connect to turso database from a go app
package main

import (
	"database/sql"
	"fmt"
	"net/http"
	"os"
)

func main() {
	port := os.Getenv("PORT")
	if port == "" {
		port = "8000"
	}

	fmt.Println("Listening on port", port)
	http.ListenAndServe(":"+port, nil)

	db, err := sql.Open("libsql", "libsql://udealz-wbrijesh.turso.io")

    	if err != nil {
    		fmt.Println("Error: ", err)
    		return
    	}

    	http.HandleFunc("/users", func(w http.ResponseWriter, r *http.Request) {
    		rows, err := db.Query("SELECT * FROM users")
    		if err != nil {
    			fmt.Fprintf(w, "Error: %v", err)
    			return
    		}
    		defer rows.Close()

    		for rows.Next() {
    			var id int
    			var name string
    			var email string
    			var password string
    			var created_at string
    			var updated_at string
    			err = rows.Scan(&id, &name, &email, &password, &created_at, &updated_at)
    			if err != nil {
    				fmt.Fprintf(w, "Error: %v", err)
    				return
    			}
    			fmt.Fprintf(w, "id: %v, name: %v, email: %v, password: %v, created_at: %v, updated_at: %v\n", id, name, email, password, created_at, updated_at)
    		}
    	})
}

and curl localhost:8000/users gives this error
Error: handshake error: Authentication failed: The JWT is invalid

example from turso's documentation shows that token is needed for connection
const client = createClient({
    url: "libsql://your-database.turso.io",
    authToken: "your-auth-token"
});

I am used to writing
postgres://{user}:{password}@{hostname}:{port}/{database-name}

being able to do
db, err := sql.Open("libsql", "libsql://udealz-wbrijesh.turso.io?token=xyz")

would be great

If you're using the golang client library, this should probably be posted in the client library repo, as that is responsible for taking your configuration and acting on it in such a way that sqld already recognizes.
Could you try the add the query string ?authToken=[token] or ?jwt=[token]?  The former is ideally what we want, but it might not be implemented yet.  The latter I'm pretty sure works today.


fix: tweak http.Transport settings

:tada: This PR is included in version 2.11.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


[API Counsel || Suggestion] About the auto Navigation file in Side-bar Explorer

[API Counsel | Suggestion] About the auto Navigation file in Side-bar Explorer
Specify the use situation.
add a function that set it auto navigation the file in explorer view or not auto-navigation.
and add a function that and jump to explorer view and navigate then active file when then focus is in editor.

Try this option "explorer.autoReveal": true

it works ,thank you :)~


Old support for basic form components

Question
Answer

Issue or Enhancement
Enhancement

License
MIT

What's in this PR?
Add support to get old() submitted value for basic form components:

Input
Textarea
Select
Select2

Since some inputs components may not support retrievement of the old submitted value (like the file input component), a php trait was defined to easy include the feature on the components that may support it.
Related issue: #889
Checklist

[x] Implement support on more components.
[x] Add test cases to cover the new Trait.
[x] I tested these changes.
[x] I have linked the related issues.

@resslinger I will cover old() support for advanced form components on the future. This one is ready to go...


Unable to Install

Following the directions, I am unable to install invoke-training.  Here is the log I created after running step 3 on the basic installation page .
install.log
Here is my system hardware info:
hwinfo.txt
Here is the info from InvokeAI "about" tab running on the same machine:
accelerate 0.30.1
compel 2.0.2
cuda 12.1
diffusers 0.27.2
numpy 1.26.4
opencv <IP_ADDRESS>
onnx 1.15.0
pillow 10.4.0
python 3.10.14
torch 2.2.2+cu121
torchvision 0.17.2
transformers 4.41.1
xformers 0.0.25.post1
Let me know any other information you need to troubleshoot. Please advise.

What version of Python are you using to install? ERROR: Ignored the following versions that require a different python version: <IP_ADDRESS> Requires-Python <3.11,>=3.9; --- suggests that you might not be using a valid python version for the install

3.12.5
On Wed, Oct 2, 2024 at 3:45 PM Kent Keirsey @.***>
wrote:

What version of Python are you using to install? ERROR: Ignored the
following versions that require a different python version: <IP_ADDRESS>
Requires-Python <3.11,>=3.9; --- suggests that you might not be using a
valid python version for the install
—
Reply to this email directly, view it on GitHub
https://github.com/invoke-ai/invoke-training/issues/147#issuecomment-2389545460,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADG7J2KVNGOYL6KX3EDKOQTZZREMLAVCNFSM6AAAAABPHTENTGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGOBZGU2DKNBWGA
.
You are receiving this because you authored the thread.Message ID:
@.***>


Fix event duration when start and time are in diffrent months

I don't get why the deployment is failing


Update 3. Imagined movement.ipynb

Left and right hemisphere for Imagined movement
Co-Authored-By: Marijn van Vliet<EMAIL_ADDRESS>

I was meaning to do that myself. Thanks @SaeedPourjafar for taking care of it for me!


Integration Test - Release - 2022/08/11 06:38:34

Auto create for integration test. IssueCommandFlow

Docs Build status updates of commit d8b2ac0:
:warning: Validation status: warnings

File
Status
Preview URL
Details

csidevdocs-public/IntegrationTest/BuildIntegrationTestFiles/ChangeSentToAuthor.md
:warning:Warning
View
Details

csidevdocs-public/IntegrationTest/BuildIntegrationTestFiles/ChangeSentToAuthor.md

Line 4, Column 1: [Warning: ms-prod-and-service - See documentation] Only one of the following attributes can exist: 'ms.prod', 'ms.service'. Use ms.prod for on-premise products, or ms.service for cloud services.
Line 4, Column 8: [Warning: duplicate-titles - See documentation] Title 'VS Code Authoring Extension' is duplicated in: 'Demo/demo.md(4,8), Demo/v-caxian/AuthorNotification.md(4,8), Demo/v-caxian/auto-merge.md(4,8), Demo/v-caxian/auto-merger.md(4,8), IntegrationTest/BuildIntegrationTestFiles/ChangeSentToAuthor.md(4,8)'. Titles must be unique within a docset.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Suggestions to improve packaging of mgitstatus

Hi @fboender,
First and foremost, thank you for mgitstatus. This tool saved me countless times from writing a quick and dirty for loop in bash, while having a nice output and expected options.
To share the awesomeness of this tool, I intend to package it for Debian. It should be available in the next stable release for users to install with apt install mgitstatus.
As such, I would like to suggest a couple of changes that could improve the easiness of packaging of mgitstatus. I'm happy to provide you with the corresponding PRs but I would like to discuss each point with you first.
Suggestions
1. Build system
I'd suggest to use a Makefile for the build system. Easy to use, and fairly easy to maintain for a small project, it would allow users to test and install with:
make #for the manpage
make test #for shellcheck
sudo make install

With the combination of DESTDIR and PREFIX, it would install by default in /usr/local and allow packaging tools to install in the correct tree.
This would replace build.sla and install.sh
2. Generated files
In Debian, generated files are quite tricky to deal within the source. The simple explanation is that if one cannot reproduce the file bit by bit from the source, it means that the generated files has no source and therefor is not open source.
The issue in mgitstatus is for the manpage mgitstatus.1. That file is obviously generated from mgitstatus.1.md but depending on the system you generate it from, the output will change (for instance, just from the pandoc version).
To deal with that, mgitstatus.1 would need to be removed and generated, at build time, by users (using make).
Now, I know that this suggestion can put off some maintainers due to the additional build dependency (here, pandoc), so I don't have my hopes up. We have ways to deal with that in Debian so it's really up to you whether you want to address this issue or not.
3. Release authentication
I would suggest to make available a cryptographic signature (using GPG keys) of your release tarball. By publishing the signature along side the source tarballs, you ensure that any modification by a third party will be detected by end-users.

All of those are suggestions, and as I've said, I'll be happy to provide PRs if
you are interested by those evolution.
If you have any questions regarding the packaging of mgitstatus for Debian do not hesitate to ask.
Looking forward to your comments,

Hey lyknode!

To share the awesomeness of this tool, I intend to package it for Debian.

Ah, that's fantastic! Thank you so much for your effort.

I'd suggest to use a Makefile for the build system

I personally really dislike Makefiles, but I understand that's it's much more standard. Given that this is such a small project, I can totally live with getting rid of the build.sla and install.sh files and replacing them with a single Makefile. I'd appreciate a pull request for this, as I always run into problems trying to write them ;-)

To deal with that, mgitstatus.1 would need to be removed and generated, at build time, by users (using make).

I used to write my manpages directly in Troff. The pandoc solution is just a slightly more convenient method for me. If that interferes, I suggest I just port the manpage to plain old Troff, and we put that in the repo as is. We can then completely get rid of the dependency on Pandoc. Is that an idea?

I would suggest to make available a cryptographic signature (using GPG keys) of your release tarball.

That would basically be just generating the release tarball and then generating a detached signature with my private key and uploading both files? I'm going to have to give this some more thought. A release right now is just a press of a button in Github. I want to keep the overhead here as low as possible. Would it add a lot to the security of the project? Right now the only official place to get releases is from the Github releases page, which is already tied to my account.

The simple explanation is that if one cannot reproduce the file bit by bit from the source, it means that the generated files has no source and therefor is not open source.

That's not true. If it isn't the same bit by bit it isn't reproduceable but still open source.

I would suggest to make available a cryptographic signature (using GPG keys) of your release tarball. By publishing the signature along side the source tarballs, you ensure that any modification by a third party will be detected by end-users.

 A lot of other packages don't have signed archives either and they where accepted. Also the current state of gpg is not recommendable to anyone not tech savy.

I used to write my manpages directly in Troff. The pandoc solution is just a slightly more convenient method for me. If that interferes, I suggest I just port the manpage to plain old Troff, and we put that in the repo as is. We can then completely get rid of the dependency on Pandoc. Is that an idea?

That should work.

I created #41 which adds a Makefile that represents the current scripts.
If you need help updating it to troff or have any other questions please ask them.

@fboender,

To deal with that, mgitstatus.1 would need to be removed and generated, at build time, by users (using make).

I used to write my manpages directly in Troff. The pandoc solution is just a slightly more convenient method for me. If that interferes, I suggest I just port the manpage to plain old Troff, and we put that in the repo as is. We can then completely get rid of the dependency on Pandoc. Is that an idea?

It definitely is a possibility but I would take into account the fact that markdown is way easier for people to read and contribute to as opposed to the Troff format.
Given that pandoc is only a build dependency and final user will not need it, I'd say it fine to keep it and only have the markdown version in the sources.

I would suggest to make available a cryptographic signature (using GPG keys) of your release tarball.

That would basically be just generating the release tarball and then generating a detached signature with my private key and uploading both files? I'm going to have to give this some more thought. A release right now is just a press of a button in Github. I want to keep the overhead here as low as possible. Would it add a lot to the security of the project? Right now the only official place to get releases is from the Github releases page, which is already tied to my account.

Yes, that consist in adding a detached signature of the tarballs next to them.
Well, there have been cases of malicious code added to the release in the opensource community. I can recall at least phpmyadmin where one of sourceforge mirror got compromised (adding a nasty eval $_POST...). I'm not aware of any breach or corruption on github but no system/platform is perfect. So does the risk exists? yes. Is it likely to happen to a small project like mgitstatus? no.
That being said, it looks like you already own a GPG key and creating the signature is one command away :) It's up to you.
@SuperSandro2000,

The simple explanation is that if one cannot reproduce the file bit by bit from the source, it means that the generated files has no source and therefor is not open source.

That's not true. If it isn't the same bit by bit it isn't reproduceable but still open source.

That actually depends on the context, when building, yes, generated files can be unreproducible but still be open-source (because you generated from the source), but when distributing the source it's actually another matter. How can you be sure that a file comes from an available source if you can't build it yourself. I totally agree that in the case of mgitstatus, this is technicalities but it already been discussed in Debian and generally package maintainers just get rid of the generated files to avoid the package being rejected.

I would suggest to make available a cryptographic signature (using GPG keys) of your release tarball. By publishing the signature along side the source tarballs, you ensure that any modification by a third party will be detected by end-users.

 A lot of other packages don't have signed archives either and they where accepted. Also the current state of gpg is not recommendable to anyone not tech savy.

That is true, packages doesn't get rejected for that reason. It's just a nice to have additional security. Especially since distributions ensure that packages (or they metadata) are signed, it's even better is the trust chain can go up to the upstream sources.

@lyknode

Given that pandoc is only a build dependency and final user will not need it, I'd say it fine to keep it and only have the markdown version in the sources.

Then I'd prefer to keep the Markdown version. Mostly because it can be read straight from Github's UI.

That being said, it looks like you already own a GPG key and creating the signature is one command away :) It's up to you

The benefits outweigh the effort in this case, so I'll set something up in the near future. I do have to check my key hygiene a bit. I'm 100% certain I've never leaked my priv key, but should probably do something with subkeys or something.

it's even better is the trust chain can go up to the upstream sources.

Agreed.
@SuperSandro2000

I created #41 which adds a Makefile that represents the current scripts.

Nice, thanks! If you could add the .PHONY tag and update the merge request, I'll merge it asap.

FYI, mgitstatus has just been accepted into debian today.
https://tracker.debian.org/pkg/mgitstatus
From Debian 11 (bullseye) and forward, people will be able to:
apt install mgitstatus


feat: #338 add export of additional keywords

Status
READY
Description
Adds additional keywords export in generated models e.g. minimum / maximum, minLength / maxLength.
These could be then used to for validation logic. One could argue that validation should not be part of generated code since it is not exactly related to data fetching / updating logic and it may be better to separate client side validation from data layer, or even use something like https://github.com/igtm/openapi-yup-generator.
But I see it as a very nice improvement in development experience and also do not see big harm in exporting additional keywords as conts. We are not adding restrictions on top of those constants, like wrapping them in Yup schemas or other validation lib, leaving it completely up to client to decide how to use const, or ignore it at all.
I was also thinking that maybe it would be nice to add setting to control const generation?
Example:
    Labradoodle:
      type: object
      required: ['cuteness']
      properties:
        cuteness:
          type: integer
          minimum: 1
          maximum: 128

Generated model:
export interface Labradoodle {
  cuteness: number;
  breed: LabradoodleBreed;
}
export const LabradoodleCutenessMinimum = 1;
export const LabradoodleCutenessMaximum = 128;

Client side validation:
const schema = yup.object().shape({
  cuteness: yup
    .number()
    .required()
    .min(LabradoodleCutenessMinimum)
    .max(LabradoodleCutenessMaximum)
})

After this BE can control the client side validation and there is no need to keep duplicated and manually hardcoded value anymore.
Todos

[x] Tests - not sure I understood completely how they work, but I added some keywords to basic yaml and saw it in generated
[ ] Documentation - want to see if that even makes sense @anymaniax  before adding this
[ ] Changelog Entry (unreleased)

Steps to Test or Reproduce
Outline the steps to test or reproduce the PR here.
> git pull --prune
> git checkout <branch>
> grunt jasmine

@anymaniax Can you please check this when you have time 🙏

Hello @aodinok, thanks for the pull request. I wouldn't add this by default. It's really specific. What do you think about creating a new client for that? Maybe a yup or Zod client?

#785

Closing it favor of https://github.com/anymaniax/orval/pull/785