task configure not working on devcontainer setup

⬢ [Docker] ❯ task configure
Any conflicting files in the kubernetes directory will be overwritten... continue? [y/N]: y
task: `test -d /workspaces/cluster/.venv` failed
task: Failed to run task "configure": task: precondition not met

There's no .venv directory in the devcontainer setup. Maybe the task workstation:venv command should be used prior too?

For whatever reason looks like that didn't run, maybe due to you not having this fix.
https://github.com/onedr0p/cluster-template/commit/cabfb1b9ea6568b8814bf19765b98961d9360657

oh found out if you open the devcontainer CI this doesn't run maybe he was like me and opened the CI verseion because CI loos like Cl and could mean Cloudflare


enable icon_path (for windows builds)

Because IconPath was missing in CommandArguments, this feature could not be used

Wow sorry i missed this. Reviewing now

LGTM.

@jheuel  Actually, I am going to consider reverting, because it is not currently cross platform.
Since commands.go is used in all builds, it would be bad to have it not utilized crossplatform

gotta look at the thrust source code and confirm.


Document or automate the generation of a NEWS file at release

We might use something like Newsbuilder or we might simply document a process for selecting suitable entries for the NEWS file at release time.
See:

https://github.com/ClusterHQ/flocker/pull/489#issuecomment-51586269
https://github.com/twisted/newsbuilder
https://twistedmatrix.com/trac/wiki/ReviewProcess#Newsfiles

We are moving our development planning to JIRA. This issue is now being tracked at https://clusterhq.atlassian.net/browse/FLOC-523. You are welcome to file additional issues in GitHub if that's easier for you.


ki --watch #macros

The --watch option does not work for ki macro.  And the --included code doesn't get watched at all.  I ended up writing a little gulpfile.js, so I'd be able to play with macros.  I imagine someone may write a gulp-ki plugin some day...  Though this is just a few lines good-enough copy/paste fix that does the job.

I've fixed the ki command to also watch for changes in macros in the source file as well as included files. Since changing macros is more expensive than compiling, sweet is reinvoked only if macros actually change in their content.


Minion Dmg/ias while affected by a herald does not work

Hi,
I have a Harold of Agony and some items with
“Minions have XX% increased Attack and Cast Speed while you are affected by a Herald”
or
“Minions have XX% increased Damage while you are affected by a Herald”
both do not increase my DPS.
Harold of Agony is active in my skills tab, so PoB should be able to calculate correctly.
Can this be fixed, or should I even try to fix it myself?
(I am a professional software developer, but not familiar with this project and the coding language)

I can confirm this issue.   option in the configurations, or even the assumption that you are if you have a herald gem active.
In my particular situation I am using Herald of Agony, and things like the Lone Messenger unique small cluster, or any medium "while affected by a herald) cluster has no increase to dps.  The tree view does show the damage components, but red (aka: ignored) which means they are at least represented.
Here are some other issues I've noticed as well...

+1 to Level of all Chaos Spell Skill gems on an amulet does not apply to Herald of Agony gem (it should).
The "Are your minions always on Full Life" option in the Configuration section doesn't actually do anything.
damage represented by "# of Virulence Stacks" is hard coded to cap at 40, even though you can get 45-50+ depending on multiple medium cluster jewels.

What it seems like to me is that when cluster jewels were added, a lot of these details were not flushed out.  Hopefully this is something that eventually gets some attention, otherwise PoB will just be mostly useless for certain builds.


Prefer the first-party WHATWG URL implementation when available.

Fixes #68
This means that only Node 7+ will support the searchParams property of URL.
(I'm not aware of any other differences.)

This looks like an easy win! #shipit Thank you @jeffposnick!

@jeffposnick this is published to @1.7.2

Thanks, @zackargyle!


WhatsApp (beta) Multi Device, the phone doesn't need to be connected to the internet anymore

https://faq.whatsapp.com/general/download-and-installation/about-multi-device-beta/?lang=en
good news, but ...

The biggest But in the history..... Will that mean, user can turn off the mobile?
Will that mean, we need to update the season method.
It is great news, since your chatbot bot will stay connected regardless the mobile availability... Like telegram...
BUT.......

i tried the new web whatsapp beta .
u can turn off the mobile, after connected to whatsapp the browser need to download some data first and  lots of stuff changed like enckey, mackey is gone. now privkey, publickey.

i tried the new web whatsapp beta .
u can turn off the mobile, after connected to whatsapp the browser need to download some data first and lots of stuff changed like enckey, mackey is gone. now privkey, publickey.

I've tried it too. For websocket change to wss://web.whatsapp.com/ws/chat. And all messages sent and received use binary messages.

Eu tentei o novo beta do WhatsApp da web.
vc pode desligar o celular, depois de conectado ao whatsapp o navegador precisa baixar alguns dados primeiro e muitas coisas mudaram como enckey, mackey sumiu. agora privkey, publickey.

Eu também tentei. Para websocket, mude para wss: //web.whatsapp.com/ws/chat. E todas as mensagens enviadas e recebidas usam mensagens binárias.

https://github.com/sigalor/whatsapp-web-multi-device-reveng

Eu tentei o novo beta do WhatsApp da web.
vc pode desligar o celular, depois de conectado ao whatsapp o navegador precisa baixar alguns dados primeiro e muitas coisas mudaram como enckey, mackey sumiu. agora privkey, publickey.

Eu também tentei. Para websocket, mude para wss: //web.whatsapp.com/ws/chat. E todas as mensagens enviadas e recebidas usam mensagens binárias.

https://github.com/sigalor/whatsapp-web-multi-device-reveng

https://discord.gg/DSjYvwMB

@Romerito007

I think it is my account ...

@Romerito007

Try this https://discord.gg/ED6NCzhaCE

go-whatsapp
@ramacatur
will the library support it?

I believe, but it needs a loooooooot of work.
Sessions changed
All messages encrypted
Json changes
The question, if we ask clients no to update his WhatsApp, will this
library continue to work?
Honestly it is great update, but we need to refactoring everything.
Regard
On Wed, Jul 21, 2021, 11:02 PM Leonardo Neto @.***>
wrote:

go-whatsapp
@ramacatur https://github.com/ramacatur
will the library support it?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/Rhymen/go-whatsapp/issues/598#issuecomment-884461164,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABDLT27MBI3UX3WOUWTJNZTTY4RUFANCNFSM5ASLEAWA
.

I also have this doubt @beshoo

this lib any problem: https://github.com/adiwajshing/Baileys/issues/605
we're screwed people!

Am not sure but i believe that the best is to use headless browser.... This
way you are dealing with interface which is more easy than reverse
engineering.
But chrome is a huge problem to the server... Oh my god.....
On Wed, Jul 21, 2021, 11:34 PM Leonardo Neto @.***>
wrote:

this lib any problem: adiwajshing/Baileys#605
https://github.com/adiwajshing/Baileys/issues/605
we're screwed people!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Rhymen/go-whatsapp/issues/598#issuecomment-884481246,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABDLT2YS4DW4A3JCYHAYMXDTY4VNNANCNFSM5ASLEAWA
.

@beshoo On your system you can choose to use headless or go-whatsapp mode? I'm going to have to start implementing this on mine too. Which headless lib would you recommend?

Well, you needed to give it a try, search github.com
Am not sure how stable it is. But am sure it is more easy than the reverse
engineering one.
The problem with the headless is one thing.

It is use css and javascript to control interface.
On Thu, Jul 22, 2021, 1:48 AM Leonardo Neto @.***>
wrote:

@beshoo https://github.com/beshoo On your system you can choose to use
headless or go-whatsapp mode? I'm going to have to start implementing this
on mine too. Which headless lib would you recommend?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Rhymen/go-whatsapp/issues/598#issuecomment-884546597,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABDLT26LHRRBMNCYABU6MBLTY5FEBANCNFSM5ASLEAWA
.

@beshoo  I found this one too: https://github.com/orkestral/venom
headless.
Do you use go-whatsapp professionally? will it harm you in any way?

My service https://Momentreply.com based on go-whatsapp....
And yes i believe we are going to ask user to stay with current versions of
whatsapp.
Till we figure out how to get things up and running.
On Thu, Jul 22, 2021, 2:10 AM Leonardo Neto @.***>
wrote:

@beshoo https://github.com/beshoo I found this one too:
https://github.com/orkestral/venom
headless.
Do you use go-whatsapp professionally? will it harm you in any way?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Rhymen/go-whatsapp/issues/598#issuecomment-884555219,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABDLT2ZSNQQHSSVPT3M7ECTTY5HXJANCNFSM5ASLEAWA
.

@beshoo Perfect very good!
I will do that too. And already porting the code to work headless.

https://github.com/orkestral/venom
This has a lot of bugs, be careful...
On Thu, Jul 22, 2021, 3:22 AM Leonardo Neto @.***>
wrote:

@beshoo https://github.com/beshoo Perfect very good!
I will do that too. And already porting the code to work headless.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Rhymen/go-whatsapp/issues/598#issuecomment-884579918,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABDLT275JFAGLLSSN56NRDLTY5QD3ANCNFSM5ASLEAWA
.

Yes, this version has a lot of bugs, @beshoo  how can I talk to you? send me an email<EMAIL_ADDRESS>

From what I noticed even the headless mode is struggling to make it work.

whatsapp-web.js is the best for headless right now because of the simple object-oriented approach.
https://github.com/pedroslopez/whatsapp-web.js

The biggest But in the history..... Will that mean, user can turn off the mobile?
Will that mean, we need to update the season method.
It is great news, since your chatbot bot will stay connected regardless the mobile availability... Like telegram...
BUT.......

I mantain a similar libary, but for Java and Kotlin. I think I've got most of the changes figured out. When and if I'll make it, if you want I can help migrate this library as well

The biggest But in the history..... Will that mean, user can turn off the mobile?
Will that mean, we need to update the season method.
It is great news, since your chatbot bot will stay connected regardless the mobile availability... Like telegram...
BUT.......

I mantain a similar libary, but for Java and Kotlin. I think I've got most of the changes figured out. When and if I'll make it if you want I can help migrate this library as well

Yes please share it now if you can, a lot of users trying to know the howto, if you share it now, you will give us a big favor,

The biggest But in the history..... Will that mean, user can turn off the mobile?
Will that mean, we need to update the season method.
It is great news, since your chatbot bot will stay connected regardless the mobile availability... Like telegram...
BUT.......

I mantain a similar libary, but for Java and Kotlin. I think I've got most of the changes figured out. When and if I'll make it if you want I can help migrate this library as well

Yes please share it now if you can, a lot of users trying to know the howto, if you share it now, you will give us a big favor,

@pokearaujo  https://github.com/pokearaujo/multidevice

@Rhymen Have you seen this yet?

Good Morning!
Has anyone found any solution of what to do about whatsapp beta?
I know that a lot has changed, does anyone already know what the changes are for us to implement?

Good Morning!
Has anyone found any solution of what to do about whatsapp beta?
I know that a lot has changed, does anyone already know what the changes are for us to implement?

You can see this repo
https://github.com/pokearaujo/multidevice

I am trying to write in go by looking at the repository . But everything is minified there. It would be nice to write an algorithm, as they did in the previous version of whatsapp. While I manage to install handshake with whatsapp, I get some keys and it is not clear what to do with them further.

I have used the https://github.com/orkestral/venom for a while and it also cannot deal with multi-devices including they last version.
The only one that seems to work for now  is https://github.com/pokearaujo/multidevice.
However if you connect your go-whatsapp on a whatsapp without WMD it stills working pretty well. Even whatsapp doesn't recommend to use without WMD. (it's beta yet) https://faq.whatsapp.com/general/download-and-installation/about-multi-device-beta/?lang=en
Nevertheless this new feature will be appreciated for all go-whatsapp devs. I will checkout the pokearaujo/multidevice repo. May I could contribute with some efforts to implement it in the  amazing and faster lib (go-whatsapp).

