feather s3 - issue early beta56

Probably my fault, but the s3 feather with psram is not keeping the co2 data updated, seems like it's logging erroneously too, this is the bootup and I've never seen so many connected messages between pings before:

Running on the vlx53l0x branch / build assets. This device: https://io.adafruit.com/tyeth/wippersnapper/feather-esp32s3-4mbflash-2mbpsram13617589
It had a vlx53l0x and SCD41 connected, but seems to fail to start logging again after being booted. For example today I added the lipo fuel sensor to the control panel, and it's updating fine but nothing else is.

I've stuck it on adafruit/main and that connected message is gone, but I'm getting no data. Presumably due to a decode fail, I wonder if I got some legacy metadata I'm unaware of on that device. In the past failures on this and other devices I usually delete the sensors only. I'll give it a day and delete the device tomorrow.

It i2c scans fine

It had a vlx53l0x and SCD41 connected,

Do you know whether the VLX53l0x or the SCD41 is causing the sync packet error to be thrown?

I also wonder if I'm overloading the world, i.e. filling and overflowing the 30second timeperiod between polling, as I have about 8metrics being polled and some fail I guess a bit like #215 taking longer than normal. How do you get that packet logging level of verbosity, just turn up arduino log level? (WS_Debug is defined by default)

I don't have the vlx but just tested the SCD41 resync and it was fine. Will wait on your results but this isn't blocking beta 56.

How do you get that packet logging level of verbosity, just turn up arduino log level? (WS_Debug is defined by default)

Enable debug mode within Adafruit MQTT Library

It's more interesting that I thought, seems to be too big packet, then some decode error. Not examined in detail, just got logging terminal to disk with auto-reconnect working. Here's the problem moment on startup

And here's the log showing from a restart, and there's another forced restart at line 501 to see the repeat.
featherS3_capture_2022-12-06_1356 - Copy.txt

It's more interesting that I thought, seems to be too big packet, then some decode error.

Looks like the packet is 58 bytes, the wippersnapper's mqtt rx buffer is ~ 256 bytes.
Could you take a screenshot of the device page on Adafruit IO so I can replicate your setup?

Looks like the packet is 58 bytes, the wippersnapper's mqtt rx buffer is ~ 256 bytes.

Yeah decode error is 56 bytes, but the buffer length error is after init at the top, still only 201bytes, I wondered if multi-part messages are supported, or if I could have some old device metadata saved. I've not deleted this device yet.

@tyeth  in Arduino IDE, go to Tools->Debug Level->Verbose. Does a SSL buffer error happen there?

Don't see anything related, surprised there's not more debug listed, I put it on Verbose mode.
capture.txt

So I'm seeing similar on the QTPYs2. I'm unsure if it's switching versions from new to old leaving bad message hanging around, or related to power-cycling.
I stick a copy on, lets say 57, delete all the sensors and then create them again, without fahrenheit, then verify data flows. I create a dashboard for temp/humdity, and set the dashboard (and therefore feeds) to public. I then stick the device on a usb powerbank and no data flows. I stick the device on the laptop and it tells me decode packet error.
I also sometimes delete the device entirely before adding sensors again.
While on the powerbank it responds to i2c scan, so I have removed and readded sensors and seen data flow, until replugging usb cable.
None of my testing has been methodical so will revisit when have patience.

if it's switching versions from new to old leaving bad message hanging around

Could be a possible reason, but, we didn't change any protocol buffer messages recently. cc @lorennorman ^
What USB powerbank do you have? Were you using it with beta 56?

powerbank or different mains->usb outlets, just not usb socket with serial listening

I can't think of a way that our protobufs could be changing meaningfully, for these scenarios. We always use backwards compatibility if we make breaking changes and we haven't actually made a breaking change like that in awhile.

Will take a full look at this after PicoW support is merged in.

Alright, duplicated the packet issue
11:07:23.882 -> Signal Msg Tag: Pin Configuration
11:07:23.882 -> Initial Pin Configuration Complete!
11:07:23.882 -> * NEW MESSAGE [Topic: Signal-I2C]:
11:07:23.882 -> 70 bytes.
11:07:23.882 -> ERROR: Unable to decode I2C message
11:07:23.882 -> Publishing to pin config complete...
11:07:24.408 -> Dropped a packet
11:07:24.938 -> Hardware configured successfully!

with the following setup:

Removing the LC7x sensor from this config does not yield the "Unable to decode I2C message" error, will look more into it. Possible packet size problem.

Looks like the max. packet size got changed back to 150 bytes from 512 in commit https://github.com/brentru/Adafruit_MQTT_Library/commit/28435eaf58d85b3c30e55b965a73447d129c7774#diff-240d52c08217f01fd327187461355707b15e7e24e0e6e3da37f0a67fa12006ceL110

fascinating, well spotted! Oh and great work on the picow, just about to stick a copy on now 🥇


StaticBody documentation

Documented StaticBody. Also corrected an error in StaticBody2D documentation

It looks like your branch diverged from the upstream master (because I cherry-picked your Area Documentation commit previously to get rid of the merge commits). You should also try to update your fork with git pull --rebase godotengine master, which should avoid creating those "Merge remote-tracking branch" commits.
Could you try to clean your branch to keep only the last commit? This might work:
git format-patch -1 // Should make a patch out of your "StaticBody documentation" commit.
git reset --hard godotengine/master
git am 0001-StaticBody*  // reapply your coomit
git log  // Check that it worked
git push --force origin master  // force update your branch

See also http://docs.godotengine.org/en/latest/contributing/updating_the_class_reference.html#keeping-your-local-clone-up-to-date

Branch cleaned


Remove duplicate aircraft movement

Aircraft are moving twice the speed which they should be based on assigned airspeeds in knots.  This looks to be unintentional and is fixed by this patch.
Given the difference in gameplay, I'm wondering if this should be offset somehow.  The immediate thought is defaulting to a 2x warp so real time movement ends up approximately the same.

Well shit... I'm not sure what should be done here. This is obviously a bug and my fault but the gameplay will be much simpler... it might be good anyway since there were lots of people complaining about it being too fast. I won't merge it just yet.

A solution which works for me is to set the base aircraft generation rate to 1 thereby doubling the number of aircraft in the game.  The end result is the same number of aircraft through a given point in the same amount of real time.

Sounds good.


Create scripts to patch DPDK and ES2K SDEs

Implement scripts to create a TARGET file in the SDE share directory that specifies the target type. Bazel uses this file to verify the SDE type when building ES2K targets.

Implement scripts to patch several SDE target libraries so infrap4d can be loaded without requiring the LD_LIBRARY_PATH environment variable. Note that P4 Control Plane needs to be built with the RPATH option enabled for this to work.

LGTM logically
We should add documentation in dpdk and es2k guide about how to compile the recipe with rpath enabled and introduced an option --with-rpath in setup_env.sh for both dpdk and es2k scripts. If enabled, these patches will be applied and LD_LIBRARY_PATH will not be set. If this isn't heavily tested we can say this is an experimental support.
Thoughts?

There's already an --rpath option in make-all.sh. It's been in the innersource code base for a couple of months (but not in the make-all help text.)
I recently pushed a PR that changes the CMake default to building with RPATH enabled. The make-all script defers to CMake unless the user explicitly specifies --rpath or --no-rpath, in which case it overrides the CMake default.
My thinking was that the patch files are strictly voluntary ("don't monkey with the SDE without my express request"). You seem to be in favor of applying them automatically ("set up the system as optimally as possible"). Both are valid points of view. Perhaps we should discuss this with a larger group.

I recently learned of a chrpath command that changes only the RUNPATH. This might be preferable to patchelf.


Gameforce Chi WiFi & Screen Issues

Hello I love my Gameforce Chi especially with ArkOs on it, my favourite handheld even over the new RG351MP which I have too, but after the recent OTA update I been having some issues, the WiFi doesn't turn on at all, when i enable it the screen says WiFi has been enabled but when I click the start button it says it's show's it's off, when I click Network Info in the settings menu, it just flashes & does nothing.

and if I click WiFi

It opens open but doesn't show any connections, just a (%) symbol

I been using the device without the WiFi for a few days but today when I switched it on the ArkOS logo flashes up as usual but now the screen is just blank, can see it's on it's backlit but blank, I will leave the device on leave it on & let it lose battery completely drain, then will charge it, see if it turns on, I think the battery is some how also causing the WiFi issues too.

I never made no changes to the settings for a while now, so I think it might be related to the new update and I think there's something a connection with battery & WiFi having issues. Appreciate all your hardwork thank you, I don't want to reflash the firmware again lol I have an Old XP PC & it doesn't read drivers so I hope I can avoid that, also I'm new to this, learning along the way, any assistance would be appreciated.

Because I have a old XP PC even my flashing tool has to be win32 version, and because XP can't all access SD card partitions I usually rely on WiFi to transfer files, with my RG351V & MP they have 2 SD cards so it's not a issue with those with my circumstances. It's a lot of work lol, transfering files over one by one via WiFi but for it's my only option as yet, so I hope the fresh install fixes the WiFi, tried the stock SD that came with emulec on it the WiFi works on that so it's not hardware issue thankfully.
Before I do the fresh install I downloaded software to check my partitions of the SD card, I don't know what exactly to press to fix or repair partitions, it's running a surface test for now will check back later. Missed using this device because it's my favourite especially with ArkOs. Thanks again & please don't stop your work on this amazing device, like I mentioned before it weirdly is my favourite even over the powkiddy rgb10 max, 351MP, OGS etc ..

My unit is also a Desert Tan color as well.  I wasn't a fan of the color options but the Desert Tan has grown on me.  I really like the Chi.  Just wish it was a little more pocketable but if it was, it might be as comfortable to use for long play sessions.

On my Chi I only have 2 cores for PS1, the PCSX Rearmed core (retroarch32) & the Ductstation (retroarch) if follow the instructions from that picture above, the Rumble works for a few seconds then stops working, that's using the PCSX Rearmed core.

On my Anbernic RG351V I tested the same game using the same PCSX Rearmed core, the same instructions I followed as above, the rumble didn't work at all. But when I switched to the PCSX Rearmed Rumble core & done the same it worked great all throughout the game (level)

I tested the same game on both devices it's a Mario Kart type game but with snowboards so there's a lot of vibration throughout. On the Chi it works for a few seconds then no longer works. On the RG351 with same PCSX Rearmed core it doesn't work, but with the Rumble core it works perfectly all throughout the level, played the whole level to test on all.
That's why I was under the impression I needed the rumble core for my Chi for it to work. I read on Reddit & other forums many people said rumble didn't work for them too using that method from the picture.