today im starting a new repo for this, the pokearaujo uses a proto

today im starting a new repo for this, the pokearaujo uses a proto

Which would be? could you indicate?

today im starting a new repo for this, the pokearaujo uses a proto

Which would be? could you indicate?

https://github.com/Valdenirmezadri/go-whatsapp-multi-device

now, it's keeping the connection, then generating qrcode, and then I'll upload the lib for anyone who wants to add functions to handle messages

The allready handlers is not working?
Thanks for the update....
On Thu, Sep 30, 2021, 10:12 PM Valdenir Luíz Mezadri Junior <
@.***> wrote:

[image: image]
https://user-images.githubusercontent.com/4634624/135515687-07822ed3-e064-432d-b994-999ac4744223.png
now, it's keeping the connection, then generating qrcode, and then I'll
upload the lib for anyone who wants to add functions to handle messages
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Rhymen/go-whatsapp/issues/598#issuecomment-931592921,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABDLT25LCC5WWJX5IMGL3DTUESZDHANCNFSM5ASLEAWA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

@tulir is doing an amazing job on GO for (beta)MD  whatsmeow

Baileys started to support multidevice.
Are there plans to add support to this library?


triggerMap iteration is broken when Array.prototype is polluted

Some advertising scripts pollute Array.prototype (e.g. Array.prototype.clear), which is iterated by micromodal in these two locations and ends up attempting to iterate a function, leading to a TypeError.
https://github.com/ghosh/Micromodal/blob/master/lib/src/index.js#L262-L267
https://github.com/ghosh/Micromodal/blob/master/lib/src/index.js#L239
Micromodal should use Object.keys(triggerMap).forEach() in these two locations to prevent this issue from happening.
~I'll submit a PR fixing this soon.~
Fix: https://github.com/ghosh/Micromodal/pull/270
Screenshot of the issue, in the middle of a key = "clear" iteration:

Introduced babel to transpile code. This should have been improved in the latest version. Thanks for opening an issue @eligrey

@ghosh This issue is not fixed in micromodal 0.4.6. I am still experiencing this issue when I disable my mitigations for this bug:

You need to iterate over triggerMap using Object.keys(triggerMap).forEach().
I ended up having to use this code to mitigate around this bug in the meantime:
// Temporarily suppress Array.prototype extensions for Micromodal:
const arrayExtensions = new Map<string, any>();
for (const property in []) {
  arrayExtensions.set(property, Array.prototype[property]);
  delete Array.prototype[property];
}
MicroModal.init(modalConfig);
for (const [property, extension] of arrayExtensions) {
  Array.prototype[property as any] = extension;
  arrayExtensions.delete(property);
}


Default to packed for repeated primitives in proto3.

Fixes #704.
Fixes #706.
I wasn't sure how to add tests for either.
For #704, I didn't see a way to distinguish which syntax was being used in a test.
For #706, I didn't see a way to have an invalid proto in a test (the parser fails before you get to the test).
I'm not sure I handled the error correctly, the output looks like:
--- stderr
codegen failed: [packed = true] can only be specified for repeated primitive fields

As opposed to other errors, that have multiple layers:
--- stderr
codegen failed: parse and typecheck

Caused by:
    0: using pure parser
    1: error in `api.proto`: object is not found by path `tring` in scope `.api.Example`
    2: object is not found by path `tring` in scope `.api.Example`

There's also no line/column number, but I'm not sure if that's expected.

Merged. Thanks!

I wasn't sure how to add tests for either.

Add a test to test crate which adds a proto3 message with repeated primitive, and checks that serialized as packed.
However, given that the crate is in low maintenance mode, I accept this as is.

I didn't see a way to distinguish which syntax was being used in a test.

Test codegen can be modified to emit this information. Or proto version can be obtained from reflective API.

I didn't see a way to have an invalid proto in a test

I think the project does not have a lot of tests for errors.

There's also no line/column number, but I'm not sure if that's expected.

When the crate was implemented, I did not know how to do errors properly. Now I know, but as I said, crate is in low maintenance.

Wait, I'm reverting this commit. I believe it is implemented incorrectly. I suspect the problem is in pure rust proto parser. I suspect protoc-based parser populates this field, but pure parser is not:

field.field.proto().options.get_or_default().packed()

Also, let's add a test.

Thanks for the review! I've added a test. I don't follow what you're saying about the pure parser not setting the packed field. I think the pure parser handles options here, and the existing tests show that packed=true/packed=false work for both protoc and pure.
Was there a bug you saw when this merged?

I don't follow what you're saying about the pure parser not setting the packed field

I suspect protoc parser already sets this field, and pure parser does not.
https://github.com/protocolbuffers/protobuf/blob/94ab406bcf048146ac494335e3b8ad9ef22fdabb/src/google/protobuf/descriptor.proto#L661
So my hypothesis is, we need to patch pure parser instead of patching codegen.

$ protoc test-crates/protobuf-codegen-protoc-test/src/common/v2/test_repeated_packed_pb.proto -I test-crates/protobuf-codegen-protoc-test/src/common/v2/ -o /tmp/descriptor
$ protoc --decode=google.protobuf.FileDescriptorSet google-protobuf-all-protos/protobuf/protobuf-git/src/google/protobuf/descriptor.proto  -I google-protobuf-all-protos/protobuf/protobuf-git/src/google/protobuf  < /tmp/descriptor > /tmp/descriptor.txt

descriptor.txt
That looks to me like protoc is not setting the field by default, which makes sense, since the field is optional:
  message_type {
    name: "TestIssue281"
    field {
      name: "values"
      number: 1
      label: LABEL_REPEATED
      type: TYPE_FIXED32
      options {
        packed: true
      }
      json_name: "values"
    }
  }
  message_type {
    name: "TestPackedDefault"
    field {
      name: "varints"
      number: 1
      label: LABEL_REPEATED
      type: TYPE_UINT32
      json_name: "varints"
    }
  }

So I think both parsers treat packed as optional, and the codegen needs to handle the field not being set.


Removed "env" from "system-docker inspect docker env"

Fix for #1258

LGTM, thanks @sols1!
@SvenDowideit

LGTM


[Auto-generated] Update dependencies

Update dependencies
Automatically created PR from ci/dependabot-updates.
For more information see the "Dependabot updates" workflow.
To-do

[ ] Check that the diff is sensible, and that tests and builds pass with the new dependency versions.
[ ] Make sure that the PR is squash merged, with a sensible commit message.

Codecov Report
Base: 80.65% // Head: 80.65% // No change to project coverage :thumbsup:

Coverage data is based on head (b865064) compared to base (0e14144).
Patch has no changes to coverable lines.

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #189   +/-   ##
=======================================
  Coverage   80.65%   80.65%
=======================================
  Files          38       38
  Lines        1096     1096
=======================================
  Hits          884      884
  Misses        212      212

Flag
Coverage Δ

linux
80.56% <ø> (ø)

linux-extra_libs
80.56% <ø> (ø)

windows
80.65% <ø> (ø)

windows-extra_libs
?

Flags with carried forward coverage won't be shown. Click here to find out more.
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


JMS serializer 1.8.0 is incompatible

New release of JMS serializer breaks phpDocumentor2 (in composer.json set ">=0.12") in any command:
`$ phpdoc --version
Fatal error: Uncaught Doctrine\Common\Annotations\AnnotationException: [Semantical Error] The annotation "@JMS\Serializer\Annotation\Type" in property phpDocumentor\Configuration::$title does not exist, or could not be auto-loaded. in /vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php on line 54
Doctrine\Common\Annotations\AnnotationException: [Semantical Error] The annotation "@JMS\Serializer\Annotation\Type" in property phpDocumentor\Configuration::$title does not exist, or could not be auto-loaded. in /vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php on line 54
Call Stack:
0.0002     353352   1. {main}() /vendor/phpdocumentor/phpdocumentor/bin/phpdoc:0
0.0007     369352   2. phpDocumentor\Bootstrap->initialize() /vendor/phpdocumentor/phpdocumentor/bin/phpdoc:23
0.0091    1178944   3. phpDocumentor\Application->__construct() /vendor/phpdocumentor/phpdocumentor/src/phpDocumentor/Bootstrap.php:62
0.0131    1218312   4. phpDocumentor\Application->addLogging() /vendor/phpdocumentor/phpdocumentor/src/phpDocumentor/Application.php:67
0.0143    1365616   5. Pimple->offsetGet() /vendor/phpdocumentor/phpdocumentor/src/phpDocumentor/Application.php:254
0.0143    1365616   6. Pimple::{closure:/vendor/pimple/pimple/lib/Pimple.php:122-130}() /vendor/pimple/pimple/lib/Pimple.php:83
0.0143    1365640   7. phpDocumentor\Configuration\ServiceProvider->phpDocumentor\Configuration{closure}() /vendor/pimple/pimple/lib/Pimple.php:126
0.0373    2677368   8. phpDocumentor\Configuration\Loader->load() /vendor/phpdocumentor/phpdocumentor/src/phpDocumentor/Configuration/ServiceProvider.php:82
0.0399    2825960   9. phpDocumentor\Configuration\Loader->createConfigurationObject() /vendor/phpdocumentor/phpdocumentor/src/phpDocumentor/Configuration/Loader.php:62
0.0399    2826984  10. JMS\Serializer\Serializer->deserialize() /vendor/phpdocumentor/phpdocumentor/src/phpDocumentor/Configuration/Loader.php:112
0.0413    2896072  11. PhpOption\Some->map() /vendor/jms/serializer/src/Serializer.php:131
0.0413    2896128  12. call_user_func:{/vendor/phpoption/phpoption/src/PhpOption/Some.php:89}() /vendor/phpoption/phpoption/src/PhpOption/Some.php:89
0.0413    2896128  13. JMS\Serializer\Serializer->JMS\Serializer{closure}() /vendor/phpoption/phpoption/src/PhpOption/Some.php:89
0.0419    2897576  14. JMS\Serializer\Serializer->visit() /vendor/jms/serializer/src/Serializer.php:128
0.0419    2898376  15. JMS\Serializer\GraphNavigator->accept() /vendor/jms/serializer/src/Serializer.php:193
0.0420    2898416  16. Metadata\MetadataFactory->getMetadataForClass() /vendor/jms/serializer/src/GraphNavigator.php:211
0.0424    2976552  17. JMS\Serializer\Metadata\Driver\AnnotationDriver->loadMetadataForClass() /vendor/jms/metadata/src/Metadata/MetadataFactory.php:103
0.0473    3099456  18. Doctrine\Common\Annotations\AnnotationReader->getPropertyAnnotations() /vendor/jms/serializer/src/Metadata/Driver/AnnotationDriver.php:152
0.0473    3100024  19. Doctrine\Common\Annotations\DocParser->parse() /vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php:250
0.0474    3105224  20. Doctrine\Common\Annotations\DocParser->Annotations() /vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php:354
0.0475    3105280  21. Doctrine\Common\Annotations\DocParser->Annotation() /vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php:663
`

We're experiencing this as well:
https://travis-ci.org/neverwoods/validformbuilder/builds/252817460

Same here... is there a workaround?
https://travis-ci.org/redaxmedia/redaxscript-api-sync/builds/252903192

I made a fork that defines version 1.7.* for jms/serializer here:
validformbuilder/phpdocumentor2
I recommend switching back to the original repo once they fixed it.

This email was sent from my iPhone and therefore subject to typos and other inaccuracies.

On 12 Jul 2017, at 19:30, redaxmedia<EMAIL_ADDRESS>wrote:
Same here... is there a workaround?
https://travis-ci.org/redaxmedia/redaxscript-api-sync/builds/252903192
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

Fixed in https://github.com/phpDocumentor/phpDocumentor2/commit/a98fd26da9950f19ec4dc987bac25b983e65ff47

My PC has php-7.3.0, phpDocumentor-2.9.0, jms / serializer-3.0.1, but I have the same problem.

Any valid solution so far as I am expiericing the same issue? thank you

@hussnainsheikh If you use v2, you can try https://github.com/phpDocumentor/phpDocumentor2/issues/1868#issuecomment-451728826

@nelson6e65 I have followed the above step but unfortunately phpdoc command not found.

I am running it on docker.

@nelson6e65 I have followed the above step but unfortunately phpdoc command not found.
I am running it on docker.

First, running as root is not a good idea. 😅
Second, mmm... well, maybe that's the error: you ar using another user. Composer global uses the current user for installing packages. Login as usual user ~or... (not recommended) install it in the root~.

Please create a new issue for this problem.
I think there is something wrong with the docker image. I never tried it myself, but I could have a look to rebuild is so things are working as expected.

Composer

Assume I used composer global [...]

(...)

How to fix
I had to:

composer global remove phpdocumentor/phpdocumentor
composer global require jms/serializer:1.7.* (as pointer @rvanbaalen )
composer global require phpdocumentor/phpdocumentor:^2.9

Works for me without global


Plugin does not work for monorepo

Description
There is a Gatsby Kontent packages monorepo containing a development site + a couple of examples. As a part of https://github.com/Kentico/kontent-gatsby-packages/issues/202 I wanted to use this plugin instead deprecated Gatsby Cache plugin.
Steps to reproduce

Fork the repository
Register the repo to Netlify with its config (you can substitute dsg-ssr, with navigation/relationships/resolution)

Build command yarn build:dsg-ssr
Publish directory /examples/dsg-ssr/public

Install this plugin

The build failed on (error from example dsg-ssr, but the same if on all examples):
12:07:02 PM: ────────────────────────────────────────────────────────────────
12:07:02 PM:   Dependencies installation error
12:07:02 PM: ────────────────────────────────────────────────────────────────
12:07:02 PM:
12:07:02 PM:   Error message
12:07:02 PM:   A Netlify Function failed to require one of its dependencies.
12:07:02 PM:   Please make sure it is present in the site's top-level "package.json".