Can I enquire if variable rumble strength is supported? Sorry if this isn't the correct place but the issue seemed relevant.

If the core supports variable rumble strength, it might.  I haven't confirmed this though.

Yeah, I'm trying to confirm it myself. No luck so far!


Print an error message if the Istio installer fails for a given release

Currently the same message is printed even if the Istio installer fails to download
a release. This message says that Istio was downloaded successfully.
Fixes: #18215
And to help us figure out who should review this PR, please
put an X in all the areas that this PR affects.

@johnma14: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

integ-new-install-k8s-tests_istio
8c8b1a83e3b7dd454d08009e5a54a02aedafeb34
link
/test integ-new-install-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@johnma14: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

integ-new-install-k8s-tests_istio
8c8b1a83e3b7dd454d08009e5a54a02aedafeb34
link
/test integ-new-install-k8s-tests_istio

pilot-multicluster-e2e_istio
8c8b1a83e3b7dd454d08009e5a54a02aedafeb34
link
/test pilot-multicluster-e2e_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@johnma14: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

integ-new-install-k8s-tests_istio
8c8b1a83e3b7dd454d08009e5a54a02aedafeb34
link
/test integ-new-install-k8s-tests_istio

pilot-multicluster-e2e_istio
8c8b1a83e3b7dd454d08009e5a54a02aedafeb34
link
/test pilot-multicluster-e2e_istio

pilot-e2e-envoyv2-v1alpha3_istio
8c8b1a83e3b7dd454d08009e5a54a02aedafeb34
link
/test pilot-e2e-envoyv2-v1alpha3_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@johnma14: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

integ-new-install-k8s-tests_istio
8c8b1a83e3b7dd454d08009e5a54a02aedafeb34
link
/test integ-new-install-k8s-tests_istio

pilot-multicluster-e2e_istio
8c8b1a83e3b7dd454d08009e5a54a02aedafeb34
link
/test pilot-multicluster-e2e_istio

pilot-e2e-envoyv2-v1alpha3_istio
8c8b1a83e3b7dd454d08009e5a54a02aedafeb34
link
/test pilot-e2e-envoyv2-v1alpha3_istio

lint_istio
8c8b1a83e3b7dd454d08009e5a54a02aedafeb34
link
/test lint_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@johnma14: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

integ-new-install-k8s-tests_istio
8c8b1a83e3b7dd454d08009e5a54a02aedafeb34
link
/test integ-new-install-k8s-tests_istio

pilot-multicluster-e2e_istio
8c8b1a83e3b7dd454d08009e5a54a02aedafeb34
link
/test pilot-multicluster-e2e_istio

pilot-e2e-envoyv2-v1alpha3_istio
8c8b1a83e3b7dd454d08009e5a54a02aedafeb34
link
/test pilot-e2e-envoyv2-v1alpha3_istio

lint_istio
8c8b1a83e3b7dd454d08009e5a54a02aedafeb34
link
/test lint_istio

integ-telemetry-k8s-tests_istio
8c8b1a83e3b7dd454d08009e5a54a02aedafeb34
link
/test integ-telemetry-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

@johnma14: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

pilot-multicluster-e2e_istio
8c8b1a83e3b7dd454d08009e5a54a02aedafeb34
link
/test pilot-multicluster-e2e_istio

integ-new-install-k8s-tests_istio
8c8b1a83e3b7dd454d08009e5a54a02aedafeb34
link
/test integ-new-install-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


Reddit PCIe Atomic Question

Answer question from reddit on PCIe Atomic requirements at https://www.reddit.com/r/ROCm/comments/141ehjb/does_rocm_still_require_atomic_ops/

Responded

So this is no longer true?
"Beginning with ROCm 1.8, GFX9 GPUs (such as Vega 10) no longer require PCIe atomics. We have similarly made more options available for many PCIe lanes. GFX9 GPUs can now be run on CPUs without PCIe atomics and on older PCIe generations, such as PCIe 2.0. This is not supported on GPUs below GFX9, e.g. GFX8 cards in the Fiji and Polaris families."
https://docs.amd.com/bundle/AMD_ROCm_Release_Notes_v4.5/page/Hardware_and_Software_Support.html
This is probably the same issue as https://github.com/RadeonOpenCompute/ROCm/issues/2156

Now GFX9 devices without PCIe atomics are accepted by rocminfo. I think that only GFX8 devices are rejected.

It wasn't needed until rocm 5.2, then 5.3 put the requirement back.
In the docs it's mentioned as a requirement here https://docs.amd.com/en/latest/release/gpu_os_support.html#cpu-support
Recently it was introduced a workaround in rocm 5.7 https://docs.amd.com/en/latest/release.html#non-hostcall-hip-printf
It's been discussed here https://github.com/pytorch/pytorch/issues/103973