12:07:02 PM:   In file "/opt/build/repo/.netlify/functions-internal/__api/__api.js"
12:07:02 PM:   Cannot find module '../../../.cache/functions/manifest.json' from '/opt/build/repo/.netlify/functions-internal/__api'
12:07:02 PM:
12:07:02 PM:   Resolved config
12:07:02 PM:   build:
12:07:02 PM:     command: yarn build:dsg-ssr
12:07:02 PM:     commandOrigin: ui
12:07:02 PM:     environment:
12:07:02 PM:       - NODE_VERSION
12:07:02 PM:     publish: /opt/build/repo/examples/dsg-ssr/public
12:07:02 PM:     publishOrigin: ui
12:07:02 PM:   functions:
12:07:02 PM:     __api:
12:07:02 PM:       external_node_modules:
12:07:02 PM:         - msgpackr-extract
12:07:02 PM:       included_files:
12:07:02 PM:         - examples/dsg-ssr/.cache/functions/**

Expected behavior
Build does not fail and DSG and SSG work.
Environment
I might be able to share the netlify project, if you need.

Current status without netlify plugin is this one: https://github.com/netlify/gatsby-plugin-netlify/issues/67
-> https://kontent-gatsby-example-dsg-ssr.netlify.app/

Thanks @Simply007 . I have a decent idea what's causing this, and hopefully can fix it later this week.

Thanks @Simply007 . I have a decent idea what's causing this, and hopefully can fix it later this week.

That would be great! :) If you need to test out something, let me know.

Thx for taking a look at the issue @ascorbic! What are the plans for releasing the new version?


fix: encode package in deps check

Composed package names including namespaces are not properly encoded to the deps.dev url
e.g. gorm.io/datatypes should be encoded like:
https://api.deps.dev/v3/systems/go/packages/gorm.io%2Fdatatypes/versions/v1.0.5:dependencies
Backport of https://github.com/nv-morpheus/agent-morpheus-RH/pull/22

Thanks for catching and fixing this!


Report bound port correctly

When binding to port 0 beanstalk correctly binds to a random port but doesn't report which port it bound to, reporting 0 instead. This patch fixes that.

Nice, thanks!


Adding noise to the autopilot control in CARLA 0.9.X

I would like to perturb the autopilot control with some noise (both for steering and for throttle).
How would that be possible? Is that possible to perturb with different noise for each actor with autopilot set to True?
I know it was possible in CARLA 0.8.X (see the issue #780 ) and I couldn't find how to make it with the new API.

@marintoro
You can do it in the world on_tick() callback:
control = vehicle.get_control()
control.throttle += random.uniform(-0.1, 0.1)
control.steer += random.uniform(-0.1, 0.1)
vehicle.apply_control()

Note that: VehicleInputPriority.h
 13 UENUM(BlueprintType)
 14 enum class EVehicleInputPriority : uint8
 15 {
 16   INVALID = 0u  UMETA(Hidden),
 17
 18   Lowest        UMETA(DisplayName = "Lowest Priority", ToolTip = "Use for debugging purposes only"),
 19   Relaxation    UMETA(DisplayName = "Control Relaxation Input", ToolTip = "Control relaxation when no other input is provided (non-sticky control)"),
 20   Autopilot     UMETA(DisplayName = "Autopilot Input", ToolTip = "Input provided by the built-in autopilot"),
 21   User          UMETA(DisplayName = "User Input", ToolTip = "Input provided by an user playing in the simulator"),
 22   Client        UMETA(DisplayName = "Client Input", ToolTip = "Input provided by an RPC client connected to the simulator"),
 23   Highest       UMETA(DisplayName = "Highest Priority", ToolTip = "Use for debugging purposes only")
 24 };

The Priority of Client is higher than Autopilot.

@xmyqsh
Hello,
I am facing this issue too, and unfortunately your solution didn't work with me.
Did you try it? (I am using CARLA 9.5 if it is matter)
Thanks in advance.


adjust logo size on home page

From #120:
"I do think that in the future, as a separate PR, we can either (a) reduce the size of the Optech logo to better match the now-much-shorter text at the top of the home page or (b) add a bit more text description back before Learn More. But, there is so much goodness in this PR, that I think we should merge now. I'll file a separate Issue for my comment above, and we can discuss it there."

Concept ACK. Can you open an alternative to #120 with your proposed changes.

Pull in remaining changes from #120 and address the large(ish) whitespace issue at the top of the home page.
Some options:

Reduce logo size
Add text "If you’re an engineer or manager at a Bitcoin company or an open source contributor and you’d like to be a part of this, please contact us at<EMAIL_ADDRESS>after Learn More.
Add some other text?

@bitschmidty @harding suggestions?

Voting option (b). My attempt.
"Bitcoin Optech is a not for profit organization helping Bitcoin users and businesses to integrate scaling technologies.
We provide workshops, documentation, weekly newsletters, original research, case studies and announcements, and help facilitate improved relations between businesses and the open source community.
Learn more."
Here is how that would look.

I think we can remove that "we provide..." sentence from about, or leave it if we want.

This works for me.

Looks good to me. I'll update #120


bug in pygorithm.data_structures.tree.BSTNode.delete() ?

https://github.com/OmkarPathak/pygorithm/blob/9e8434382688c1b41f88f907fef173bc6c37777d/pygorithm/data_structures/tree.py#L160
Is 'root' defined?
someone tell me what's that mean, thanks!

Thanks for pointing it out. It was indeed a bug. Fixed!


Support fasttest and slowtest

https://ghc.haskell.org/trac/ghc/wiki/Building/RunningTests/Running

I believe this has been fixed.


Added Mustache extension #803

Ok, thanks. Build issue seems unrelated so I'm gonna rebase and push.
RegisterForReflection follow up issue #867 .


setting accumulate_grad_batches (accumulate_grad_steps) >1 with deepspeed plugin and use cpu offload will lead to model training incorrectly

🐛 Bug

Setting accumulate_grad_batches (accumulate_grad_steps) > 1 with deepspeed plugin will lead to slow update of model params. I found the reason is the mismatch between ds.accumulate_grad_steps (deepspeed) and pl.accumulate_grad_batches (pytorch_lightning). It's not allowed to specify ds.accumulate_grad_steps (config file or hparams) by pl.DeepSpeedPlugin which sets ds.accumulate_grad_steps equal to pl.accumulate_grad_batches forcely. However, pl.Trainer and ds.engine accumulate the training steps respectively. For example, I set pl.accumulate_grad_batches = 64 and ds.accumulate_grad_steps will be set to 64 automatically. When pl.Trainer triggers ds.engine.step() after 64 steps, ds.engine.micro_step += 1. So it needs 64 * 64 steps in trainer to make ds.engine trigger optimizer to step once and update model params. In addition, loss to backward in optimizer has been scaled twice (64 * 64) in this situation.

code in deepspeed/runtime/engine.py

class DeepSpeedEngine:
...
    def is_gradient_accumulation_boundary(self):
        return (self.micro_steps + 1) % self.gradient_accumulation_steps() == 0
    ...
    def step(self, lr_kwargs=None):
        ...
        # Update the model when we reach gradient accumulation boundaries
        if self.is_gradient_accumulation_boundary():
            if self.progressive_layer_drop:
                self.progressive_layer_drop.update_state(self.global_steps)
            self._take_model_step(lr_kwargs)
        ...
        self.micro_steps += 1

code in pytorch_lightning/trainer/training_loop.py

class TrainLoop:
    ...
    def should_accumulate(self):
        # checks if backward or backward + optimizer step (via closure)
        accumulation_done = self._accumulated_batches_reached()
        is_final_batch = self._num_training_batches_reached()
        return not (accumulation_done or is_final_batch)
    ...
    def run_training_batch(...):
        ...
        if self.should_accumulate():
            # backward
        else:
            ...
            # actually call ds.engine.step() when using DeepSpeedPlugin
            self.optimizer_step(optimizer, opt_idx, batch_idx, train_step_and_backward_closure)

For the sake of training with deepspeed zero offload, I try to set ds.accumulate_grad_steps = 1 manually before ds.DeepSpeedEngine.initialize() in pytorch_lightning/plugins/training_type/deepspeed.py (and pl.accumulate_grad_batches = 64). It seems to work well at the start, and the loss start to reduce with a little bit faster (64 steps to update model params). However, it's weired that loss still reduce slowly after warmup steps. Looking insight ZeRO Offload and deepspeed implement, I found it still has some mistakes in hparams setting. Model will do forward and backward at evey single step with mini batch, and the gradients calculated will be moved to cpu device (actually in memory) with cpu offload turning on. But deepspeed sets and overwrites the buffer to store the gradients in gpu device because it hits the accumulation boundary (ds.accumulate_grad_steps=1 and allreduce=True) at every training step in async_inplace_copy_grad_to_fp32_buffer_from_gpu(param). After finishing every training batch (64), pl.trainer will trigger once of ds.engine.step() which calls the optimizer.step() and updates the partially updated params to model.

code in deepspeed/runtime/zero/stage2.py

def copy_grads_in_partition(self, param):
    if self.cpu_offload:

        if self.gradient_accumulation_steps > 1:
            self.async_accumulate_grad_in_cpu_via_gpu(param)

        if self.is_gradient_accumulation_boundary:
            self.set_norm_for_param_grad_in_gpu(param)

            self.update_overflow_tracker_for_param_grad(param)

            self.async_inplace_copy_grad_to_fp32_buffer_from_gpu(param)

        return
    ...

Finally, I set pl.accumulate_grad_batches = 1 and ds.accumulate_grad_steps = 64. Though there still has some problems (e.g. pl.trainer training process bar display and learning rate scheduler step mismatch), model starts to train normally. While training process bar display issue is not the big due, lr_scheduler step will lightly make some effects on the model training. The problem in lr_scheduler step is similar to previous problem. Trainer triggers lr_scheduler.step() once after a training batch (1 step), but ds.engine.optimizer updates params latter (64 steps). It will make the accumulated gradients sum up by weighted gradients with different learning rate. Thus, I overrided the optimizer_step() function and counted the lr_scheduler steps manually (don't return lr_scheduler in configure_optimizers()). It's obvious that the overrided optimizer_step() will not lead to the exception (raised by pytorch_lightning==v1.2.0) because of the pl.accumulate_grad_batches == 1 (but raise > 1) and model works fine.

./MYCODE.py

class MyPLModule(pl.LightningModule):
    ...
    def optimizer_step(self, epoch, batch_idx, optimizer,
                        optimizer_idx, optimizer_closure, on_tpu,
                        using_native_amp, using_lbfgs):
        if self.trainer.use_tpu or on_tpu:
            xm.optimizer_step(optimizer)
        else:
            optimizer.step(closure=optimizer_closure)
        optimizer.zero_grad()

        if self.mStep % 64 == 0:
            self.lr_scheduler.step()
        self.mStep += 1

Environment

CUDA:

GPU:

GeForce GTX 1080

available:         True
version:           11.1

Packages:

numpy:             1.19.2
pyTorch_debug:     False
pyTorch_version:   1.8.0a0+186c3da
pytorch-lightning: 1.2.0
tqdm:              4.50.2
transformer:       4.3.2
deepspeed:         0.3.10

System:

OS:                Linux
architecture:
- 64bit
- ELF
processor:         x86_64
python:            3.8.5
version:           #136-Ubuntu SMP Tue Jan 12 14:58:42 UTC 2021

hparams

deepspeed config{
    "fp16": {
        "enabled": true
    },
    // "accumulate_grad_steps": 64, // setting in pytorch_lightning/plugins/training_type/deepspeed.py forcely
    "train_micro_batch_size_per_gpu": 1,
    "gradient_clipping": 1.0,
    "zero_allow_untested_optimizer": true,
    "zero_optimization": {
        "stage": 2,
        "allgather_partitions": true,
        "allgather_bucket_size": 2e8,
        "reduce_scatter": true,
        "reduce_bucket_size": 2e8,
        "overlap_comm": true,
        "contiguous_gradients": true,
        "cpu_offload": true
    }
}

pytorch_lightning trainer configargs_dict = dict(
    data_dir="",
    output_dir="",
    model_name_or_path='google/mt5-small',
    tokenizer_name_or_path='google/mt5-small',
    max_seq_length=100,
    learning_rate=3e-4,
    weight_decay=0.0,
    adam_epsilon=1e-8,
    warmup_steps=1000,
    train_batch_size=1,
    eval_batch_size=1,
    num_train_epochs=1,
    gradient_accumulation_steps=64, # finally set to 1
    n_gpu=1,
    fp_16=True,
    opt_level='O1',
    max_grad_norm=1.0,
)

Dear @hwade,
Thanks a lot of such a detailed analysis.
@SeanNaren @hwade I am thinking the simplest solution would be to synchronise deep seed and Lightning internal counters as follow.
                if self.should_accumulate():
                    # For gradient accumulation

                    # -------------------
                    # calculate loss (train step + train step end)
                    # -------------------

                    # automatic_optimization=True: perform dpp sync only when performing optimizer_step
                    # automatic_optimization=False: don't block synchronization here
                    with self.block_ddp_sync_behaviour():
                        self.training_step_and_backward(
                            split_batch, batch_idx, opt_idx, optimizer, self.trainer.hiddens
                        )

                    batch_outputs = self._process_closure_result(
                        batch_outputs=batch_outputs,
                        opt_idx=opt_idx,
                    )

            self.trainer.accelerator.batch_accumulation_end()

class DeepSpeedPrecisionPlugin(PrecisionPlugin):

    def __init__(self, precision):
        super().__init__()
        self.precision = precision

    def batch_accumulation_end(self):
           deepspeed_engine.step()

    def pre_optimizer_step(
        self, pl_module: LightningModule, optimizer: Optimizer, optimizer_idx: int, lambda_closure: Callable, **kwargs
    ) -> bool:
        deepspeed_engine = pl_module.trainer.model
        # DeepSpeed not support closures.
        lambda_closure()

        if not pl_module.automatic_optimization:
            pl_module.trainer.call_hook("on_after_backward")

        deepspeed_engine.step()

        return False

Dear @hwade,
Thanks a lot for such a detailed analysis.
@SeanNaren @hwade
I am thinking the simplest solution would be to synchronise deepspeed and Lightning internal counters as follow.
Any thoughts ?
                if self.should_accumulate():
                    # For gradient accumulation

                    # -------------------
                    # calculate loss (train step + train step end)
                    # -------------------

                    # automatic_optimization=True: perform dpp sync only when performing optimizer_step
                    # automatic_optimization=False: don't block synchronization here
                    with self.block_ddp_sync_behaviour():
                        self.training_step_and_backward(
                            split_batch, batch_idx, opt_idx, optimizer, self.trainer.hiddens
                        )

                    batch_outputs = self._process_closure_result(
                        batch_outputs=batch_outputs,
                        opt_idx=opt_idx,
                    )

            self.trainer.accelerator.batch_accumulation_end()

class DeepSpeedPrecisionPlugin(PrecisionPlugin):

    def __init__(self, precision):
        super().__init__()
        self.precision = precision

    def batch_accumulation_end(self):
           deepspeed_engine.step()

    def pre_optimizer_step(
        self, pl_module: LightningModule, optimizer: Optimizer, optimizer_idx: int, lambda_closure: Callable, **kwargs
    ) -> bool:
        deepspeed_engine = pl_module.trainer.model
        # DeepSpeed not support closures.
        lambda_closure()

        if not pl_module.automatic_optimization:
            pl_module.trainer.call_hook("on_after_backward")

        deepspeed_engine.step()

        return False

Thanks guys and thanks @hwade for such a detailed breakdown, was super helpful.
@tchaton's proposal is definitely viable, by having a nice hook that's called irrespective of accumulation, allowing deepspeed to increment internal counters.
However an alternative is to check if the training type plugin handles accumulation, and should accumulate turns into a no-op. This means at every step the accumulation is called internally in deepspeed. This might avoid the need of two optimizer.step calls, but may be more tricky and involved to implement.
I think on par it's important to get this functionality working, so I think @tchaton's proposal is awesome to get this working. We'll also need a test to ensure that the effective batch size is as expected

@tchaton @SeanNaren Thanks to your replys. @tchaton 's proposal to sync step between trainer and ds.optimizer seems to work in the simplest way. However, I think it's not only the accumulated step need to be synced, but the loss scale op should be cut as one because loss propagated backward will be scaled twice by the accumulation steps in training_step and deepspeed. I 'm not sure if there has any other operations do twice in trainer and deepspeed respectively, so I agree with the opinion from @SeanNaren to turn one of them into no-op.

deepspeed/runtime/engine.py

    def backward(self, loss, allreduce_gradients=True, release_loss=False):
        r"""Execute backward pass on the loss

        Arguments:
            loss: Torch tensor on which to execute backward propagation
            allreduce_gradients: If this is False, then gradient averaging will be skipped. Default is True.
        """
        ...
        # scale loss w.r.t. gradient accumulation if needed
        if self.gradient_accumulation_steps() > 1:
            loss = self._scale_loss(loss.float())

pytorch_lightning/trainer/training_loop.py

    def training_step(self, split_batch, batch_idx, opt_idx, hiddens):
        ...
        if self.trainer.train_loop.automatic_optimization:
            # accumulate loss
            # (if accumulate_grad_batches = 1 no effect)
            if is_result_obj:
                closure_loss = training_step_output.minimize
            else:
                closure_loss = training_step_output.batch_loss

            closure_loss = closure_loss / self.trainer.accumulate_grad_batches

            # the loss will get scaled for amp. avoid any modifications to it
            untouched_loss = closure_loss.detach().clone()

Dear @hwade,
Great catch ! You seem to have a good understanding of Lightning internals. Would love to see you making contributions :)
Let me address those and ping you for review.
Best,
T.C

@tchaton Thanks to your invitation. I am very glad to take part in the contribution team of Lightning. :)

A fix has made it's way into master that @tchaton was working, could you verify it works @hwade?

@SeanNaren @tchaton thx to your works. I will try it and give feedback as soon as possible.

@SeanNaren @tchaton I have tested the DeepspeedPlugin in branch V1.3.0rc1. lr_scheduler, scaled loss and accumulated gradients all work fine in my case. Looking insight of the code implemented, bug fixed by a really simple way without too much changes. Really appreciate to your works @tchaton

Thanks @hwade :)


Manually configured Git Bash popped up in a standalone window

Environment
Windows build number: Microsoft Windows [Version 10.0.19041.508]
Windows Terminal version (if applicable): 1.4.2652.0

Any other software?
    Git 2.28.0.windows.1

Steps to reproduce

I added these lines to profiles.list in WT settings and saved:

            {
                "guid": "{00000000-0000-0000-0000-000000000000}",
                "name": "Git Bash",
                "closeOnExit" : "always",
                "commandline": "D:/Program Files/Git/git-bash.exe",
                "hidden": false
            },

I started Git Bash from WT's dropdown menu.

Expected behavior
Git Bash shall run inside WT.
Actual behavior
Git Bash popped up as a standalone window, not inside WT.
Screenshot here:

Hi @jerryc05
Try using this path instead for your commandline property:
D:/Program Files/Git/bin/bash.exe
This worked for me when I had the exact same issue.

Hi @jerryc05
Try using this path instead for your commandline property:
D:/Program Files/Git/bin/bash.exe
This worked for me when I had the exact same issue.

Thanks! Worked like a charm!


 U: .

 U: .

Console output
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5572/1/console

versions
git=2.34.1 maven=3.8.6

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 15s
Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s
No case conflicting files found.

+0 :ok:
shelldocs
0m  0s
Shelldocs was not available.

+1 :green_heart:
@author
0m  0s
The patch does not contain any @author tags.

_ branch-2.4 Compile Tests _

+1 :green_heart:
spotless
0m 43s
branch has no errors when running spotless:check.

_ Patch Compile Tests _

+1 :green_heart:
shellcheck
0m  0s
There were no new shellcheck issues.

+1 :green_heart:
whitespace
0m  0s
The patch has no whitespace issues.

+1 :green_heart:
spotless
0m 36s
patch has no errors when running spotless:check.

_ Other Tests _

+1 :green_heart:
asflicense
0m 11s
The patch does not generate ASF License warnings.

2m 43s

Subsystem
Report/Notes

Docker
ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5572/1/artifact/yetus-general-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/5572

Optional Tests
dupname asflicense spotless shellcheck shelldocs

uname
Linux 8a90d76ed8bb 5.4.0-166-generic #183-Ubuntu SMP Mon Oct 2 11:28:33 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
branch-2.4 / a253472c17

Max. process+thread count
45 (vs. ulimit of 30000)

modules
C: . U: .

Console output
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5572/1/console

versions
git=2.34.1 maven=3.8.6 shellcheck=0.8.0

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.


Allow for PHP-FPM settings to be changed

What happened?
Attempting to update pm.max_children. The cf build packs allowed for a .bp-config directory to be added to override but I haven't found a similar override for paketo. I am aware that placing config in .php.ini.d overrides php settings but doesn't affect fpm settings.

What were you attempting to do?
Change php-fpm settings.

What did you expect to happen?
Override folder to allow for this.

What was the actual behavior? Please provide log output, if possible.
No change in pm.max_children setting.

The buildpack writes the default php fpm config to /layers/paketo-buildpacks_php-web/php-web/etc/php-fpm.conf (see template used). You should be able to override this file using a custom fpm config file when you are running a container off the image.
E.g.
docker run <options> -v $PWD/new-fpm-conf.conf:/layers/paketo-buildpacks_php-web/php-web/etc/php-fpm.conf <image>

My use case is that the docker image eventually goes into Kubernetes through a pipeline. We are using the cnb:cflinuxfs3 image to copy the code to a directory of /cnb-build/ and the lifecycle commands to detect and build the docker image. Having a folder to override the fpm params like .php.ini.d would be ideal. The code in this repo for phpfpm.go mentions a .php.fpm.d folder but doesn't appear to work.


Added git branch and commit NuGet packages

Description
Added git branch and commit into NuGet packages.

What is the reason to add this info to Nuget packages?

What is the reason to add this info to Nuget packages?

What is the reason to add this info to Nuget packages?

To make debugging easier, especially in symbol issues.

What is the reason to add this info to Nuget packages?

To make debugging easier, especially in symbol issues.


Add script for running configs

Also makes it so that xsmm_py is only imported when needed

@rengolin Comments are addressed.

@adam-smnk I went ahead with the merge so that @rengolin & @alheinecke could already use it. If you could still check that the config and orthogonal options align with what you used for the presentation slides, that would be great!


Update MFG Labs iconset to the version from June 20, 2014

In fontello there are 41 icons missing.

Any update?

Why is this not done yet?


Front end: Design a rough UI layout

Create a design document using Figma (or any other tool of your choice, it can be hand drawn if you want) of the UI components needed for this app


[SUGGESTION] Add a config to add dimensions where stellar view sky will be rendered

As title says, it would be great for modpack makers to add dimensions where their skybox would be replaced with stellar view skybox. As well as to control the rendering of planets on the skybox

Actually already done, will be available when version 0.3 releases. The whole system is being rewritten to be resourcepack-based, allowing with some basic knowledge of how resourcepacks work to change anything they like.

Ah, that's great, can't wait for the next update then :)


Seed words do not have capital letters

Need to change capital letters to small letters in the seedwords here: https://xd.adobe.com/view/f1543c84-c25a-4ad6-81ca-1e0c540e956e-a407/screen/a3f76c20-4dc4-4a3f-8195-2390d4b4aed8/

updated


Node.set_owner is shallow

Operating system or device - Godot version:
Ubuntu 16.04 on an amd64, Godot 2.1.3 stable.
Issue description:

I'm trying to make a tool script that doesn't just create a new node, but also a second node as a child of the first one. When I run this script, only the first node is created, not the second node.
EDIT: after looking at other examples like tilesethelper, I found out that this doesn't work because Node.set_owner is shallow and doesn't account for an ownership hierarchy.
Steps to reproduce:

Create a Node, which I will call test for reference.
Add the following script to it:

tool
extends Node

export(bool) var reset = false setget _on_reset

func _on_reset(value):
	if (value):
		reset = false
		for child in get_children():
			child.free()
		var new_node = Node.new()
		add_child(new_node)
		new_node.set_owner(self)
		new_node.set_name("new_node")
		var new_sprite = Sprite.new()
		new_node.add_child(new_sprite)
		new_sprite.set_owner(new_node)
		new_sprite.set_name("new_sprite")
		new_sprite.set_texture(preload("res://icon.png")) # or whatever image you want

Click the Reset checkbox to run the script. In the scene tree you can see that new_node was created but it doesn't have a child called new_sprite. However, in the editor viewport (not when playing the scene), the sprite is being drawn on the screen!

Link to minimal example project:

tool-script-can't-create-a-node-hierarchy.zip

I think you are mistaking how set_owner works. It is not the same as set_parent. Here is an example:
[main.tscn]
- A : Node(parent = null, owner = null)
  - B : Node(parent = A, owner = A)
    - C : Node(parent = B, owner = A)
  - D : Node(parent = A, owner = A, scene = PackedScene("sub.tscn"))
    - E : Node(parent = D, owner = D)
       - F : Node(parent = E, owner = D)
[sub.tscn]
- D : Node(parent = null, owner = null)
  - E : Node(parent = D, owner = D)
     - F : Node(parent = E, owner = D)

When the editor attempts to save main.tscn, it would get it's root node (A), and then go through all children which have it as their "owner" (B, C, D), and then serialise those along with the root to a scene.
What you are doing works only because self is the scene's root, and thus the first set_owner makes a "normal" node. But, when you set the new_sprite's owner to new_node, it considers new_sprite as something which is not "owned" by the scene, and therefore, not something to be saved in the scene.

I see, thanks for clarifying that. I did new_sprite.set_owner(self) and it worked.


chore: bump importGraph dependency

Bump lake exe graph.

In particular this introduces the interactive visualisation lake exe graph mathlib.html.
See it live: https://joneugster.github.io/mathlib4_docs/mathlib.html

Thanks! :tada:
bors merge


[BUG] Product tile skeletons should represent the same size as the content for no search results

Summary
On the no search results found page, the size of the top sellers skeletons are not the same as the size of the content that is loaded after. The skeletons should match the size of the content being loaded in them
Steps To Reproduce

Search for "space" or something with no results
See loading skeletons in product scroller

Expected result

Skeletons should represent the size of the content that will be displayed

Actual result

Skeletons are much smaller than the size of the displayed content

Additional information

@ W-9818382 @

Thank you for submitting this issue. We have reviewed the issue, but based on the severity of the issue described, do not have plans to fix this issue at this time. Please comment and reopen the issue if you’d like to propose increasing the priority level.


Fix seek bar behavior with MP4 stream

Pull request
Description
This PR fixes slider jumps when navigating in the MP4 example. It also reintroduces implementation that was removed in #42.
I first intended to remove PlaybackProgress but binding with value sanitization requires an intermediate object (otherwise invalid values are immediately reflected by the slider since no setter can be implemented to clamp the values).
Changes made

Restore seek notifications but in a simpler form (will and did called once). This ensures no unnecessary events are emitted, keeping internal updates small.
Add a seeking internal published property bound to notification streams. Combined with PlaybackProgress information` we can filter out internal progress updates when the user is interacting with the slider, as well as whe the player is seeking programmatically.
I also discovered an issue with the MP4 example. Seeking a few times makes the image freeze and the player leaks resources. To release more resources I clean items in deinit, but one AVPlayer related resource remains and a significant amount of memory is leaked. This issue requires further investigation but I suspect this is an AVPlayer bug.

Checklist

[x] Your branch has been rebased onto the main branch.
[x] APIs have been properly documented (if relevant).
[x] The documentation has been updated (if relevant).
[x] New unit tests have been written (if relevant).
[x] The demo has been updated (if relevant).

🌙 Available in TestFlight nightlies
The most recent state can be tested in the following builds:

Platform
Version

iOS
-

tvOS
1.0.0 (55)


TC-DM-1.2, 1.4 chip tool Darwin testing: read_event and read_event_by_id attributes are not present in Darwin tool

As per the steps in TC-DM-1.2 and 1.4, read_event and read_event_by_id attributes are needed in chip tool Darwin. They are present in chip tool but not in the Darwin tool. In the below screenshot, the above list is chip-tool while the below one is the Darwin tool.

Duplicate of #18185 (which has a bit more info).


Sign in and Cloud Save - Experiment

Description
Sign into MakeCode Arcade with your Microsoft Account to enable saving projects to the cloud where they're accessible from any device.
How to use it?
Enable the experiment
In MakeCode Arcade, enable the Cloud Save experiment by clicking the gear wheel, select About..., click Experiments, find and select the Cloud Save card, then click on the back arrow to return to the home screen.

Sign in
After the page reloads, look for a new "person" icon next to the gear wheel. Click there and sign in.

When signed in, your projects will be saved to the cloud when you edit them, and be accessible from the other devices you sign into.
Sign out
When you sign out, your cloud-saved projects will not be assessible.

Opt-out
You can get back to a signed out state and preserve your cloud-saved projects by deleting your MakeCode profile. This can be done from the My Profile screen. When you delete your profile, your cloud projects will be converted to local projects on your current device only.

Caution
This feature is in public preview status, so there may be bugs! If you're concerned about losing work, please save a local copy of your projects before signing in. You might consider trying it out in an InPrivate browser session.
Feedback
Do you use this feature? Is there something you'd like to change? Did you encounter issues? Please drop a comment below to send us your feedback.

Shipped!


Unstable test RetryingTargetWrapperBlockingCloseTest

See https://ci.appveyor.com/project/nlog/nlog/builds/23521469

long time ago for this, so close


auto reconnect

I implemented auto reconnect to database in running.
If disconnected to database, it will attempt close and re-open connection.

I've tried this with a jdbc oracle input that is scheduled to fetch every seconds. When I shutdown and restart the database, the reconnect doesn't return from Sequel.connect(@jdbc_connection_string, opts=opts).
I've tried using
    sequel_opts => {login_timeout => 5 }

but that didn't help.

Hi, @minibbjd
Thank you for reviewing my PR.
I fix the issue by closing @database and assign nil to @database when failed @database.test_connection(), instead of you shown it.
Could you check the new commit c80533a .
Regards.

I do believe this would solve Open issue 45
@tac0x2a, @minibbjd Thanks for working on this. I'm new to this codebase and jruby so I wouldn't be knowledgeable enough to attempt to fix the CI failures but looking forward to having this logstash plugin db connect errors resolved!

Hi @djgerhab  , Thank you for expecting this PR. I will fix the CI failures. Please wait !

Hi @minibbjd , I fixed tests. Could you consider merge this PR ?

This is awesome. LGTM! :)

I have almost same error.
[INFO ] 2019-10-16 15:42:52.729 [Ruby-0-Thread-1: /usr/share/logstash/lib/bootstrap/environment.rb:6] agent - Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]} [INFO ] 2019-10-16 15:42:53.259 [Api Webserver] agent - Successfully started Logstash API endpoint {:port=>9600} [INFO ] 2019-10-16 15:42:54.674 [[main]<fayvo] fayvo - (0.021805s) select * from user_posts where id > 0 limit 0 ,10  [WARN ] 2019-10-16 15:42:54.822 [[main]<fayvo] fayvo - Exception when executing JDBC query {:exception=>#<Sequel::DatabaseError: Java::JavaSql::SQLException: Value '2media$3aae68f5-38b4-11e9-b66c-0af13b44a73a311 Mango Duckï¿½0Aï¿½0ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½51.5045-0.08652017-01-17 20:49:092019-03-07 12:49:380000-00-00 00:00:0031484686149-2-m7M96960001' can not be represented as java.sql.Timestamp>} [INFO ] 2019-10-16 15:42:55.187 [[main]-pipeline-manager] pipeline - Pipeline has terminated {:pipeline_id=>"main", :thread=>"#<Thread:0x4252699b run>"} [INFO ] 2019-10-16 15:42:55.498 [LogStash::Runner] runner - Logstash shut down.


Attack run order

Currently attacks are run in alphabetical order. I think it would be really nice if there was an argument that ran attacks (very roughly) based on the estimated time that they take, which would greatly speed up runtime. Thanks for considering my suggestion!

How about a "slow, medium, fast" attribute by attack (one in each attack class) and ordering by this information ?
Do you think it will solve your problem?

Ok, this idea was a little improvement and now I'm refactoring the whole attack system... This issue will not be fixed today !

Ordering by speed is implemented, but I have no time nor bravery to test each attack and set the correct time estimation (slow, medium, fast).
You can make a pull request :)


33 acquies counting

@Graur please take a look
#33
I added check to acquire.release and now it can throw ExFailure exception.
Also added tests for mutex.
Pay attention to using syncronized in EOmutex$EOacquire$EOφ.java: I believe changing of locks' number in Acquires.java and acquireing of semaphore must be executed by one thread at a time.

@yegor256 seems there are problems with actions

@Graur please take a look

@levBagryansky btw, "acquire" is a verb, while "acquisition" is a noun

@levBagryansky see above. I think, testing must be much stronger in this project. We really must guarantee thread-safety. Now, our tests are very weak.

@yegor256 please take a look

@EugeneDar please review

@Graur please review

@levBagryansky a few comments above

@yegor256 please take a look

@levBagryansky see above

@yegor256 I compute the value matching to the key

@levBagryansky try to use this class from Cactoos: https://www.javadoc.io/doc/org.cactoos/cactoos/latest/org/cactoos/experimental/Threads.html Your code will be much shorter

@yegor256 Is this https://www.yegor256.com/2018/03/27/how-to-test-thread-safety.html actual now? Seems Threads differs from RunsInThreads signature.

@levBagryansky the blog post is outdated. You are welcome to fix it, by the way, by submitting a pull request to yegor256/blog repo

@yegor256 it's not obvious how to use this library for tests, let's create a new task to do that

@levBagryansky see https://github.com/objectionary/eo/pull/1289

@yegor256 please take a look. I needed to use Scalar<Boolean>  to apply Threads

@yegor256 If I understand correctly, Threads does not allow to run tasks without gettings their resultls. So to rewrite the tests this way I need to use redunant Boolean and forEach(Boolean::valueOf). May be its better to leave a todo until the usage of Threads is clearer?

@yegor256 What do you think?

@rultor merge

@rultor merge

@yegor256 OK, I'll try to merge now. You can check the progress of the merge here

@rultor merge

@yegor256 Done! FYI, the full log is here (took me 4min)


Documentation was confusing

Due to the re-use of the class name, the doc read as

Pyro provides three built-in losses: Trace_ELBO, Trace_ELBO, and Trace_ELBO.

So I modified it to include the specific module.

 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.You have signed the CLA already but the status is still pending? Let us recheck it.

Actually the docs are simply wrong, it should be:
-        :class:`~pyro.infer.trace_elbo.Trace_ELBO`,
-        :class:`~pyro.infer.tracegraph_elbo.Trace_ELBO`, and
-        :class:`~pyro.infer.traceenum_elbo.Trace_ELBO`.
+        :class:`~pyro.infer.trace_elbo.Trace_ELBO`,
+        :class:`~pyro.infer.tracegraph_elbo.TraceGraph_ELBO`, and
+        :class:`~pyro.infer.traceenum_elbo.TraceEnum_ELBO`.

Yeah I realized that when I got a little bit further. Also explains why there were no links on the latter two.

@jamestwebber - Thanks for fixing this! Could you sign the CLA above, before I merge this?

I sent the CLA to our lawyer, once I get the go ahead I'll sign it. Or you
could probably reproduce my work independently..
On Fri, Jun 22, 2018, 10:38 Neeraj Pradhan<EMAIL_ADDRESS>wrote:

@jamestwebber https://github.com/jamestwebber - Thanks for fixing this!
Could you sign the CLA above, before I merge this?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/uber/pyro/pull/1201#issuecomment-399521440, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AA60PywAbZOrVMI7FpMuNBg3ftm3_C4Eks5t_St-gaJpZM4Uy7B2
.

Closing in favor of #1218


Link from [Claim and Invitation] to Firefox in Linux, doesn't work, if the browser is not already open.

Operation System: Linux Min 18.1
Beaker Version: v0.6.0-linux-x64
Link from [Claim and Invitation] to Firefox in Linux, doesn't work, if the browser is not already open. If it's not open, then clicking the button sees Firefox starts but its frozen; not obviously putting any url to the url-bar; and requires force quit.

This works fine in Ubuntu 16, I wonder if this isn't a linux min issue as all the browser is doing is triggering the system to open the url with whatever program is defined for this.

Closing as I couldn't replicate this and we don't currently support Linux Min.


Two records of the same component appear in the list “I Install ”

Two records of the same component appear in the list “I Install ”，but updated at different times @Abirdcfly
The data that was updated earlier flashed.

@littsummer seems this is  a bug in component-store. @dayuy

This bug is caused by someone installing the chartmuseum via cpl, then uninstalling it via helm   manually, and then installing a new chartmuseum with another cpl.
That is to say, we need to deal with the situation where the cpl's corresponding chart is manually uninstalled or updated by the helm command


Description and Contact not showing in client

I have edited config.toml but now that my relay is running the Description and Contact fields are blank.

Can you post your config or run it through a toml linter, think its likely the formatting is off.


How to create tables dynamically?

I have such a need.I want to create a chat information table for each friend when I receive a chat message from the Internet.For example when I receive chat message from my friend Tom,I will check  if there are tom_chat_table locally.If it exists,I will insert this chat message to tom_chat_table.If it not exists,I will create tom_chat_table and insert this chat message to tom_chat_table.
Thanks

SquidDatabase has methods tryCreateTable() (or tryExecSql() if you have arbitrary SQL you want to run), but this is not a good way to approach this problem. Regardless which kind of database or you use, your approach is going to run into problems because you are not identifying and associating your entities correctly.
The entities you have are chats, messages, and users. Preferably, these entities would also exist on your server and have globally unique IDs.

Each message belongs to a chat. This would be a foreign key to an ID in chats.
Each message has a sender. This would be a foreign key to a row to an ID in users.


Better visualization of tables in slackbot integration

Other visualizations get reproduced in Slack as is. Tables, on the other hand, are sent to Slack as the underlying data, with fields separate by hyphens.  This makes tables with multiple columns not-so-readable via Slack.

Slack supports sending tables via attachments. Slackbot supports attachments in message.send_webapi (and in the unreleased version on develop, message.reply_webapi). Slack's documentation and a handy interactive preview tool is at https://api.slack.com/docs/attachments
Note that attachments come in as a list of dicts, so you might do something like this in a slackbot plugin:
attachments = [{
    'fallback': 'A textual representation of your table data',
    'fields': [
        {
            'title': 'field1',
            'value': 'data1',
            'short': True
        },
        {
            'title': 'field2',
            'value': 'data2',
            'short': True
        }
    ]
}]
message.send_webapi('', attachments=attachments)

This is what that looks like in the tester:

Thank you--we'll try it out!
On Tue, Apr 19, 2016 at 5:05 PM, James Tatum<EMAIL_ADDRESS>wrote:

Slack supports sending tables via attachments. Slackbot supports
attachments in message.send_webapi (and in the unreleased version on
develop, message.reply_webapi). Slack's documentation and a handy
interactive preview tool is at https://api.slack.com/docs/attachments
Note that attachments come in as a list of dicts, so you might do
something like this in a slackbot plugin:
attachments = [{
'fallback': 'A textual representation of your table data',
'fields': [
{
'title': 'field1',
'value': 'data1',
'short': True
},
{
'title': 'field2',
'value': 'data2',
'short': True
}
]
}]
message.send_webapi('', attachments=attachments)
This is what that looks like in the tester:
[image: screen shot 2016-04-19 at 2 04 40 pm]
https://cloud.githubusercontent.com/assets/340001/14655568/c365cdd4-0637-11e6-8444-d7e9ebebb1be.png
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/lins05/slackbot/issues/77#issuecomment-212129609

--
Arun Viswanath, Business Analyst
Q | managedbyq.com | c:<PHONE_NUMBER> | @managedbyq
https://twitter.com/ManagedbyQ

How can I do field3 next to filed2. I basically wanted 3 columns in one row.

make the fields smaller.

I think 2 wide is a limitation set by Slack itself not this library @Tibingeo

Any idea how we can make it three columns in a row?

Like I said in the comment just above yours it looks like a limitation with Slack itself and not something this chatbot can control...
Here is the documentation from slack:
https://api.slack.com/docs/message-attachments#fields
An optional flag indicating whether the value is short enough to be displayed side-by-side with other values.

Which leads me to believe side-by-side means only ever 2 wide.


merge editor - fix URI check for view state

This PR fixes #

https://github.com/microsoft/vscode/blob/662860cd23732a4095f8c2efca32915fd38c6bd7/src/vs/workbench/contrib/mergeEditor/browser/view/mergeEditor.ts#L463
I think this was added as a safety check for the provider of view state to make sure it can compute view state on the provided URI and ensuring that the URI matches the underlying widgets/model URI. Comparing with the input.resource is not accurate because the truth of view state typically lives within the widget that shows the input, or rather the model. To clarify, you will not be called with "foreign" resources. I can look in debt week to clean this up and understand better why I added it, I recall a bug in view state computation for this as a reason why it was added.


I want to see the latest file/directory on top.

title says all. I believe no one wants to look at 1 year old video, instead, want to walk through the latest to older.

You will find why I want this when you want to find the video which has a intruder.


fix expand query param

waiting for https://github.com/SalesforceCommerceCloud/commerce-sdk-core/pull/108 to be merged in and released to consume in this PR


Web UI support for plugins

Allows plugins to have their own HTML page within the web UI by calling self.log.addSectionlog('plugins', '<pluginName>', 'webui', True);
This will add a navbar element for the plugin using .html as the link.
Types of changes

[x] New feature (non-breaking change which adds functionality)

Depends on #497


doctest blocks are unknown

Using doctests in the documentation breaks the docstrfmt linter.
When the linter runs on an rst file that includes
>>> import math
>>> math.sqrt(4)
2.0

the following error is printed:
ValueError: Unknown node type doctest_block at File "/path/to/documentation.rst", line 6
It appears that the doctest extension is not handled.

Also code-blocks are not known.
Example:
.. code-block:: python

    >>> import module_xy
    >>> x = module_xy.function_xy(...)
    >>>

Causes:
SyntaxError: invalid syntax:

I'll look into test blocks but code blocks that is intended and not meant to be used with >>>.


[doc] Add a diagram to explain how ast-grep works

Not everyone is familiar with tree-sitter, it is worth a diagram to explain ast-grep is using tree-sitter to parse code to a CST tree.
Also, the diagram can show the three way to use the software: pattern/yaml/api.
And the three main usages of the program: search/lint/rewrite.

Gogocode has a good example of diagram
https://gogocode.io/en/docs/specification/basic

Ideally I can incorporate scrolling into the animation.

Looking forward to seeing it.

This mermaid plugin might be very helpful.
https://emersonbottero.github.io/vitepress-plugin-mermaid/

https://asciiflow.com/
This is a very simple helpful tool.

Something like this
https://www.codeshiftcommunity.com/docs/understanding-asts/


Add inOrder feature to emit textures in an order

Added a boolean in Emitter to emit particles in order. To set you have two options:

set through boolean -
__yourEmitter__.inOrder = true;
or set in the config.extraData while creating -
config.extraData.inOrder: true

It is quite useful when you want emit textures in an order,
for example: dragon [head, body1, body2, ..., tail].
Although, I understand that half of Particles' beauty comes from its' random nature, however this feature will be great to have. I needed that for a game.

Properties specific to the Emitter and not specific particle types belong on the main config, not extraData.
What is the use case for turning off inOrder on an emitter mid-cycle and having it finish out the cycle? That seems non-obvious/confusing to a user and makes the code a little messy - you could manage the whole thing internally with just currentImageIndex otherwise.

Properties specific to the Emitter and not specific particle types belong on the main config, not extraData.

On second look, I agree that that the inOrder should be moved to Emitter config.

What is the use case for turning off inOrder on an emitter mid-cycle and having it finish out the cycle? That seems non-obvious/confusing to a user and makes the code a little messy - you could manage the whole thing internally with just currentImageIndex otherwise.

The reason I wait for the cycle to complete, is starting to emit randomly in middle of cycle would be more confusing. However, I am open to suggestions.

Anything in the config is considered to be largely static for the Emitter, the only things expected to be changed during emission are position and rotation. Anything else is part of the presumably carefully designed particle system and requires a full re-initialization, or is modify at your own risk. As such I am fine having that oddity happen if changing isOrder during emission. Owners of the emitters can know when emission is complete with the callback for playOnce() to avoid changing it during emission, if they absolutely must.
I'd suggest changing isOrder to orderedArt, using the protected variable currentImageIndex where -1 is orderedArt == false and any other value is orderedArt == true.

Anything in the config is considered to be largely static for the Emitter, the only things expected to be changed during emission are position and rotation. Anything else is part of the presumably carefully designed particle system and requires a full re-initialization, or is modify at your own risk. As such I am fine having that oddity happen if changing isOrder during emission. Owners of the emitters can know when emission is complete with the callback for playOnce() to avoid changing it during emission, if they absolutely must.
I'd suggest changing isOrder to orderedArt, using the protected variable currentImageIndex where -1 is orderedArt == false and any other value is orderedArt == true.

@andrewstart I've made some changes as per your suggestion.

Sweet, I'll work on an example emitter for this feature and then push out a new version. It sounds like you are doing some kind of Eastern dragon, but I can also see this being useful for turning characters/vehicles into giblets/debris.


Fixed typo

Issue that this pull request solves
Fixes typo 'Discription'.
Closes: #244
Brief description of what is fixed or changed
Fixed typo.
Put an x in the boxes that apply

[ ] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update (Documentation content changed)
[ ] Other (please describe):

Checklist
Put an x in the boxes that apply

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] My changes does not break the current system and it passes all the current test cases.

Thanks for the correction! :+1:

@all-contributors please add @Rizwan-S for code.


Text written to piped stdout/stderr is printed out of order

When using the default stdout/stderr streams for a $ command, text written to the different streams in a particular order can appear out of order when printed.
Example
if I run deno run -A main.ts on the following file:
// main.ts
import $ from<EMAIL_ADDRESS>
await $`deno eval 'console.log("1: out"); console.error("2: err"); console.log("3: out"); console.log("4: out"); console.error("5: err");'`

the output printed to the terminal is:
1: out
3: out
2: err
5: err
4: out

By contrast, if I inherit the streams from the parent process as:
// main.ts
import $ from<EMAIL_ADDRESS>
await $`deno eval 'console.log("1: out"); console.error("2: err"); console.log("3: out"); console.log("4: out"); console.error("5: err");'`
  .stdout("inherit").stderr("inherit");

then the output to the terminal is:
1: out
2: err
3: out
4: out
5: err

Is this "out of order" output because the streams are buffered when not inherited?

By default, stdout and error are always captured. What may occur is the sub process writes to stdout, stderr, then stdout, but only then does the process running dax start reading which could read all the data in stdout at once, then after all the data in stderr. I don't think there's any way around this since stdout and stderr are two separate pipes. I think the same issue could occur in zx, but maybe the chances are lower because node uses callbacks? https://github.com/google/zx/blob/700bd4cae2ce564aa477b2501b1916c2a9041a85/src/core.ts#L208-L222

if I inherit the streams from the parent process as...

Yeah, if you inherit then it the subprocess will write directly to the deno process's stdout and err, which won't rely on the javascript code waking up and reading from stdout and stderr, storing it, then outputing. If you want to change the default you can do:
import {
  build$,
  CommandBuilder,
} from "...";

const commandBuilder = new CommandBuilder()
  .stdout("inherit")
  .stderr("inherit");

const $ = build$({ commandBuilder });

@dsherret Got it, this makes sense, and I bet you're right in your guess about zx!
Out of curiosity, did you consider making the io streams inherited by default and piped as an option?
Thanks for the info and follow up on this - cheers!

Out of curiosity, did you consider making the io streams inherited by default and piped as an option?

I think that would be better because of the existence of the "helper" functions that could automatically change to piped when necessary. I'll do that right now.

Awesome! Thanks for taking a look at this and as always, thank you very much for your work on this (and the Deno ecosystem) :smile:

You're welcome! This is now released in 0.11.0. I'm not sure if there's anything we can do to mitigate this when capturing the output unfortunately.

Nice! Yea, given my new understanding of how this works, I suspect you're right. I will go ahead and close this issue as "that's just kinda how it works" :smile:
Fortunately, the new default provides the behavior I expected intuitively, so that's great! Cheers!

I believe my change in...
https://github.com/dsherret/dax/commit/b8402df6c5413519920556dd72088d41e0df92af
...should mitigate this issue. I was using async writers everywhere, but it wasn't necessary.


Permanent headline and descriptive text above table :feature:

I suggest having a permanent markdown field above the table that can be used for a headline and a few descriptive sentences. This field should be visible right at the start.
The idea is pretty much the same as for the layout of tables in publications, where each table has a headline and a short text explaining what the following table is about.
There is already desc in views, which could be used for this as well. However, in its current implementation the intention is probably to use desc for descriptive text that does not need to be visible most of the time (e.g. column descriptions). Desc is fine, but an additional field (above desc) for the headline would be very helpful, especially for people trying to quickly understand whether the current datavzrd page is relevant to them or not. The current click-on implementation of desc is also helpful and should stay. This feature request is about having a permanent field in addition.

Since this is hardly related to #327 (at least for the implemetation and spec side) it probably makes sense to come up with a solution that fits all. What are your thoughts @johanneskoester? It might be an option to make the initial state of the description configurable. But then we would need a second collapse for the individual column description mentioned in #327   because those should definitely not be visible. I get the point of having an "always on" description but having a config like this is probably not the cleanest solution:
views:
  oscars:
    dataset: oscars
    permanent-desc: |
      ### All winning oscars beginning in the year 1929.
      This table contains *all* winning oscars for best actress and best actor.
    desc:  |
        The Academy Awards, better known as the Oscars, are awards for artistic and technical merit for the American film industry.
        The awards are regarded by many as the most prestigious, significant awards in the entertainment industry in the United States
    page-size: 25

Maybe, we could have multiple descriptions (like a list), which are all displayed one after the other (in order).
views:
  bla:
    dataset: bla
    descriptions:
      textbox1:
        visible: on-start
      textbox2:
        visible: on-click
        position: top
      textbox3:
        visible:
          - on-start
          - collapsable
        position: bottom

Yes, that would be definitely useful!
I would extend the idea to allowing texts or even HTML above and beneath the table.
That way headers and additional explanatory texts can be integrated.
This is useful, since I do not see any other easy way of integrating the produced reports into wrapper HTML-files.


Display network activity indicator

I would like to show internet activity indicator if an image is being downloaded. How do I do it?
I am using hnk_setImageFromURL

similar to this #216


VS Code: Parameters panel not opening.

Describe the Bug with repro steps

Create a new standard logic App Project
Add a workflow to your local project
Open the workflow.json file in designer and author a new workflow.
Add http request Trigger
Add any action
Save workflow.
Click on Parameters button, Parameters panel should open with the empty parameters or some parameters will show up if workflow has some API connections in it.

Expected: Parameters panel should open with the empty parameters, or some parameters will show up if workflow has some API connections in it.
**Actual:**Parameters panel not opening when clicked on parameters button.
What type of Logic App Is this happening in?
Consumption (Portal)
Which operating system are you using?
Windows
Are you using new designer or old designer
New Designer
Did you refer to the TSG before filing this issue? https://aka.ms/lauxtsg
Yes
Workflow JSON

Screenshots or Videos
https://github.com/user-attachments/assets/3eb7bdf0-000a-4d63-b155-decace9bd84d
Browser
VS Code
Additional context
VSIX Version : 4.116.7-fixSessions

Related to https://github.com/Azure/LogicAppsUX/issues/5810


RFC: Task extending/variants

A common practice in the JavaScript ecosystem is to have an npm script that runs another npm script while passing additional arguments/options to it. A popular example is linting:
{
  "scripts": {
    "lint": "eslint .",
    "lint:fix": "npm run lint --fix"
  }
}

This is extremely easy in Node.js but is quite difficult in moon, and is currently not supported. npm scripts are simply just strings, arbitrary ones at that, which are then run in a shell. moon tasks are more akin to structured models that represent a single command (with args), as we need to take inputs, outputs, options, merging, and other factors into account.
The only current solution to this problem in moon is to duplicate the task. This can be somewhat ideal because the extending task may require different inputs/options/etc.
tasks:
  lint:
    command: 'eslint .'
    inputs:
      - '@globs(sources)'
      - '@globs(tests)'
      - '*.js'
      - '.eslintrc.js'
      - 'tsconfig.json'
      - '/.eslintignore'
      - '/.eslintrc.js'
      - '/tsconfig.eslint.json'
      - '/tsconfig.options.json'
  lint-fix:
    command: 'eslint . --fix'
    local: true
    inputs:
      - '@globs(sources)'
      - '@globs(tests)'
      - '*.js'
      - '.eslintrc.js'
      - 'tsconfig.json'
      - '/.eslintignore'
      - '/.eslintrc.js'
      - '/tsconfig.eslint.json'
      - '/tsconfig.options.json'

With that being said, we’d love to support task extending/variants as a first-class feature in moon, but… we cannot decide on an API. We’d love your input on this matter:
Other examples
Before we dive further into the RFC, we want to provide some additional examples that we believe would be solved by this RFC, and ones you may have encountered.

For Rust projects, building debug and release modes.

tasks:
  build:
    command: 'cargo build'
    inputs:
      - 'crates/*/src/**/*'
      - 'crates/*/benches/**/*'
      - 'crates/*/tests/**/*'
      - 'crates/*/Cargo.toml'
      - 'Cargo.toml'
    outputs:
      - 'target/debug/moon'

  build-release:
    command: 'cargo build --release'
    inputs:
      - 'crates/*/src/**/*'
      - 'crates/*/benches/**/*'
      - 'crates/*/tests/**/*'
      - 'crates/*/Cargo.toml'
      - 'Cargo.toml'
    outputs:
      - 'target/release/moon'
    options:
      runInCI: false

For Babel, building CJS/ESM/etc.

tasks:
  build:
    command: 'babel ./src -o ./lib'
    env:
      FORMAT: 'cjs'
    # ...

  build-esm:
    command: 'babel ./src -o ./esm'
    env:
      FORMAT: 'esm'
    # ...

For Jest, running tests and updating snapshots.

tasks:
  test:
    command: 'jest .'
    # ...

  test-update:
    command: 'jest . -u'
    # ...

For Prettier, checking vs writing.

tasks:
  format:
    command: 'prettier . --check'
    # ...

  format-write:
    command: 'prettier . --write'
    # ...

Requirements & goals
The following items must be met to achieve full functionality:

Variants are a distinct task and will be ran in CI automatically (if options.runInCI is true) alongside the base task.
Variants cannot override the command but can define additional args.
Variants must be able to define options.

Merging strategies will be applied.

The base task must be a valid command on its own, and should be runnable, even if a no-op.

Option 1) New variants field in task
The first option is to support a variants field within a task’s config. This field would be a map, where the key is the variant name, and the value is a nested task config.
The nested task config can define all task settings that the base task would (inputs, outputs, options, etc), except for command. To modify arguments, use the args setting instead. Merge strategies will be applied when merging the base and variant tasks.
tasks:
  build:
    command: 'cargo build'
    inputs:
      - 'crates/*/src/**/*'
      - 'crates/*/benches/**/*'
      - 'crates/*/tests/**/*'
      - 'crates/*/Cargo.toml'
      - 'Cargo.toml'
    outputs:
      - 'target/debug/moon'
    variants:
      release:
        args: '--release'
        outputs:
          - 'target/release/moon'
        options:
          mergeOutputs: 'replace'
          runInCI: false

  lint:
    command: 'eslint .'
    inputs:
      - '@globs(sources)'
      - '@globs(tests)'
      - '*.js'
      - '.eslintrc.js'
      - 'tsconfig.json'
      - '/.eslintignore'
      - '/.eslintrc.js'
      - '/tsconfig.eslint.json'
      - '/tsconfig.options.json'
    variants:
      fix:
        args: '--fix'
        local: true