As of ROCm 6.2, a PCIe Gen 3 Enabled CPU with PCIe atomics support is required to run ROCm. To check if your system supports PCIe atomics, run the following command
grep flags /sys/class/kfd/kfd/topology/nodes/*/io_links/0/properties

If the command returns a 1 for your GPU device, the system configuration does in fact support PCIe atomics.
For more information on how ROCm uses PCIe atomics, please visit the documentation here. I will close out this ticket as the original question on reddit has also been answered.


Updated to run in Bro 2.4

Not completely sure this is the best way to setup the $orig and $resp child records of the conn record but it is working.

Thanks Brian-- I updated this internally but neglected to update the repo. There's actually an easier way to handle this that should make it compatible with any version of Bro 2.x, so I'm going to close this request and update the file with that change.


[SPARK-23321][SQL]: Validate datasource v2 writes

What changes were proposed in this pull request?
DataSourceV2 does not currently apply any validation rules when writing. Other write paths attempt to validate that a data frame can be written to a target table or path and these changes add the same logic to v2.
This updates the logical plan to use InsertIntoTable and applies the insert preprocess rules to writes. It also adds a conversion rule from InserIntoTable to DataSourceV2Write because InsertIntoTable cannot be used in logical plans after analysis.
InsertIntoTable is not necessarily the right logical plan. It assumes that the table exists and can report its schema.
How was this patch tested?
Added a test that fails analysis in the preprocess rule.

Test build #87006 has started for PR 20488 at commit 3580daf.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/542/
Test PASSed.

Test build #87006 has finished for PR 20488 at commit 3580daf.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class NoopCommand() extends RunnableCommand

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/87006/
Test PASSed.

Build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/1291/
Test PASSed.

Closing this in favor of #21305.


LiveHdtDatasource tests intermittently finalize before the queries have run

I am not quite sure how to use the framework. I have an asynchronous function that calls itShouldExecute, but the tests often finalize -and succeed- before the queries have been run and the results verified.
Where did you read up on testing asynchronous stuff, @RubenVerborgh? : )

Can you give an example of such a test? I suspect you are not providing a done argument.

The set of tests starting in LiveHdtDatasource.js:220.
Specifically, The tests run updates first, and once the updates have succeeded, run the actual tests.
I guess that since the function afterUpdates runs asynchronously, mocha doesn't 'wait' for it to run. So sometimes it runs and sometimes it doesnt.
I read somewhere that we can use 'promises' for this sort of thing, but I haven't found useful documentation.

I would expect:
it('should not show any removed triples, and show all added',function(done) {

and then done being called after all is finished.
But in general, your test is doing way too much. Each itShouldExecute should be a separate it under a describe.

You can read more at:

http://mochajs.org/#asynchronous-code (not the Promises part)
http://mochajs.org/#asynchronous-hooks

Fixed by 8aa3670.


[BEAM-763] Update BigQueryIOTest.testBuildSourceWithTableAndSqlDialect to NeedsRunner tests

BigQueryIOTest doesn't work with RunnableOnService:
https://issues.apache.org/jira/browse/BEAM-436
However, we didn't change it to NeedsRunner when backport PR from Dataflow.

R: @dhalperi
CC: @lukecwik

Is this really the issue? That did not line up with the error message I saw.
If so, why is this test okay? https://github.com/peihe/incubator-beam/blob/3965dbdb184075333086a87448b2f153e66654e2/sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/bigquery/BigQueryIOTest.java#L1661

testPassThroughThenCleanup only runs a ParDo, which doesn't require gcs temp location.

I think that test does not meet the "interesting" quality bar for RunnableOnService. Can you make them both NeedsRunner?

Done
PTAL

LGTM, merged. Thanks!


Blocks ids comatibility

*Description of issue:
on 1.12.2 with latest jobs I get this:
[15:40:14] [Server thread/WARN]: [Jobs] Job Farmer has an invalid Break type property: WHEAT (wheat-7)! Material must be a block!
[15:40:14] [Server thread/WARN]: [Jobs] Job Farmer has an invalid Break type property: MELON (melon)! Material must be a block!
[15:40:14] [Server thread/WARN]: [Jobs] Job Farmer has an invalid Place type property: MELON (melon)! Material must be a block!
Have tried melon_block, legacy_melon_block and nothing helps.
Server Type (Spigot/Paperspigot/etc):
spigot 1.12.2 final build and paper 1.12.2 -1618
Server Version (using /ver):
final build

WHEAT to wheat-7
MELON to melon

Already tried, doesn't works.

Still this error, but with wheat-7 and melon_block


Failed to create symbolic link, using become, permission denied

Describe the bug
When using "become" to execute commands as www-data deployer is able to create all folders with the right owner (www-data) but unfortunately is not able to create a symlink. When executing the same shell command directly on the machine with the same user (www-data) I'm able to create the symlink successfully. Seems that this "task" is not running with the same user as expected.
Expected behavior
Creating symlink successfully cause parent folder belongs to "become"-user.
Environment

Deployer version: 6.7.3
PHP version: 7.4
Deployment target(s) OS: debian buster

Content of deploy.php
...
// Hosts
host('host1', 'host2')
    ->user('deploy')
    ->become('www-data')
    ->stage('staging')
    ->set('default_branch', 'develop')
    ->set('bin/php', function () {
        return locateBinaryPath('php7.4');
    })
    ->configFile('~/.ssh/config')
    ->identityFile('~/.ssh/id_rsa')
    ->forwardAgent(true)
    ->multiplexing(true)
    ->addSshOption('UserKnownHostsFile', '/dev/null')
    ->addSshOption('StrictHostKeyChecking', 'no')
    ->set('branch', function () {
        return input()->getOption('branch') ?: get('default_branch');
    })
    ->set('symfony_env', 'staging')
    ->set('env', function () {
        return [
            'SYMFONY_ENV' => get('symfony_env')
        ];
    })
    ->set('deploy_path', '/data/pim/{{stage}}')
    ->add('writable_dirs', ['/data/pim/{{stage}}']);
...

Output log with enabled option for verbose output -vvv
[host1] > export SYMFONY_ENV='staging'; cd /data/pim/staging && (echo '20200418111935,20200418_111935' >> .dep/releases)
[host1] > export SYMFONY_ENV='staging'; cd /data/pim/staging && (mkdir /data/pim/staging/releases/20200418_111935)
[host1] > export SYMFONY_ENV='staging'; cd /data/pim/staging && (if [[ $(man ln 2>&1 || ln -h 2>&1 || ln --help 2>&1) =~ '--relative' ]]; then echo 'true'; fi)
[host1] < true
[host1] > export SYMFONY_ENV='staging'; cd /data/pim/staging && (ln -nfs --relative /data/pim/staging/releases/20200418_111935 /data/pim/staging/release)
[host1] < ln: failed to create symbolic link '/data/pim/staging/release': Permission denied
➤ Executing task deploy:failed
• done on [host1]
• done on [host1]
✔ Ok [0ms]
➤ Executing task deploy:unlock
[host1] > export SYMFONY_ENV='staging'; rm -f /data/pim/staging/.dep/deploy.lock
• done on [host1]
[host1] > export SYMFONY_ENV='staging'; rm -f /data/pim/staging/.dep/deploy.lock
• done on [host1]
✔ Ok [148ms]

In Client.php line 103:

  [Deployer\Exception\RuntimeException (1)]
  The command "export SYMFONY_ENV='staging'; cd /data/pim/staging && (ln -nfs --relative /data/pim/staging/releases/20200418_111935 /data/pim/staging/release)" failed.

  Exit Code: 1 (General error)

  Host Name: host1

  ================
  ln: failed to create symbolic link '/data/pim/staging/release': Permission denied

Exception trace:
  at phar:///usr/local/bin/dep/src/Ssh/Client.php:103
 Deployer\Ssh\Client->run() at phar:///usr/local/bin/dep/src/functions.php:304
 Deployer\run() at phar:///usr/local/bin/dep/recipe/deploy/release.php:132
 Deployer\Deployer::Deployer\{closure}() at n/a:n/a
 call_user_func() at phar:///usr/local/bin/dep/src/Task/Task.php:105
 Deployer\Task\Task->run() at phar:///usr/local/bin/dep/src/Executor/SeriesExecutor.php:60
 Deployer\Executor\SeriesExecutor->run() at phar:///usr/local/bin/dep/src/Console/TaskCommand.php:144
 Deployer\Console\TaskCommand->execute() at phar:///usr/local/bin/dep/vendor/symfony/console/Command/Command.php:255
 Symfony\Component\Console\Command\Command->run() at phar:///usr/local/bin/dep/vendor/symfony/console/Application.php:924
 Symfony\Component\Console\Application->doRunCommand() at phar:///usr/local/bin/dep/src/Console/Application.php:133
 Deployer\Console\Application->doRunCommand() at phar:///usr/local/bin/dep/vendor/symfony/console/Application.php:265
 Symfony\Component\Console\Application->doRun() at phar:///usr/local/bin/dep/vendor/symfony/console/Application.php:141
 Symfony\Component\Console\Application->run() at phar:///usr/local/bin/dep/src/Deployer.php:326
 Deployer\Deployer::run() at phar:///usr/local/bin/dep/bin/dep:134
 require() at /usr/local/bin/dep:4

Additional context: ls -la of deploy_path
drwxr-xr-x 5 www-data www-data 4096 Apr 18 11:19 .
drwxr-xr-x 4 deploy   deploy   4096 Apr 18 11:19 ..
drwxr-xr-x 2 www-data www-data 4096 Apr 18 11:19 .dep
lrwxrwxrwx 1 www-data www-data   24 Apr 18 11:19 release -> releases/20200418_111934
drwxr-xr-x 3 www-data www-data 4096 Apr 18 11:19 releases
drwxr-xr-x 2 www-data www-data 4096 Apr 18 11:19 shared

Closing this issue as inactive. If you still have this problem, please open a new issue.


[suggestion] add -testall to check latecy to each and every server available

it would be great if you add the feature to test the latency of the servers available/listed in the .md file so we can choose the best server from our region

You will see these if you set the log level to 2.

isn't the default log level is 2 already?
i ask for this feature because currently if i commented out the server names, it only replied with timeouts

If you get a timeout, the server is not reachable. Maybe due to firewall rules.

or maybe because some other things...because, when i add the stamp to static list, it worked just fine

Unfortunately, I was not able to reproduce this or to find a rationale for this.

possibly because i am currently running tor downloads that hog almost all my bandwidth allocation..
also, when i try to open censored web page, sometimes the dns request is redirected to my isp's dns.

Also, if you are using force_tcp: many servers still run older versions of the software that don't support sending certificates over TCP. So you get a TIMEOUT.

i am not using the force_tcp flag.

Sadly I think this is really something specific to your setup, and your network congestion due to your Tor downloads may very well be causing this.
Your ISP may be redirecting traffic based on IP addresses in addition to DNS. In that case, dnscrypt-proxy cannot really help, only a VPN can.

the only one that i cant use vpn and dnscrypt is my campus..dont know how they really set the network up(via biznet, indonesian ISP).
my home setup can work unless there are tor downloads..sometimes using ISP's dns server(telkom, indihome, also indonesian ofc)


Update PULL_REQUEST_TEMPLATE.md

The current link is 404.

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] The PR has modified HISTORY.rst describing any customer-facing, functional changes. Note that this does not include changes only to help content. (see Modifying change log).

[ ] I adhere to the Command Guidelines.

View a preview at https://prompt.ws/r/Azure/azure-cli/5874
This is an experimental preview for @microsoft users.


Add package.json entry point and bin file

Hi,
I have added a main and a start script to the built package.json and deleted the other scripts because I think that in production we don't need development scripts and most of then don't work anymore.

I have added a bin file to start the dev server

not gonna to merge this PR, since these updates can be easily done with CI


DS-2650: JSPUI Recent Submission header only when needed

see https://jira.duraspace.org/browse/DS-2650

Obvious fix, test & it works, so +1. Merging now.
Thanks @akinom !


Flutter build IPA with --export-options-plist not working

I have a white-label app that needs to be built from the command line. I am using "flutter build IPA" with an export options list to specify code signing specifics. It appears that the values are not getting passed to xcodebuild and the build fails because it doesn't find the provisioning profile.
error: No profiles for 'com.foundationtennis.app' were found: Xcode couldn't find any iOS App Development provisioning profiles matching 'com.foundationtennis.app'. Automatic signing is disabled and unable to generate a profile. To enable automatic signing, pass -allowProvisioningUpdates to xcodebuild. (in target 'Runner' from project 'Runner')

NOTE: if I open the XCode workspace and manually set the signing capabilities, flutter build IP works fine.
Steps to Reproduce

Create ExportOptions.plist file like this:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>generateAppStoreInformation</key>
    <false/>
    <key>method</key>
    <string>app-store</string>
    <key>provisioningProfiles</key>
    <dict>
      <key>com.foundationtennis.app</key>
      <string>a38ecde3-53bc-4910-8068-604b01665598</string>
    </dict>
    <key>signingCertificate</key>
    <string>Apple Distribution</string>
    <key>signingStyle</key>
    <string>manual</string>
    <key>stripSwiftSymbols</key>
    <true/>
    <key>teamID</key>
    <string>844NRE74R7</string>
    <key>uploadBitcode</key>
    <false/>
    <key>uploadSymbols</key>
    <true/>
  </dict>
</plist>

Run flutter build IPA like so:

flutter build ios --release --verbose --export-options-plist=/Users/george/Develop/flutter_builds/foundation_tennis_v4/ios/ExportOptions.plist

See the output from the previous command below

Logs
see attached for verbose output

flutterbuildipa.log

@gkustas
From your log, I see there is an error with CocoaPods:
Error output from CocoaPods:
           ↳
[        ]     Ignoring ffi-1.15.4 because its extensions are not built. Try: gem pristine ffi --version 1.15.4
               Ignoring ffi-1.12.2 because its extensions are not built. Try: gem pristine ffi --version 1.12.2
               Ignoring ffi-1.15.4 because its extensions are not built. Try: gem pristine ffi --version 1.15.4

Please see this StackOverflow answer for more details: https://stackoverflow.com/questions/64698820/ignoring-ffi-1-13-1-because-its-extensions-are-not-built-try-gem-pristine-ffi
Also, the valid build command is:
flutter build ipa --export-options-plist=path/to/ExportOptions.plist

Please see this as reference.

As I mentioned in my post, the "flutter build ipa" command worked after manually setting the capabilities in the code workspace. I have a build script that runs "flutter create", copies source files from another project, and edits other files. Then it tries to run "flutter build ipa".
Also, what is wrong with my usage of the --export-options-plist? I'm using the fully qualified path as specified in my post.
flutter build ios --release --verbose --export-options-plist=/Users/george/Develop/flutter_builds/foundation_tennis_v4/ios/ExportOptions.plist

Also note: If you examine the verbose log output, and search for all occurrences of "xcodebui" (the command that fails), you can see that it isn't using the export options:
[   +2 ms] executing: [/Users/george/Develop/flutter_builds/foundation_tennis_v4/ios/Runner.xcodeproj/] /usr/bin/arch -arm64e xcrun xcodebuild -project /Users/george/Develop/flutter_builds/foundation_tennis_v4/ios/Runner.xcodeproj -scheme Runner -configuration Release -destination generic/platform=iOS -showBuildSettings BUILD_DIR=/Users/george/Develop/flutter_builds/foundation_tennis_v4/build/ios
[        ] executing: [/Users/george/Develop/flutter_builds/foundation_tennis_v4/ios/Runner.xcodeproj/] /usr/bin/arch -arm64e xcrun xcodebuild -project /Users/george/Develop/flutter_builds/foundation_tennis_v4/ios/Runner.xcodeproj -scheme Runner -configuration Release -destination generic/platform=iOS -showBuildSettings BUILD_DIR=/Users/george/Develop/flutter_builds/foundation_tennis_v4/build/ios
[+2790 ms] Command line invocation:
               /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -project /Users/george/Develop/flutter_builds/foundation_tennis_v4/ios/Runner.xcodeproj -scheme Runner -configuration Release -destination generic/platform=iOS -showBuildSettings BUILD_DIR=/Users/george/Develop/flutter_builds/foundation_tennis_v4/build/ios

@gkustas Thanks for providing more info. Labeling the issue for further insights from the team.

After looking into this further, I know what is going on.  I also have a proposal for the Flutter team that will allow me and others to create and build a Flutter application all from the command line. First, the explanation:
"flutter build ipa" uses xcodebuild twice.  The first time it creates the archive bundle like this:
xcodebuild -workspace Runner.workspace <more parameters follow>

Then it exports the ipa from the archive like this:
xcodebuild -exportArchive -exportOptionsPlist <more parameters follow>

The problem is that the first time flutter calls xcodebuild, it expects that the workspace has already been configured for code signing. If you want to create and build entirely from the command line with no human intervention, you are out of luck. xcodebuild will fail with the error I posted above (No profiles for 'xxx' were found: Xcode couldn't find any iOS App Development provisioning profiles matching 'xxx').
MY PROPOSAL: flutter build ipa should accept additional code signing parameters and pass them on to xcodebuild.  They match the build properties found in the code project file located in ios/Runner/Runner.xcodeproj/project.pbxprod

DEVELOPMENT_TEAM
CODE_SIGN_STYLE
PROVISIONING_PROFILE_SPECIFIER

NOTE: These parameters are NOT documented in the xcodebuild -h help info, but they were added in XCode version 8. Read more about code signing changes in XCode here.
My solution to the problem was to install a node plugin called cordova-node-xcode and use it to edit the workspace project config file located in ios/Runner/Runner.xcodeproj/project.pbxprod. I added the build properties specified above. I called "flutter build ipa", and everything was built and exported properly. I've included my nodejs code below in case anyone wants to use it. NOTE: the code also demonstrates how to obtain the code signing properties by extracting them from the actual mobile provision files.
async function buildIt(brand) {
	return new Promise(async (resolve) => {
		try {
			var brandTargetFolder = `${TARGET_FOLDER}/${brand}`
			var brandSourceFolder = `${BRANDS_FOLDER}/${brand}`
			// *** IOS first...
			if (argv.platform == "ios" || argv.platform == "all") {
				// get the provisioning profile(s). We'll export both distribution and debug
				var provProfiles = fs.readdirSync(`${brandSourceFolder}`).filter(function (file) {
					return file.toLowerCase().endsWith(".mobileprovision")
				})
				var profileName
				var profileUUID
				var teamID
				var teamName
				provProfiles.forEach(f => {
					var fileName = f.split(".")[0]
					var profilePlistData = execSync(`openssl smime -inform der -verify -noverify -in "${brandSourceFolder}/${f}"`, { "cwd": `${brandTargetFolder}/ios` })
					var profile = plist.parse(profilePlistData)
					if (profile["Entitlements"]["aps-environment"] == "production") {
						profileUUID = profile["UUID"]
						profileName = profile["Name"]
						teamID = profile["TeamIdentifier"][0]
						teamName = profile["TeamName"]
						// make sure the mobile provision is installed
						var profilePath = `${HOME}/Library/MobileDevice/Provisioning Profiles/${profileUUID}.mobileprovision`
						if (!fs.existsSync(profilePath)) {
							console.log("installing mobile provision file: " + f)
							fs.copySync(`${brandSourceFolder}/${f}`, profilePath)
						}
					}
					else {
						console.log(warning(`Found debug mobile profile '${profile["UUID"]}', but only building distribution archives.`))
					}
				})
				if (null == profileUUID) {
					console.log(error("Production mobile provisioning profile not found in " + brandSourceFolder))
					resolve(1)
					return
				}
				else {
					console.log(`creating export options list...`)
					var exportOptions = plist.parse(fs.readFileSync(`${TOOLS_FOLDER}/ExportOptions.plist`))
					var profileObject = new Object()
					profileObject[_config.package] = profileUUID
					exportOptions.provisioningProfiles = profileObject
					plist.writeFileSync(`${brandTargetFolder}/ios/ExportOptions.plist`, exportOptions)
					//edit xcode project to include signing capabilities
					console.log(`editing xcode project file to include provisioning profile ${profileName}(${profileUUID})`)
					var projectPath = `${brandTargetFolder}/ios/Runner.xcodeproj/project.pbxproj`
					fs.appendFileSync(projectPath, '\n')
					var pbxProj = xcode.project(projectPath)
					pbxProj.parse(error => {
						if (!error) {
							pbxProj.addBuildProperty('DEVELOPMENT_TEAM', teamID)
							pbxProj.addBuildProperty('CODE_SIGN_IDENTITY', "\"iPhone Distribution\"")
							pbxProj.addBuildProperty('CODE_SIGN_STYLE', "Manual")
							pbxProj.addBuildProperty('PROVISIONING_PROFILE_SPECIFIER', profileName)
							fs.writeFileSync(projectPath, pbxProj.writeSync())
						} else {
							console.log(error)
						}
					})

					// build the IPA
					await shell(`flutter build ipa --release --no-codesign --export-options-plist "${brandTargetFolder}/ios/ExportOptions.plist"`, {"cwd" : brandTargetFolder})

				}
			}
	})
}

Most of the iOS Flutter commands assume that you have either set up code signing in the Xcode project, or it will drop back to flutter config ios-signing-cert.  You can work around this by setting environment variables with the FLUTTER_XCODE_* prefix, like FLUTTER_XCODE_ DEVELOPMENT_TEAM https://github.com/flutter/flutter/pull/43553.  Those variables will be passed into the xcodebuild invocations--we use this in our own CI system.
This is similar to https://github.com/flutter/flutter/issues/106612 but not quite the same, it should all build with --export-options-plist.

Thank you @jmagman! I wish I knew this before I jumped through all of those hoops, but I guess I didn't scour the existing issues very well. :-)
This is a much better solution than my proposal.

We're working on making the iOS release process less painful, and require less Xcode spelunking.  Thanks for your investigation!

We have just spent days with @petrnymsa trying to get ipa signing to work propertly in our CI/CD pipeline. Our pipeline works similarly to the flutter build ipa command, and this is what we have learned:
As @gkustas correctly says, everytime xcodebuild is called, it tries to do codesigning:

"flutter build ipa" uses xcodebuild twice. The first time it creates the archive bundle like this:
xcodebuild -workspace Runner.workspace <more parameters follow>
Then it exports the ipa from the archive like this:
xcodebuild -exportArchive -exportOptionsPlist <more parameters follow>
The problem is that the first time flutter calls xcodebuild, it expects that the workspace has already been configured for code signing.

So either the codesigning on the specified project/target, or explicit code-signing parameters (CODE_SIGN_STYLE, PROVISIONING_PROFILE_SPECIFIER) must be properly configured, otherwise it fails. As it does for the OP.
The specified -exportOptionsPlist parameter is only accepted by xcodebuild -exportArchive command, and it only affects generation (and codesigning) of the final .ipa file (https://www.matrixprojects.net/p/xcodebuild-export-options-plist/).
The workaround we have found is to explicitly disable signing of the .xcarchive file when -exportOptionsPlist is used:
xcodebuild -workspace Runner.workspace  CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO <more parameters follow>

The only signing that happens in the build process is then in the final step when .ipa file is created using xcodebuild -exportArchive -exportOptionsPlist ....

The workaround we have found is to explicitly disable signing of the .xcarchive file when -exportOptionsPlist is used:
xcodebuild -workspace Runner.workspace  CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO <more parameters follow>

The only signing that happens in the build process is then in the final step when .ipa file is created using xcodebuild -exportArchive -exportOptionsPlist ....

Oh interesting that building the xcarchive with no codesigning and then re-codesigning during -exportArchive works, I wouldn't have thought so...

The solution to this problem was resolved here: #43553
Thanks to @jmagman who mentioned it earlier in this thread. It makes everything easier - just set the environment variables FLUTTER_XCODE_ * (eg. FLUTTER_XCODE_DEVELOPMENT_TEAM) in your shell before calling flutter build ipa.

I agree that this is an absolute fool-proof way to do that, but it is more of a workaround than a solution of the root cause.

Oh interesting that building the xcarchive with no codesigning and then re-codesigning during -exportArchive works, I wouldn't have thought so...

A friend pointed out to me that .ipa files can be resigned - e.g. you can have a pipeline that builds .ipa signed with App Distribution certificate and resign it as Ad-Hoc to avoid building the app twice. So the idea was that all previous signing during build must be irrelevant for the final .ipa and it really is.

Thanks for the tip, that simplifies things.

The solution to this problem was resolved here: #43553
Thanks to @jmagman who mentioned it earlier in this thread. It makes everything easier - just set the environment variables FLUTTER_XCODE_ * (eg. FLUTTER_XCODE_DEVELOPMENT_TEAM) in your shell before calling flutter build ipa.

I don't know exactly how to do it.
Can you elaborate a bit more?
(Where, how and which environment variables should be added..)

@Hixie is there any ETA for any fix to this issue?

Hi, any news on this issue?
Current, I forced split build command to:
flutter build ipa --release --no-codesign
xcodebuild -exportArchive ...
I think it is good to check allow export ipa even with --no-codesign (now it will error "Codesigning disabled with --no-codesign, skipping IPA)

I have used similar approach where I make unsigned archive first via command line and then use fastlane "build_app" method to sign the archive.

I was able to successfully export ipa file using manuual sign.
Here is the code I used to build...
      # Build and sign the ipa using a single flutter command
      - name: Building IPA
        run: |
          flutter build ios --release --no-codesign
          xcodebuild -workspace ios/Runner.xcworkspace  CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO -scheme Runner -configuration Release -destination "generic/platform=iOS" archive -archivePath build/ios/Runner.xcarchive
          xcodebuild -exportArchive -archivePath build/ios/Runner.xcarchive -exportOptionsPlist ios/ExportOptions.plist -exportPath build/ios/ipa/Runner.ipa

Anyway I could not find a way to export using flutter build ipa.
Any thoughts on this?

Try this

Open xcode and uncheck automatically manage provision profile

Create a file called ExportOptions.plist

Mention associated provisioning profiles in this file

Run

flutter build ipa --export-options-plist=absolute/path/to/ExportOptions.plist
This should work

For anyone still getting this in their GitHub actions Error (Xcode): No profiles for 'your.bundle.id' were found: Xcode couldn't find any iOS App Development provisioning profiles matching 'your.bundle.id', after following the instructions above.
You must save the provisioning profile settings in your xcode project settings project.pbxproj.

I recently was able to fix this by

Using fastlane match to setup the code signing by downloading the profiles starting with keyword match
Using update_code_signing command to update the provisioning profile (again the profile names start with match)
Using 'flutter build ipa --export-options-plist=/path/to/plist' . Here the plist also has a dictionary node specifying bundle id and profile name. The plist also had entitlement node info.

I recently was able to fix this by

Using fastlane match to setup the code signing by downloading the profiles starting with keyword match
Using update_code_signing command to update the provisioning profile (again the profile names start with match)
Using 'flutter build ipa --export-options-plist=/path/to/plist' . Here the plist also has a dictionary node specifying bundle id and profile name. The plist also had entitlement node info.

This way, i created the ipa in one shot!
However, i am still figuring out how to include xcode live widget extension also.

@abhishekbedi1432 Any luck since you originally posted this? Also trying something similar right now.

@rhinck can you file a new issue describing what you're having trouble with?  Even if there's no tooling work for Flutter to do, we can consider it a request for better documentation.  Live Activities requires using WidgetKit, so you can't create native UIs, but it's not hard to share data between your app and app extensions.  Check out https://docs.flutter.dev/platform-integration/ios/app-extensions.
This issue isn't the right place to discuss it.

Any update on this ? I have 2 DevProfile and AdHoc profile, when I run this command it always ask DevProfile, not AdHoc profile on CI CD and local terminal
I am running command flutter build ipa --target=lib/main_dev.dart --flavor citridotDev --release --export-options-plist=scripts/dev/ExportOptions.plist
plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>compileBitcode</key>
	<false/>
	<key>destination</key>
	<string>export</string>
	<key>method</key>
	<string>ad-hoc</string>
	<key>provisioningProfiles</key>
	<dict>
		<key>com.app.example.dev</key>
		<string>MyDevAdHoc</string>
	</dict>
	<key>signingCertificate</key>
	<string>Apple Distribution</string>
	<key>signingStyle</key>
	<string>manual</string>
	<key>stripSwiftSymbols</key>
	<true/>
	<key>teamID</key>
	<string>33NDY753U4</string>
	<key>thinning</key>
	<string><none></string>
</dict>
</plist>

Output

Running Xcode build...
Xcode archive done.                                          6.1s
Failed to build iOS app
Error (Xcode): No profile for team '33NDY753U4' matching 'MyDevProfile' found: Xcode couldn't find any provisioning profiles matching
'33NDY753U4/MyDevProfile'. Install the profile (by dragging and dropping it onto Xcode's dock item) or select a different one in the
Signing & Capabilities tab of the target editor.
/Users/shivam/StudioProjects//app_mobile/ios/Runner.xcodeproj
It appears that there was a problem signing your application prior to installation on the device.
Verify that the Bundle Identifier in your project is your signing id in Xcode
open ios/Runner.xcworkspace
Also try selecting 'Product > Build' to fix the problem.
Encountered error while archiving for device.

@theshivamlko
You need to pass the environment variable FLUTTER_XCODE_PROVISIONING_PROFILE_SPECIFIER or modify the project.pbxproj file to set PROVISIONING_PROFILE_SPECIFIER(git diff + git apply is a good way).
See also：https://github.com/flutter/flutter/issues/113977#issuecomment-2109590433
When an Extension exists in an iOS project, the environment variable method cannot specify PROVISIONING_PROFILE_SPECIFIER for it.

@fingerart This worked FLUTTER_XCODE_PROVISIONING_PROFILE_SPECIFIER , But how to find these variables ?
I couldn't anything about it in any documentation. I only see PROVISIONING_PROFILE_SPECIFIER

flutter build will pass all environment variables starting with FLUTTER_XCODE_ to xcodebuild.
https://github.com/flutter/flutter/blob/e721620b25ce0fe2756813b2b7de982e7edb042d/packages/flutter_tools/lib/src/ios/xcodeproj.dart#L188

thanks it worked! https://github.com/MXCzkEVM/moonchain-wallet/blob/pre_main_qa/ios/Runner.xcodeproj/project.pbxproj


docker deploy not deploying across swarm hosts

Im trying to deploy a docker-compose stack across a  3 node docker engine swarm mode cluster
The cluster looks like so
ID                           HOSTNAME   STATUS  AVAILABILITY  MANAGER STATUS
i4q2svsryhao18ziaolic8mp1    qg-node-3  Ready   Active
tuszowwcqc0g3cix4fdhntl9s *  qg-node-1  Ready   Active        Leader
u1ufvlrtjjjluh7rrmn63eueg    qg-node-4  Ready   Active

All nodes are started with the --experimental daemon flag
All the nodes are logged into my private registry.
Here is a my docker-compose-swarm.yml

version: '3'

networks:
  api:
    driver: overlay
  echo:
    driver: overlay
  cache:
    driver: overlay
  search:
    driver: overlay
  webapp:
    driver: overlay
  backend:
    driver: overlay
  frontend:
    driver: overlay
  messages:
    driver: overlay
  database:
    driver: overlay
  broadcaster:
    driver: overlay
  redis-admin:
    driver: overlay
  beanstalkd-admin:
    driver: overlay

services:

  qg-rp:
    image: {some_registry}/v2/qg/rp
    volumes:
      - /srv/qg-rp/www:/srv/www
    depends_on:
      - "qg-webapp"
      - "qg-api"
    networks:
      - frontend
      - webapp
      - api
    container_name: "qg-rp"
    hostname: "qg-rp"
    expose:
      - 1025
    ports:
      - 443:1025
    ulimits:
      nproc: 65535
      nofile:
        soft: 20000
        hard: 40000
    read_only: false
    shm_size: 64M
    stdin_open: true
    deploy:
      placement:
        constraints: [node.role == manager]
      labels: [APP=QG-RP]
      restart_policy:
        condition: on-failure
        delay: 10s
        max_attempts: 3
        window: 120s

  qg-webapp:
    image: {some_registry}/v2/qg/webapp
    volumes:
      - /srv/qg-webapp/www:/srv/www
    networks:
      - webapp
    container_name: "qg-webapp"
    hostname: "qg-webapp"
    expose:
      - 1025
    ulimits:
      nproc: 65535
      nofile:
        soft: 20000
        hard: 40000
    read_only: false
    shm_size: 64M
    stdin_open: true
    deploy:
      mode: global
      labels: [APP=API-WEBAPP]
      restart_policy:
        condition: on-failure
        delay: 10s
        max_attempts: 3
        window: 120s

  qg-api:
    image: {some_registry}/v2/qg/api
    volumes:
      - /srv/qg-api/www:/srv/www
    networks:
      - api
      - backend
    container_name: "qg-api"
    hostname:  "qg-api"
    expose:
      - 1025
    ulimits:
      nproc: 65535
      nofile:
        soft: 20000
        hard: 40000
    read_only: false
    shm_size: 64M
    stdin_open: true
    deploy:
      mode: replicated
      replicas: 3
      labels: [APP=API-NGINX]
      restart_policy:
        condition: on-failure
        delay: 10s
        max_attempts: 3
        window: 120s

  qg-api-fpm:
    image: {some_registry}v2/qg/api-fpm
    volumes:
      - /srv/qg-api-fpm/www:/srv/www
    networks:
      - backend
      - search
      - cache
      - messages
      - database
    container_name: "qg-api-fpm"
    hostname:  "qg-api-fpm"
    expose:
      - 9000
    ulimits:
      nproc: 65535
      nofile:
        soft: 20000
        hard: 40000
    read_only: false
    shm_size: 64M
    stdin_open: true
    deploy:
      placement:
        constraints: [node.role == worker]
      mode: replicated
      replicas: 2
      labels: [APP=API-FPM]
      restart_policy:
        condition: on-failure
        delay: 10s
        max_attempts: 3
        window: 120s

  qg-queue-fpm:
    image:{some_registry}/v2/qg/queue-fpm
    volumes:
      - /srv/qg-queue/www:/srv/www
    networks:
      - cache
      - messages
      - broadcaster
    expose:
      - 9000
    container_name: "qg-queue-fpm"
    hostname:  "qg-queue-fpm"
    ulimits:
      nproc: 65535
      nofile:
        soft: 20000
        hard: 40000
    read_only: false
    shm_size: 64M
    stdin_open: true
    deploy:
      placement:
        constraints: [node.role == worker]
      labels: [APP=JOB_APP]
      restart_policy:
        condition: on-failure
        delay: 10s
        max_attempts: 2
        window: 120s

  qg-echo:
    image: {some_registry}v2/qg/echo
    volumes:
      - /srv/qg-echo/www:/srv/www
    networks:
      - echo
      - broadcaster
    container_name: "qg-echo"
    hostname: "qg-echo"
    expose:
      - 22622
    ulimits:
      nproc: 65535
      nofile:
        soft: 20000
        hard: 40000
    read_only: false
    shm_size: 64M
    stdin_open: true
    deploy:
      placement:
        constraints: [node.role == worker]
      mode: replicated
      replicas: 2
      labels: [APP=ECHO]
      restart_policy:
        condition: on-failure
        delay: 10s
        max_attempts: 3
        window: 120s

  qg-echo-rp:
    image: {some_registry}/v2/qg/echo-rp
    volumes:
      - /srv/qg-echo-rp/www:/srv/www
    networks:
      - frontend
      - echo
    container_name: "qg-echo-rp"
    hostname: "qg-echo-rp"
    expose:
      - 1025
    ports:
      - 9090:1025
    ulimits:
      nproc: 65535
      nofile:
        soft: 20000
        hard: 40000
    read_only: false
    shm_size: 64M
    stdin_open: true
    deploy:
      placement:
        constraints: [node.role == manager]
      labels: [APP=QG-ECHO-RP]
      restart_policy:
        condition: on-failure
        delay: 10s
        max_attempts: 3
        window: 120s

  qg-beanstalkd:
    image: {some_registry}/v2/qg/beanstalkd
    volumes:
      - /srv/qg-beanstalkd:/srv
    container_name: "qg-beanstalkd"
    hostname: "qg-beanstalkd"
    networks:
      - beanstalkd-admin
      - messages
      - broadcaster
    expose:
      - 11300
    ulimits:
      nproc: 65535
      nofile:
        soft: 20000
        hard: 40000
    read_only: false
    shm_size: 64M
    stdin_open: true
    deploy:
      placement:
        constraints: [node.role == manager]
      labels: [APP=QG-BEANSTALKD]
      restart_policy:
        condition: on-failure
        delay: 10s
        max_attempts: 3
        window: 120s

  qg-elasticsarch-master:
    image: {some_registry}/v2/qg/elasticsarch-master
    volumes:
      - /srv/qg-elasticsearch:/srv
    networks:
      - search
    container_name: "qg-elasticsarch-master"
    hostname: "qg-elasticsarch-master"
    expose:
      - 9200
      - 9300
    ulimits:
      nproc: 65535
      nofile:
        soft: 20000
        hard: 40000
    read_only: false
    shm_size: 64M
    stdin_open: true
    privileged: true
    deploy:
      placement:
        constraints: [node.role == manager]
      labels: [APP=QG-ELASICSEARCH]
      restart_policy:
        condition: on-failure
        delay: 10s
        max_attempts: 3
        window: 120s

  qg-redis:
    image:{some_registry}:8080/v2/qg/redis
    volumes:
      - /srv/qg-redis:/srv
    networks:
      - echo
      - broadcaster
      - redis-admin
    container_name: "qg-redis"
    hostname: "qg-redis"
    expose:
      - 6379
    ulimits:
      nproc: 65535
      nofile:
        soft: 20000
        hard: 40000
    read_only: false
    shm_size: 64M
    stdin_open: true
    deploy:
      mode: replicated
      replicas: 2
      placement:
        constraints: [node.role == worker]
      labels: [APP=QG-REDIS]
      restart_policy:
        condition: on-failure
        delay: 10s
        max_attempts: 3
        window: 120s

  qg-memcached:
    image: {some_registry}:8080/v2/qg/memcached
    networks:
      - cache
    container_name: "qg-memcached"
    hostname: "qg-memcached"
    expose:
      - 11211
    ulimits:
      nproc: 65535
      nofile:
        soft: 20000
        hard: 40000
    read_only: false
    shm_size: 64M
    stdin_open: true
    deploy:
      mode: replicated
      replicas: 2
      placement:
        constraints: [node.role == worker]
      labels: [APP=QG-MEMCACHED]
      restart_policy:
        condition: on-failure
        delay: 10s
        max_attempts: 3
        window: 120s

  qg-sql:
    image: registry.ops.quickgroom.co.uk:8080/v2/qg/sql
    environment:
      MYSQL_ROOT_PASSWORD: {summet_secure}
      MYSQL_PASSWORD: {summet_secure}
      MYSQL_DATABASE: {some_name}
      MYSQL_USER: {some_name}
    volumes:
      - /srv/qg-sql:/srv/data
    networks:
      - database
    container_name: "qg-sql"
    hostname: "qg-sql"
    expose:
      - 3306
    environment:
      MYSQL_USER: qg-dba
      MYSQL_DATABASE: qg-db
    ulimits:
      nproc: 65535
      nofile:
        soft: 20000
        hard: 40000
    read_only: false
    shm_size: 64M
    stdin_open: true
    deploy:
      placement:
        constraints: [node.role == manager]
      labels: [APP=QG-SQL]
      restart_policy:
        condition: on-failure
        delay: 10s
        max_attempts: 3
        window: 120s

im running the deploy command from the swarm manager 'qg-node-1'
docker stack deploy -c docker-compose-swarm.yml up --with-registry-auth
also tried
docker deploy -c docker-compose-swarm.yml qg-prod
and only the services constrained to the master node are started. Looking through the example app isnt the expected behaviour to start all services regardless of what node they are constrained on?
Am i missing something here?
relevant docker info
docker -v
Docker version 1.13.1, build 092cba3
docker-compose -v
docker-compose version 1.11.1, build 7c5d5e4
qg-node-1

docker info
Containers: 14
Running: 10
Paused: 0
Stopped: 4
Images: 84
Server Version: 1.13.1
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 198
Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Swarm: active
NodeID: tuszowwcqc0g3cix4fdhntl9s
Is Manager: true
ClusterID: bljkirz2n473gwshlne2jmraq
Managers: 1
Nodes: 3
Orchestration:
Task History Retention Limit: 5
Raft:
Snapshot Interval: 10000
Number of Old Snapshots to Retain: 0
Heartbeat Tick: 1
Election Tick: 3
Dispatcher:
Heartbeat Period: 5 seconds
CA Configuration:
Expiry Duration: 3 months
Node Address: {someip}
Manager Addresses:
{someip}:2377
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: aa8187dbd3b7ad67d8e5e3a15115d3eef43a7ed1
runc version: 9df8b306d01f59d3a8029be411de015b7304dd8f
init version: 949e6fa
Security Options:
apparmor
seccomp
Profile: default
Kernel Version: 4.4.0-62-generic
Operating System: Ubuntu 16.04.1 LTS
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 992.4 MiB
Name: qg-node-1
ID: KPGO:KDTE:MY4Z:SOUY:SVPA:7BPS:THGP:YZR2:EL35:PYMY:K36L:VOSY
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Labels:
provider=digitalocean
Experimental: true
Insecure Registries:
<IP_ADDRESS>/8
Live Restore Enabled: false

qg-node-2

Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 3
Server Version: 1.13.1
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 10
Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Swarm: active
NodeID: i4q2svsryhao18ziaolic8mp1
Is Manager: false
Node Address: {someip}
Manager Addresses:
{someip}:2377
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: aa8187dbd3b7ad67d8e5e3a15115d3eef43a7ed1
runc version: 9df8b306d01f59d3a8029be411de015b7304dd8f
init version: 949e6fa
Security Options:
apparmor
seccomp
Profile: default
Kernel Version: 4.4.0-62-generic
Operating System: Ubuntu 16.04.1 LTS
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 488.4 MiB
Name: qg-node-3
ID: TD23:4VN6:RHKK:Y3QY:ZNVP:VVTS:4X65:6KTT:TBC4:KBD7:3YVE:ZRQW
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Labels:
provider=digitalocean
Experimental: true
Insecure Registries:
<IP_ADDRESS>/8
Live Restore Enabled: false

qg-node-4

Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 1.13.1
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 0
Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Swarm: active
NodeID: u1ufvlrtjjjluh7rrmn63eueg
Is Manager: false
Node Address: {someip}
Manager Addresses:
{someip}:2377
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: aa8187dbd3b7ad67d8e5e3a15115d3eef43a7ed1
runc version: 9df8b306d01f59d3a8029be411de015b7304dd8f
init version: 949e6fa
Security Options:
apparmor
seccomp
Profile: default
Kernel Version: 4.4.0-62-generic
Operating System: Ubuntu 16.04.1 LTS
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 488.4 MiB
Name: qg-node-4
ID: 7JRT:2M43:AVPF:25VI:IIHK:AFQN:NCII:FGN7:YP7E:7H25:PPLB:F733
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Labels:
provider=digitalocean
Experimental: true
Insecure Registries:
<IP_ADDRESS>/8
Live Restore Enabled: false

Swarm won't schedule services with local volumes across hosts.

Any documentation on this, as I was just planning on NTFS sharing a folder across nodes

I'm not sure about the docs. I'll take a look.
Did you mean NFS? If so, you'll have to use a driver for the mount, I believe. If you actually meant NTFS, I have no clue. I don't think Linux likes NTFS very much, haha...

Here's this FWIW: docker/docker#24089

Yep typo meant NFS, I installed the NFS plugin and re-jigged the volumes to take advantage of it, and its getting somewhere now, but it has only booted the memcached containers on the two worker nodes

av0p844cq3vd  qg-prod_qg-memcached.2                       someregistry/v2/qg/memcached:latest            qg-node-3  Running        Running 10 minutes ago

everything else is just pending

av0p844cq3vd  qg-prod_qg-memcached.2                       someregistryv2/qg/memcached:latest            qg-node-3  Running        Running 10 minutes ago

Looks like a typo to me:
image: {some_registry}v2/qg/api-fpm

should be:
image: {some_registry}/v2/qg/api-fpm

I am going to jump out of this thread. I believe your questions would be better suited for the Docker Forums since there is no identifiable bug in Docker itself.

Can you provide any details on the actual state of the services? You should be able to do docker stack ps <stack> to see all the tasks, along with errors

@willseward that's just a typo.
It looks like none of the plugins mentioned on the docker site actually support docker 1.13 and nfs shares so now im a bit dumbfounded on how im actually supposed to deploy this in a swarm cluster, so i guess you can close this

@cpuguy83 this is the output i put above the error column is blank

Hi, @cpuguy83 @thaJeztah @tiborvass this issue is safe to close. Can you please close this?

yup, let's close this one as it's really old and not enough information to investigate


[17.03] Increase gRPC request timeout to 20 seconds when sending snapshots

Cherry-pick #2391
I had to manually make these changes, since the cherry-pick wasn't clean. I think this needs a code review.
cc @anshulpundir @aaronlehmann @andrewhsu @thaJeztah
Signed-off-by: Nishant Totla<EMAIL_ADDRESS>

CI failure does not seem related, all the issues seem to be style/formatting issues.

Lint errors fixed in https://github.com/docker/swarmkit/pull/2418

LGTM

I know @davidwilliamson tested this manually, but I am not sure there is an automated test for this. cc @antonybichon17


Fix: Tests hanging on MacOS when testing error on phase

Signed-off-by: Javier Romero<EMAIL_ADDRESS>

I think it's important that the tar writer be closed before the pipe. Otherwise, the tar footer will be cut off: https://golang.org/src/archive/tar/writer.go?s=14125:14156#L456

Interesting, was not aware that the footer would be written on Close. Will investigate further, including any potential alternative solutions.

@sclevine I dug into a bit further and it seems to be that the issue only arises when we call tw.Close() when an error while writing has occurred.
I've made additional changes to address your concerns as well. Let me know what you think and if the solution makes sense.


logging/stdlogging: use a package-level var for logger

Use a package-level variable for a logger, and set up the logger in init.
Show that closing the logger at the end of the program (end of main() is the way to flush any pending messages).

PTAL @rakyll
Not completely happy with this now. Elevated logging.Client up to a package var. :/

Going through old PRs. It's unclear if we want to do this. I've seen some guidance to just pass around loggers as struct fields or arguments, in which case you wouldn't want the global. So, going to close this to clean up the current state, but feel free to reopen if you want to go through with the update.


On-demand loading on both conditions not working

Explain the problem here ...
Hello,
I'm trying to use the both on-demand conditions way, but as I understand, with the below command is supposed to load the plugin only if I use :GoFmt and the &filetype is go, but the results is that it loads vim-go plugin anyway without using :GoFmt manulally first. (looks like it uses the 'for' condition without the 'on').
Way to reproduce:
Plug 'fatih/vim-go' { 'on': 'GoFmt', 'for': 'go' }
On the other hand, alone works as expected and does not load the plugin.
Plug 'fatih/vim-go' { 'on': 'GoFmt' }
Regards,

version 9.0 patch 1-49

Type:

[x ] Bug
[ ] Enhancement
[ ] Feature Request
[ ] Question

OS:

[ ] All/Other
[x] Linux
[ x] OS X
[ ] Windows

Vim:

[ x] Terminal Vim
[ ] GVim
[ ] Neovim

with the below command is supposed to load the plugin only if I use :GoFmt and the &filetype is go

No, the plugin is loaded when either of the conditions is met.


pingreq always send synchronously

https://github.com/redboltz/mqtt_cpp/blob/master/include/mqtt/client.hpp#L887
If synchronous pingreq conflicts with asynchronous messages, that causes send buffer corruption.
I guess that it is reraly happens. Because pingreq sends only when user defined time has been passed from the last data sending time.

A simple way to fix the issue is insert bool async_pingreq_ = false into
https://github.com/redboltz/mqtt_cpp/blob/master/include/mqtt/client.hpp#L938.
And replace
https://github.com/redboltz/mqtt_cpp/blob/master/include/mqtt/client.hpp#L885-L889
with
    void handle_timer(boost::system::error_code const& ec) {
        if (!ec) {
            if (async_pingreq_) {
                base::async_pingreq();
            }
            else {
                base::pingreq();
            }
        }
    }

And provide
void set_async_pingreq(bool b = true);

From sync_client, do nothing. From async_client constructor, call the function.


[NIFI-2599] Enhance Status History Dialog

Reviewing...

Thanks @scottyaslan. This has been merged to master.


Doze fragment on API 23 permission

Permission check is written in code but does not trigger for Release build app version 6.3.1

Only an issue in release builds.

Analysis of the release code shows that this "should not be occurring."
Why.

Removing the code which normally shows the sensor dialog causes the Doze dialog to be shown.
As expected.

Try to fix this by setting an onclick listener on the button instead of an onchange listener


Add bulk restart from failure endpoint

Closes #1225
Code Changes

[x] Added bulk restart privacy request from failure endpoint.

Steps to Confirm

[x] New tests added to test suite

Pre-Merge Checklist

[ ] All CI Pipelines Succeeded
Documentation Updated:

[ ] documentation complete, or draft/outline provided (tag docs-team to complete/review on this branch)
[ ] documentation issue created (tag docs-team to complete issue separately)

[ ] Issue Requirements are Met
[ ] Relevant Follow-Up Issues Created
[ ] Update CHANGELOG.md

Description Of Changes
Write some things here about the changes and any potential caveats

These tests started failing after merging main and are unrelated to any changes in this PR. It looks like they are failing on all PRs. So far I have been unable to get it to fail when running locally to troubleshoot.


VSCode suggestions stop in scss when there is an selector line below

VSCode Version: Insiders
OS Version: MacOS 10.12.6

Steps to Reproduce:

Good day. After fixed https://github.com/Microsoft/vscode/issues/32703 noticed here such another bug.

I can't seem to repro it. Can you share a small code sample where I can try to repro this?

You initially have a margin everywhere. Try to delete all properties. and start typing before the selector &: not ()

And I'm not talking about emmet, but about the whole list of suggestions

Ah! got it. Can repro now.

Oh, yes, October! :-) Thanks @ramya-rao-a !


feat(syntax): Add markdown fenced code block highlighting for Prisma schema.

This PR proposes to add a prisma.markdown.json file that adds fenced code block highlighting for Prisma schema syntax in markdown fenced code blocks.
References: https://github.com/microsoft/vscode/blob/main/extensions/markdown-basics/syntaxes/markdown.tmLanguage.json

 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.


Create CODE_OF_CONDUCT.md

I noticed that we have everything in this such as a contributing file and a license and a readme that have all been shown to help with collaboration on public repos, but we are sadly missing a CoC and the referenced CoC in the contributing file is no longer recommended.
I'm proposing the inclusion of the Contributor Covenant CoC. ❤
If this is acceptable I will update the contributing to also reference the new CoC.

👏  yes! We just added "Add a code of conduct based on http://contributor-covenant.org/ and processes to enforce it in all official spaces" on the ROADMAP last week. I'm good with<EMAIL_ADDRESS>as the abuse email.

If this is acceptable I will update the contributing to also reference the new CoC.

👍
Reminder to myself after this is merged:

[ ] $ heroku config:set SLACK_COC=https://github.com/github/hubot/blob/master/CODE_OF_CONDUCT.md -a hubot-slackin

@bkeepers should we notify (@channel) in #help in Slack when this gets merged? New users would see the code of conduct link when getting the initial invite.

this is great 👏


Difference between Lab and Core components?

I was wondering if anybody could tell me what the differences are between the Lab and Core components. What is required of a component before it can move from the lab to the core package?

To be used. We can look at the Google Analytics stats to evaluate the usage. A low usage component either means that we don't have it right yet or that there is a low demand for it.

@oliviertassinari I'm curious what's meant by using Google Analytics to evaluate component usage. It's ambiguous if this refers tof how often a component's documentation page is being read or if analytics code is being injected into production apps using lab components. The latter would be worrying, especially since the lab documentation doesn't expand on this point further, but it also seems unlikely. Could you clarify?

@bthall16 It's a reference to the documentation pages. I will clarify it, thanks for raising.


Accepting additional options while configuring routes

This works...
AccountsTemplates.configureRoute('signIn', {
    name: 'signin',
    path: '/login',
    template: 'useraccounts',
    redirect: function(){
        var user = Meteor.user();
        if (user)
          Router.go('/player/' + user._id);
    }
});

...but adding a 'parent' field like this doesn't...
AccountsTemplates.configureRoute('signIn', {
    name: 'signin',
    path: '/login',
    template: 'useraccounts',
    parent: 'home',
    redirect: function(){
        var user = Meteor.user();
        if (user)
          Router.go('/player/' + user._id);
    }
});

Without the ability to list a parent, the various user accounts pages can't work with breadcrumbs.
I know this isn't a super-important feature, but it would be nice to have.  :smiley:

This is definitely something to consider for the upcoming package useraccounts:iron-routing which will be providing IR configuration support for<EMAIL_ADDRESS>I've changed the code to let the developer pass in additional options!

Tnx!

Thanks!


Accessibility

Implements the translation of MTC's TM1 accessibility script as expression files that can easily be extended or modified without updating python code. This is implemented as a sub-model that is run before other models.
Currently it does not override the existing accessibility table values, so results can be compared to the existing values. Eventually we will presumably want to do so and update the regression tests accordingly.

Coverage decreased (-0.05%) to 96.396% when pulling 3fe6af254a2aded2655bbefcdc53f6e2a41e8e04 on accessibility into 7932b11ea0bfdb91f5af4da2393dad791113ea71 on master.


Unify shared code in ExcelOpenXmlReader & binaryreader

.net 2 and portable version have some very similar code in them, that should just be in one place.

This should be pretty much done per #139


gatling.sh return zero exit code on test

Migrated from 2.x.y to Gatling 3.1.2 on one of my customer sites and they are using "gatling.sh" to run the test - it seems that the shell script always return a zero exit code. Modified the shell script to print the exit code as shown below
# Run Gatling
"$JAVA" $DEFAULT_JAVA_OPTS $JAVA_OPTS -cp "$GATLING_CLASSPATH" io.gatling.app.Gatling "$@"
echo "Gatling exit code $?"

What I get from my test run
================================================================================
2019-06-24 22:13:22                                          40s elapsed
---- Requests ------------------------------------------------------------------
> Global                                                   (OK=0      KO=5     )
> Home                                                     (OK=0      KO=5     )
---- Errors --------------------------------------------------------------------
> status.find.in(200,201,202,203,204,205,206,207,208,209,304), f      5 (100.0%)
ound 404

Reports generated in 0s.
Please open the following file: /Users/sgoeschl/work/github/sgoeschl/gatling-blueprint-project/target/distributable/gatling-charts-highcharts-bundle-3.1.2/results/test-20190624201241803/index.html
Gatling exit code 0

This has always been the expected behavior in the absence of invalid arguments and assertion failures, see StatusCode.


Decouple ember-specific functions from descriptor cluster

Currently the ember-specific functions are used by descriptor cluster to read the data model(part list, device type list, server list, client list, and tag list). We should read those from the metadata tree of the data model provider.

Added the unit tests @andy31415


Load a new WCON

I am trying to export the output produced by our lab (Andre's) into the WCON format. I produce the following test file. I think I am following the specifications for the format, and it does pass the schema validation. I am saving all the features, coordinates and time as arrays, so I do not have to repeat long feature names thousand of times. Most of the features have the same elements as the time array, but some
are event features that are an array with variable length per worm trajectory.
In the Python implementation the file is read correctly, once I remove 'degree' as units (see issue). However the feature files are not loaded in the WCONWorms object. I do not know if it is a bug or it hasn't being implemented.
I couldn't run the scala implementation (I'll send another issue here or rather a request for help), but I managed to run the R wrapper. The wrapper example works fine as long as one set the working directory as the one where 'wcon-ready.r' is located. However, when I try to log the file I generated I get the errors below. The description is a bit cryptical and I have not idea what is the problem.
java.util.NoSuchElementException: Either.right.value on Left
at scala.util.Either$RightProjection.get(Either.scala:453)
at $line82.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$.(:33)
at $line82.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$.()
at $line82.$eval$.$result$lzycompute(:5)
at $line82.$eval$.$result(:5)
at $line82.$eval.$result()
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.call(IMain.scala:786)
at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.callEither(IMain.scala:790)
at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.evalEither(IMain.scala:805)
at scala.tools.nsc.interpreter.IMain$WrappedRequest.eval(IMain.scala:624)
at scala.tools.nsc.interpreter.IMain.eval(IMain.scala:1074)
at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:264)
at org.ddahl.rscala.ScalaInterpreterAdapter.eval(ScalaInterpreterAdapter.scala:6)
at org.ddahl.rscala.ScalaServer.doEval(ScalaServer.scala:107)
at org.ddahl.rscala.ScalaServer.org$ddahl$rscala$ScalaServer$$heart(ScalaServer.scala:559)
at org.ddahl.rscala.ScalaServer.run(ScalaServer.scala:599)
at $line3.$read$$iw$$iw$.(:13)
at $line3.$read$$iw$$iw$.()
at $line3.$eval$.$print$lzycompute(:7)
at $line3.$eval$.$print(:6)
at $line3.$eval.$print()
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.call(IMain.scala:786)
at scala.tools.nsc.interpreter.IMain$Request.loadAndRun(IMain.scala:1047)
at scala.tools.nsc.interpreter.IMain$WrappedRequest$$anonfun$loadAndRunReq$1.apply(IMain.scala:638)
at scala.tools.nsc.interpreter.IMain$WrappedRequest$$anonfun$loadAndRunReq$1.apply(IMain.scala:637)
at scala.reflect.internal.util.ScalaClassLoader$class.asContext(ScalaClassLoader.scala:31)
at scala.reflect.internal.util.AbstractFileClassLoader.asContext(AbstractFileClassLoader.scala:19)
at scala.tools.nsc.interpreter.IMain$WrappedRequest.loadAndRunReq(IMain.scala:637)
at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:569)
at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:565)
at scala.tools.nsc.interpreter.ILoop.interpretStartingWith(ILoop.scala:807)
at scala.tools.nsc.interpreter.ILoop.command(ILoop.scala:681)
at scala.tools.nsc.interpreter.ILoop.processLine(ILoop.scala:395)
at scala.tools.nsc.interpreter.ILoop.loop(ILoop.scala:415)
at scala.tools.nsc.interpreter.ILoop$$anonfun$interpretAllFrom$1$$anonfun$apply$5$$anonfun$apply$6.apply(ILoop.scala:427)
at scala.tools.nsc.interpreter.ILoop$$anonfun$interpretAllFrom$1$$anonfun$apply$5$$anonfun$apply$6.apply(ILoop.scala:423)
at scala.reflect.io.Streamable$Chars$class.applyReader(Streamable.scala:111)
at scala.reflect.io.File.applyReader(File.scala:50)
at scala.tools.nsc.interpreter.ILoop$$anonfun$interpretAllFrom$1$$anonfun$apply$5.apply(ILoop.scala:423)
at scala.tools.nsc.interpreter.ILoop$$anonfun$interpretAllFrom$1$$anonfun$apply$5.apply(ILoop.scala:423)
at scala.tools.nsc.interpreter.ILoop.savingReplayStack(ILoop.scala:91)
at scala.tools.nsc.interpreter.ILoop$$anonfun$interpretAllFrom$1.apply(ILoop.scala:422)
at scala.tools.nsc.interpreter.ILoop$$anonfun$interpretAllFrom$1.apply(ILoop.scala:422)
at scala.tools.nsc.interpreter.ILoop.savingReader(ILoop.scala:96)
at scala.tools.nsc.interpreter.ILoop.interpretAllFrom(ILoop.scala:421)
at scala.tools.nsc.interpreter.ILoop$$anonfun$run$3$1.apply(ILoop.scala:577)
at scala.tools.nsc.interpreter.ILoop$$anonfun$run$3$1.apply(ILoop.scala:576)
at scala.tools.nsc.interpreter.ILoop.withFile(ILoop.scala:570)
at scala.tools.nsc.interpreter.ILoop.run$3(ILoop.scala:576)
at scala.tools.nsc.interpreter.ILoop.loadCommand(ILoop.scala:583)
at scala.tools.nsc.interpreter.ILoop$$anonfun$standardCommands$8.apply(ILoop.scala:207)
at scala.tools.nsc.interpreter.ILoop$$anonfun$standardCommands$8.apply(ILoop.scala:207)
at scala.tools.nsc.interpreter.LoopCommands$LineCmd.apply(LoopCommands.scala:62)
at scala.tools.nsc.interpreter.ILoop.colonCommand(ILoop.scala:688)
at scala.tools.nsc.interpreter.ILoop.command(ILoop.scala:679)
at scala.tools.nsc.interpreter.ILoop.loadFiles(ILoop.scala:835)
at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply$mcZ$sp(ILoop.scala:920)
at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:909)
at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:909)
at scala.reflect.internal.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:97)
at scala.tools.nsc.interpreter.ILoop.process(ILoop.scala:909)
at scala.tools.nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala:74)
at scala.tools.nsc.MainGenericRunner.run$1(MainGenericRunner.scala:87)
at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:98)
at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:103)
at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)
Exception message: Either.right.value on Left

This is weird.  It probably has to do with the problems running the Scala version, though, since the R version just calls Scala.

the feature files are not loaded in the WCONWorms object. I do not know if it is a bug or it hasn't being implemented.

The reason for this is you have to write a class that inherits from WCONWorms to handle the custom features.  I will work on you with this to make this happen if you like.
I did not anticipate that we would be loading the feature file as a WCON file - this format I thought would be used for interoperability and so I thought we would just use WCON for the skeleton and not for the features.  After all, we can get a features object loaded into the open worm analysis toolbox by calculating the features from a basicworm object.

When I try and load the test file it fails because the lab has an address field, but the spec is looking for location.

Also not currently valid in the test file is 'commit_hash' for software. Address vs location is a naming issue that needs to be worked out. This on the other hand is a completely new entry which seems useful. Also of note, the Python implementation should have been choking on these things .... The Scala implementation choked, but failed with perhaps a too cryptic error message "NoSuchElementException"

All, can we get some clarification on the following:

Whether or not arbitrary fields are allowed in specified types, i.e. whether software can contain commit_hash
Where in the documentation we are specifying this
If (1) is allowed, how we expect generic software to handle this (drop values on loading, carry values on loading)
Whether or not (1) is conditioned on specific levels of the data (i.e. arbitrary may be allowed in units, data, and metadata, but not in specific metadata fields?)

@JimHokanson - I propose that

Arbitrary fields are allowed anywhere by readers.  Writers will not by default write arbitrary fields. Fields with the wrong structure are never allowed.  For instance, "metadata" cannot be a string instead of an object.
Once we agree what the rules are, we should state them clearly in appropriate places (including the introduction) since it's quite important to know what's going to happen to your data.
It is up to the reader whether they remain accessible in some way or are simply dropped.  If they are not dropped, a writer may have an option to write them out again.
There is no context.  The same rules apply everywhere.  (This makes it harder to get wrong.)
Unit conversions will not apply to arbitrary fields that are ignored but maybe kept, even if they have the right names.  Unit conversions apply only to fields defined by the specification and to specifically-named fields inside @ blocks.  The point of a custom @ field is that the reader is to retain the contents and the writer is to write them.

I am very reluctant to try to specify a second kind of custom field (maybe with % instead of @) where no conversions are done and everything is just carried along verbatim.  Maybe the solution is to have conversions not happen by default but allow them to be invoked on request.  But that is an issue for a different ticket.
@MichaelCurrie - What do you think of these proposals?


Unable to style the "content" property in scss/less

If i switch the language to scss or less the content property gets "entity.name.tag.css" and the styles from it. Impossible to style the properties and name.tag.

/duplicate of https://github.com/atom/language-sass/issues/226


Nuxt 3 should append

Describe the feature
In nuxt 2,

I'm sorry for the inconvenience, but I'm reluctant to do this for several reasons:

I don't think you should write code that depends on the order in which the layout or pages CSS is bundled.
I don't want to commit to users that it will follow a certain order because this is likely upstream bundler behaviour (ie Vite) rather than directly within Nuxt's control.
It would be a breaking change if (heaven forbid!) someone is now depending on page CSS being loaded before layout CSS

I don't think you should write code that depends on the order in which the layout or pages CSS is bundled.
Order and priority of CSS matter, we need to handle css style overriding thus this should be a defined behavior for the framework and the bundler.
Sure we can use specificity and !important to improve compability, but if the framework combines style from layout, page and components out of order, things get complicate, there are high risk website design break after internal implementation changed.

Maybe I should report this to vite.
From a common sense standpoint, if people writing css style in both layout and page, I don't think there are situations they want css style in layout take the priority.
In Nuxt 2 and Webpack 4 this works out of box.
Anyway I don't have expectation that Nuxt or Vite will fix this issue, I will fix style breakage myself for the project I migrating from Nuxt 2. Web developers are paid for handling this kind of mess.

Just stumbled upon this. Tested this behaviour with a fresh nuxt app and it indeed behaves like @duc2019 described.

I don't think you should write code that depends on the order in which the layout or pages CSS is bundled.

Are there some docs that describe this? I (naively) would assume, that layouts wrap pages and therefor when defining styles in both, layout styles would come before page styles. Without this being document, how should we know?
Could we add a hint to the layout docs? Maybe also to pages docs.

Web developers are paid for handling this kind of mess

Yeah, that's true 😄
I'm currently planing our migration from Nuxt 2 to Nuxt 3 (multi/whitelabel app). And we have exactly this situation. In a lot of places. 🙈

After publish our project to testing environment with nuxt generate I found the bundle will combine css styles from multiple pages into entry.xxx.css randomly, even you use the manualChunks to return a unique id for each page vite will still ignore your chunk name and suck some of your pages into entry.xxx.css.
The implementation of Nuxt 3 and Vite is so broke,  did you guys even work for an actual project with Nuxt 3 or just create your toy projects for fun??? Can't you guys implement the logic with basic human common sense??? WHY combine css from multiple pages that is not scoped??? WHY???
I will suggest any people migrate to Nuxt 3 must use style with scoped, otherwise you will 100% shoot your foot.

Nuxt is not involved in the creation of your CSS file. Vite is bundling your CSS assets together and if you feel this is a bug you should raise it upstream at https://github.com/vitejs/vite.
As I've said, it's best practice to use scoped styles in any Vue project (adopting scoped styles is also relatively simple as part of a migration). In my experience, in and out of Nuxt, you should not rely the order of CSS from different components being loaded, only within a component's CSS. Otherwise you are very likely to produce flaky CSS that is tied to a particular build process. Consider the case, for example, where each layout styles the body tag differently. As a new layout CSS file is loaded, the body tag will change its style. But CSS will never be unloaded, and so when you switch back to the old layout nothing will change. That's not a bug in the bundler or framework - it's a user error in how the layout was written. And this is similar.
I hope that helps, and best of luck on your migration.

thx Daniel for the explanation. I still think it would be good to add this info to the docs of Layouts and Pages.
I'll try to make a PR next week...

We did isolated css in components, but not in pages, nuxt 2 (webpack) will never mix css styles from multiple pages, but nuxt 3 (vite) will and there are noway to prevent it
Yes I should report this to vite, I will open an issue there later
Please add docs to warning users never use style without scoped, because vite will mix your css style from anywhere with any order (it sucks)

You might consider, in that case, to use the webpack builder in Nuxt 3 to keep consistency with Nuxt 2.