With this option, we’d also need a way to target these tasks, and as such, we’d support a trailing variant on the target ID, scope:task:variant. For example, the above targets would be project:build:release and project:lint:fix respectively.
Pros

The variants are co-located within the task itself. No indirection.
Including the variant in the target ID is a nice experience.
The terminology variants is a very well understood concept.
Large settings (like inputs) can be entirely omitted for variant tasks.

Cons

The YAML nesting is getting too deep.
Task inheritance will be very complicated…
Poor readability, even in that small example above. Now imagine a giant task with 5 variants.
Loading these variant tasks into the task/project graph may be difficult.

Option 2) New extends field in tasks
Another option is to support an extends field within a task’s config, that points to another task (within the current project) to extend from.
The extending task config can define all task settings that the base task would (inputs, outputs, options, etc), except for command, which is replaced with extends. To modify arguments, use the args setting instead. Merge strategies will be applied when merging the base extended and extending tasks.
tasks:
  build:
    command: 'cargo build'
    inputs:
      - 'crates/*/src/**/*'
      - 'crates/*/benches/**/*'
      - 'crates/*/tests/**/*'
      - 'crates/*/Cargo.toml'
      - 'Cargo.toml'
    outputs:
      - 'target/debug/moon'

  build-release:
    extends: 'build'
    args: '--release'
    outputs:
      - 'target/release/moon'
    options:
      mergeOutputs: 'replace'
      runInCI: false

  lint:
    command: 'eslint .'
    inputs:
      - '@globs(sources)'
      - '@globs(tests)'
      - '*.js'
      - '.eslintrc.js'
      - 'tsconfig.json'
      - '/.eslintignore'
      - '/.eslintrc.js'
      - '/tsconfig.eslint.json'
      - '/tsconfig.options.json'

  lint-fix:
    extends: 'lint'
    args: '--fix'
    local: true

Pros

YAML structure hasn’t changed. Much easier to read.
Task inheritance will work as-is.
Large settings (like inputs) can be entirely omitted for variant tasks.
No additional learning curve.

Cons

Extending task must come after the base task, otherwise an error will occur.
No variant syntax for the target identifier.

Option 3) Do nothing
And finally, we can simply do nothing as the current situation is working just fine.
Option 4) Community suggestion
With that being said, we’d love to hear from the community if you have an idea that would work, and that is different from the options above!

I would advocate for option 2, and actually looked for similar functionality myself just today with the extend semantic.
It would be a logical extension of the existing extends at the different file levels

@milesj - there is actually a viable solution that currently works using yaml anchors
An example:
tasks:
  lint: &lint-base # base is reused below
    command: 'eslint src --ext .ts,.js,.cjs,.mjs,.vue'
    inputs:
      - '@group(sources)'
      - blah...
  lint/fix:
    <<: *lint-base # copies all the content in lint into here
    args: '--fix'

That said, while it works, it doesn't feel great and I think we can do better... I would vote for option 2.

Now available in 1.12: https://moonrepo.dev/blog/moon-v1.12


Showing only tabs, if tabs exist

So, the buftabline plugin — which I've used up until recently — shows buffers in the tabline, unless you're actually using tabpages. When tabpages exist, it operates as the normal Vim tabline, showing only tabs.
At the moment, lightline-buffer does its job admirably well … but makes traditional vim tabpages essentially useless, in those few occasions where they were actually quite useful previously. (It's only once in a blue moon when I actually want multiple tab-viewports/windowsets onto my buffers, but when I want them, I really want them, you know?)
tl;dr I'd love to see lightline-buffer effectively disable itself (and revert the tabline to its original behaviour) if there is more than one tabpage in the Vim instance! (Or at least an option for that.)

I've also noticed this while switching from airline.