Remove ActiveSupport from runtime

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.

[x] Have you successfully run brew typecheck with your changes locally?
[x] Have you successfully run brew tests with your changes locally?

Relates to https://github.com/Homebrew/brew/issues/16190
Removes ActiveSupport from the brew runtime (it will still exist as a transitive dependency of rubocop-rails, for now).
I recommend to squash commits on merge (or I can force-push a squashed commit, not sure what the merge options are here).
I've used just the parts of the ActiveSupport files that we use, with some light modifications (including adding type signatures, and pulling in upstream changes, for which I've added comments). Another option could be to just vendor the existing dependencies, as we do with mechanize. However, ActiveSupport sometimes undergoes refactors and dependency changes, which might be a headache to keep up with (for instance, this refactor of Hash#deep_merge! to introduce another DeepMergeable module).
I haven't added new tests for this functionality, but don't want to dismiss their importance/value (rails uses a different framework, preventing this from being a simple c/p operation). Looks like there a just few spots without coverage though (including some error paths that may be hard to plausibly simulate). LMK if more are desirable.

Ready for review

deep_dup and friends can probably also go - I'm not fully convinced about its current usage does much. But given this PR is already quite large I'm ok deferring that to a separate PR to reduce risk.

I believe that I've addressed all the feedback except for deep_dup, PTAL


vfs: sanitize paths

Problem
Current paths are often manipulated as strings in the vfs, leading way to attacks that use relative paths, like "/mypkg:mypub.os/pkg/../../some_other_pkg/other_file".
Solution
Canonicalize paths into absolutes, removing any relative paths and checking the absoluts.
Docs Update
Corresponding docs PR
Notes
thanks @bonedaddy for bringing it up in discord!
Caps are matched on literally, so a missing prepended "/" to a path doesn't matter when interacting with the vfs, but when doing get_capability() from the kernel it does.

not bad, any changes required in API docs?

not bad, any changes required in API docs?

nope, not anymore.
Am doing path normalization instead of canonicalization now as the latter requires the path to exist, which often in our case it does not.


Converter.asCompletionItem doesn't handle insert/replace

The implementation of asCompletionItem contains this explicit check:
if (isInsertReplace(value)) {
    throw new Error(`Receving unknown insert replace range.`);
}

which will fail if the range is specified with the inserting and replacing properties as they're not part of the LSP yet. See here.
However, VS Code is now returning completion items with ranges in this format (e.g. when calling vscode.commands.executeCommand<vscode.CompletionList>('vscode.executeCompletionItemProvider', uri, position, context)).
My understanding is that if I pass a valid code.CompletionItem to Converter.asCompletionItem, I should get back a valid  proto.CompletionItem. However, in this case it throws.
Please let me know if I'm misunderstanding how Converter is intended to be used.

Yeah - that is correct. With the new insert/replace API those commands now return different information

My understanding is that if I pass a valid code.CompletionItem to Converter.asCompletionItem, I should get back a valid proto.CompletionItem. However, in this case it throws.

This is only true for items that came from the LSP server. Since the LSP server can't create an item with insert / replace edits (it is not supported) we don't support converting VS Code completion items into insert /replace. As said major reason is that there in no support for that yet (I have coded it up but it will be release as a next version since it requires and official spec change).
The only workaround I can think of is to do the following: if the VS Code completion item has both ranges convert it back into one only having the insert range and send that over the wire.

@daytonellwanger whether or not a completion item should have a insert/replace range when sent over LiveShare should depend on the capability the client supports. Even if a VS Code completion Item has both ranges you can't send it to a VS Client since a VS client has currently no support for it. This is why the specification will add a capability whether a client has support for this or not (see https://github.com/microsoft/vscode-languageserver-node/blob/dbaeumer/encodingSupport/protocol/src/protocol.ts#L1531)

@daytonellwanger is it OK for you to close the issue?

Thanks for the clarification, Dirk!


[PE-1502] chore: check in example built working app

This PR is not really necessary, but I wanted to check in a working app JS bundle in the right place in the SF cartridge in case you, @luqven, would like to check this out and play around with it in your sandbox.
FYI I move this file from the frontend bundle by running the following command from the frontend directory:
cp build/sidebar.js ../cartridges/bm_imgix_pd/cartridge/static/default/experience/editors/imgix/imageSelection.js

Stacked PR Chain: PE-1502

PR
Title
Merges Into

#42
[PE-1502] chore: add temporary image placeholder - DRAFT
N/A

#44
[PE-1502] chore: disable create react app chunking - DRAFT
#42

#45
[PE-1502] chore: update sidebar app to not break build and load image from imgix
#44

#46
[PE-1502] chore: build in SF scripts into frontend build
#45

#47
[PE-1502] chore: check in example built working app
#46

Closing this since it's not necessary


mylocationbuttonenabled set to true but no button

hi.
mylocationbuttonenabled and mylocationenabled are true
but the mylocation button is not shown in the map

Hi @chitgoks
can you please provide your flutter doctor -v and flutter run --verbose?
Also, to better address the issue, would be helpful if you could post a minimal code sample to reproduce the problem
Thank you

hi thank you for getting back. i am closing this issue.
it seems that the button will only appear if you accepted the permissions.
i was expecting the button to be always visible and show the permission once the user clicks on the button.


Why  the view I see in quest pro is smaller？

I compare  the view I see in Quest Pro  with  the Steam VR View and Android Studio Logcat 's screenshot then  I find  it is smaller a lot .
Is it normal?

Can you post a screenshot?


[Bug]:

All of the following criteria must be met

[ ] Full Latest.log file included. If no file exists then leave this unchecked and state so.

All of the following are optional to answer

[ ] Tried reinstalling the game.
[X] Tried reinstalling LemonLoader.
[X] Tried restarting device.

Describe the issue.
i opebed the lemon installer and it was just a black screenl
Did you attach your log file?

[ ] Yes, I attached my log file to the text box above.
[X] No, I could not find a log file at /storage/emulated/0/Android/data/<package name>/files/melonloader/etc/Latest.log

Wait


yii2-composer error when using an array for psr-4 autoloading

Hi guys,
We've run into a problem with composer when trying to use an array of strings for namespace location, as per https://getcomposer.org/doc/04-schema.md#autoload. We'd like to use this mechanics to overwrite models defined in a yii2-extension inside of an app application. The relevant section of our composer.json looks like this:

 "autoload": {
        "psr-4": {
            "matacms\\post\\": ["frontend/models/overwrites/post/", ""]
        }
    }

and the error when doing composer update:
  [ErrorException]
  substr() expects parameter 1 to be string, array given

Exception trace:
 () at phar:///usr/local/bin/composer/src/Composer/Util/Filesystem.php:392
 Composer\Util\ErrorHandler::handle() at n/a:n/a
 substr() at phar:///usr/local/bin/composer/src/Composer/Util/Filesystem.php:392
 Composer\Util\Filesystem->isAbsolutePath() at /Users/wichura/Sites/MATA-app/vendor/yiisoft/yii2-composer/Installer.php:125
 yii\composer\Installer->generateDefaultAlias() at /Users/wichura/Sites/MATA-app/vendor/yiisoft/yii2-composer/Installer.php:85
 yii\composer\Installer->addPackage() at /Users/wichura/Sites/MATA-app/vendor/yiisoft/yii2-composer/Installer.php:56
 yii\composer\Installer->update() at phar:///usr/local/bin/composer/src/Composer/Installer/InstallationManager.php:172
 Composer\Installer\InstallationManager->update() at phar:///usr/local/bin/composer/src/Composer/Installer/InstallationManager.php:139
 Composer\Installer\InstallationManager->execute() at phar:///usr/local/bin/composer/src/Composer/Installer.php:578
 Composer\Installer->doInstall() at phar:///usr/local/bin/composer/src/Composer/Installer.php:225
 Composer\Installer->run() at phar:///usr/local/bin/composer/src/Composer/Command/UpdateCommand.php:140
 Composer\Command\UpdateCommand->execute() at phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:253
 Symfony\Component\Console\Command\Command->run() at phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:874
 Symfony\Component\Console\Application->doRunCommand() at phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:195
 Symfony\Component\Console\Application->doRun() at phar:///usr/local/bin/composer/src/Composer/Console/Application.php:147
 Composer\Console\Application->doRun() at phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:126
 Symfony\Component\Console\Application->run() at phar:///usr/local/bin/composer/src/Composer/Console/Application.php:84
 Composer\Console\Application->run() at phar:///usr/local/bin/composer/bin/composer:43
 require() at /usr/local/bin/composer:25

Could you please advise if this is a bug? I feel yii2-composer should be a transparent layer on top of composer, but perhaps the design is different?
Thanks,
Marcin

The problem with this is that the yii autoloader is based on path aliases and does not support one alias to point to multiple paths. It should however just ignore this case then and leave it up to the composer autoloader.

Should be fixed by fecdf1a. @wichura can you try installing it by using "yiisoft/yii2-composer": "*@dev", in your composer.json?

Hi @cebe,
Thanks for the prompt fix, and sorry for the radio silence in the past days - I was away from my computer.
I've seen fecdf1a5f77155a9aa4290c01a358053a545b9d6 and it seems that you simply ignore multiple search paths, which does not work for our particular application.
I made some headway with refactoring yii\composer\Installer and yii\base\Application to work with arrays, albeit I can see it is a limitation of Yii::setAlias() when it comes to setting the same key. One might argue though that setting one alias (be it the first or the last one) is better than ignoring them altogether?
Also, funnily enough, if I comment out alias part in /vendor/yiisoft/extensions.php, I achieve the required functionality, i.e. I can overwrite individual files without modifying them in vendor folder. It's possible as autoloading relies on contents of autoload_psr4.php which supports multiple paths, as per the document I mentioned earlier.
What are your thoughts around this issue? Would it help if we provide you with a sample application you could have a look at?
Thanks again for troubleshooting this for us, much appreciated
Marcin

On reflection, Yii::setAlias() used in the way I suggested would introduce non-deterministic behavior into Yii -- please ignore my comment above.
Your fix works well, we'll try to refactor our application to play along.
Regards,
Marcin

thanks for checking.


[Doc] List best practices for writing test cases

Motivation and Context

Documents a collection of best practices for writing test cases. I took the best practices from the internal confluence page, restructured them and cleaned up the language.

@MaisiKoleni @niclasschuemann @florian-glombik @JohannesStoehr
Could I please ask you to take over this PR?
I think there are a few additional best practices that we should document here, e.g. to use fail(...) instead of assertions to improve the feedback and how to handle tests in exams. We should also document how the instructor tests work for exercises on unit testing (as we have done in EIST and PSE)
We should also link this page in the Artemis user interface, e.g. when creating a programming exercises and in the programming exercise details page


Refdoc has CSS issues where some code is invisible

See: https://cloud.spring.io/spring-cloud-gcp/reference/html/

Credits for reporting: @Alos.

Looks like this is a problem with how spring manages all documents across their site - you can see the same problem for other projects:
https://cloud.spring.io/spring-cloud-gateway/2.2.x/reference/html/#tls-and-ssl
https://cloud.spring.io/spring-cloud-netflix/2.2.x/reference/html/#using-eureka-on-aws
https://cloud.spring.io/spring-cloud-security/2.2.x/reference/html/#_oauth2_single_sign_on

I think this is fixed now (at least for us):

Gonna close since this appears to be fixed for us: https://cloud.spring.io/spring-cloud-gcp/reference/html/#stackdriver-logging


Self referential entity is not saved

Hi I have an Entity has a Foreign Key is pointing to the same Entity primary key
every time I try to add the record and save change it throw exception
yet the Primary key and the Foreign key are the same, it happen in first record I was adding
any help will be appreciated
**System.Data.Entity.Infrastructure.DbUpdateException occurred
HResult=0x80131501
Message=An error occurred while updating the entries. See the inner exception for details.
Source=EntityFramework
StackTrace:
Inner Exception 1:
UpdateException: An error occurred while updating the entries. See the inner exception for details.
Inner Exception 2:
TargetInvocationException: Exception has been thrown by the target of an invocation.
Inner Exception 3:
ForeignKeyViolationException: Foreign key violation [dbo_Unit :: ReportToUnit]. The key value [-1] does not exists in the referenced table [dbo_Unit :: UnitId].. Error code: RelationError**

Sure

Hello @rwahib ,
This issue will be closed since we haven't heard back from you.
Feel free to reopen it if you can provide the information we asked.
Best Regards,
Jonathan


Refine links for hierarchical radiosity.

Render with
radiosity hierarchical -w640 -e50 \
  --form-factor-eps=0.1 --rad-shoot-eps=1e-6 \
  --max-iterations=1000 scenes/cornell_box.blend

Links are refined according to CW p. 186.

I verified that this branch renders the same image as https://github.com/jeschkies/renderer/pull/80.


npm run build fails

Hello
I was just trying your dockerize tool but I run into a problem.
Everything goes fine, creates .env, Dockerfile, compose file etc.... but when I actually run docker-compose up -d I get below error
[+] Running 0/1
 ⠿ strapi Error                                                                                2.2s
[+] Building 0.6s (12/12) FINISHED
 => [internal] load build definition from Dockerfile                                                                                0.0s
 => => transferring dockerfile: 32B                                                                                0.0s
 => [internal] load .dockerignore                                                                                0.0s
 => => transferring context: 34B                                                                                0.0s
 => [internal] load metadata for docker.io/library/node:16                                                                                0.0s
 => [1/8] FROM docker.io/library/node:16                                                                                0.0s
 => [internal] load build context                                                                                0.0s
 => => transferring context: 297B                                                                                0.0s
 => CACHED [2/8] RUN apt-get update && apt-get install libvips-dev -y                                                                                0.0s
 => CACHED [3/8] WORKDIR /opt/                                                                                0.0s
 => CACHED [4/8] COPY ./package.json ./package-lock.json ./                                                                                0.0s
 => CACHED [5/8] RUN npm install                                                                                0.0s
 => CACHED [6/8] WORKDIR /opt/app                                                                                0.0s
 => CACHED [7/8] COPY ./ .                                                                                0.0s
 => ERROR [8/8] RUN npm run build                                                                                0.5s
------
 > [8/8] RUN npm run build:
#0 0.465 npm ERR! Missing script: "build"
#0 0.465 npm ERR!
#0 0.465 npm ERR! To see a list of scripts, run:
#0 0.465 npm ERR!   npm run
#0 0.466
#0 0.466 npm ERR! A complete log of this run can be found in:
#0 0.466 npm ERR!     /root/.npm/_logs/2022-07-28T10_11_26_066Z-debug-0.log
------
failed to solve: executor failed running [/bin/sh -c npm run build]: exit code: 1

Any idea why this is failing?
When I do everything manually, it works fine. npm run build is there.
Update: this is the debug log output

0 verbose cli /home/codeagency/.nvm/versions/node/v18.5.0/bin/node /home/codeagency/.nvm/versions/node/v18.5.0/bin/npm
1 info using<EMAIL_ADDRESS>2 info using<EMAIL_ADDRESS>3 timing npm:load:whichnode Completed in 0ms
4 timing config:load:defaults Completed in 1ms
5 timing config:load:file:/home/codeagency/.nvm/versions/node/v18.5.0/lib/node_modules/npm/npmrc Completed in 0ms
6 timing config:load:builtin Completed in 0ms
7 timing config:load:cli Completed in 1ms
8 timing config:load:env Completed in 0ms
9 timing config:load:file:/home/codeagency/docker/strapi-v4-local/.npmrc Completed in 0ms
10 timing config:load:project Completed in 2ms
11 timing config:load:file:/home/codeagency/.npmrc Completed in 0ms
12 timing config:load:user Completed in 0ms
13 timing config:load:file:/home/codeagency/.nvm/versions/node/v18.5.0/etc/npmrc Completed in 0ms
14 timing config:load:global Completed in 0ms
15 timing config:load:validate Completed in 0ms
16 timing config:load:credentials Completed in 1ms
17 timing config:load:setEnvs Completed in 0ms
18 timing config:load Completed in 5ms
19 timing npm:load:configload Completed in 5ms
20 timing npm:load:mkdirpcache Completed in 2ms
21 timing npm:load:mkdirplogs Completed in 0ms
22 verbose title npm run build
23 verbose argv "run" "build"
24 timing npm:load:setTitle Completed in 1ms
25 timing config:load:flatten Completed in 1ms
26 timing npm:load:display Completed in 2ms
27 verbose logfile logs-max:10 dir:/home/codeagency/.npm/_logs
28 verbose logfile /home/codeagency/.npm/_logs/2022-07-28T10_16_24_435Z-debug-0.log
29 timing npm:load:logFile Completed in 3ms
30 timing npm:load:timers Completed in 0ms
31 timing npm:load:configScope Completed in 0ms
32 timing npm:load Completed in 13ms
33 silly logfile start cleaning logs, removing 1 files
34 silly logfile done cleaning log files
35 timing command:run Completed in 3ms
36 verbose stack Error: Missing script: "build"
36 verbose stack
36 verbose stack To see a list of scripts, run:
36 verbose stack   npm run
36 verbose stack     at RunScript.run (/home/codeagency/.nvm/versions/node/v18.5.0/lib/node_modules/npm/lib/commands/run-script.js:98:13)
36 verbose stack     at async module.exports (/home/codeagency/.nvm/versions/node/v18.5.0/lib/node_modules/npm/lib/cli.js:78:5)
37 verbose cwd /home/codeagency/docker/strapi-v4-local
38 verbose Linux 5.15.0-41-generic
39 verbose node v18.5.0
40 verbose npm  v8.15.0
41 error Missing script: "build"
41 error
41 error To see a list of scripts, run:
41 error   npm run
42 verbose exit 1
43 timing npm Completed in 23ms
44 verbose code 1
45 error A complete log of this run can be found in:
45 error     /home/codeagency/.npm/_logs/2022-07-28T10_16_24_435Z-debug-0.log

Nevermind, i got everything fixed

What was the issue since you got it fixed @codeagencybe  ? :)

@codeagencybe  how did you fix that? I'm facing the same issue when trying to run docker-compose up -d

@codeagencybe how did you fix that? I'm facing the same issue when trying to run docker-compose up -d:
@Eventyret maybe you happen to know what it is ?

Just to let you know this was closed a few months ago.
But make sure that you run the script in your project root directory
You seem to not have a package.json nor do you have a .env file in your directory.
Without those it can't build.

Thank you for replying @Eventyret !
This is what I did:
1 - created an empty folder
2 - ran npx @strapi-community/dockerize
3 - ran docker-compose up -d
4 - got the build error.
I have a .env and package.json file and I'm using NPM with Node v16.13.2

Thank you for replying @Eventyret !
This is what I did:
1 - created an empty folder
2 - ran npx @strapi-community/dockerize
3 - ran docker-compose up -d
4 - got the build error.
I have a .env and package.json file and I'm using NPM with Node v16.13.2

Step 1 is the project it needs to be in a strapi project folder

Thank you for replying @Eventyret !
This is what I did:
1 - created an empty folder
2 - ran npx @strapi-community/dockerize
3 - ran docker-compose up -d
4 - got the build error.
I have a .env and package.json file and I'm using NPM with Node v16.13.2

Step 1 is the project it needs to be in a strapi project folder

Ops, you're correct! I created the project folder the way you said on the blog post and now I'm getting a different error:
 password authentication failed for user "strapi"
I tried changing Dockerfile to node:14 but still the same 🤔

Need to make sure the variables exists in .env and they are the same in database.js and docker compose.

@Eventyret the fix for my case was I was in the wrong folder.
I got it mixed up with git which also create a folder when you clone.
Then when you run npx command, it also creates a folder for you so I got stuff nested and confused.
Probably you are also running the command outside your project folder and that's why it gives that error.

@Eventyret all variables exists in .env, database.js and docker-compose.yml.
When I run the docker-compose up -d command it puts up both containers! strapiDB is running fine but the problem is strapi:
It's on a loop throwing erros saying that it was not possible to install sharp module:
Could not load js config file<EMAIL_ADDRESS>
Something went wrong installing the "sharp" module

Cannot find module '../build/Release/sharp-linuxmusl-x64.node'

Require stack:

- /opt/app/node_modules/sharp/lib/sharp.js

- /opt/app/node_modules/sharp/lib/constructor.js

- /opt/app/node_modules/sharp/lib/index.js

-<EMAIL_ADDRESS>
-<EMAIL_ADDRESS>
-<EMAIL_ADDRESS>
-<EMAIL_ADDRESS>
-<EMAIL_ADDRESS>
-<EMAIL_ADDRESS>
-<EMAIL_ADDRESS>
-<EMAIL_ADDRESS>
-<EMAIL_ADDRESS>
-<EMAIL_ADDRESS>

Possible solutions:

- Install with verbose logging and look for errors: "npm install --ignore-scripts=false --foreground-scripts --verbose sharp"

- Install for the current linuxmusl-x64 runtime: "npm install --platform=linuxmusl --arch=x64 sharp"

- Consult the installation documentation: https://sharp.pixelplumbing.com/install

I also tried adding both of the following commands to the Dockerfile but still the same issue persists:
RUN npm install --ignore-scripts=false --foreground-scripts --verbose sharp
RUN npm install --platform=linuxmusl --arch=x64 sharp

@Eventyret Hey, sorry, but i am having the same issue. node_modules is in dockerignore and still problems with sharp. I am running Ubuntu 22.04. Strapi runs fine locally, but no matter how i try to run it in docker, it refuses to get past the sharp issue.

@Eventyret Hey, sorry, but i am having the same issue. node_modules is in dockerignore and still problems with sharp. I am running Ubuntu 22.04. Strapi runs fine locally, but no matter how i try to run it in docker, it refuses to get past the sharp issue.

You would need to post your dockerfile, dockerignore and docker-compose please ☺

Dockerfile:
`FROM node:16-alpine
Installing libvips-dev for sharp Compatibility
RUN apk update && apk add --no-cache build-base gcc autoconf automake zlib-dev libpng-dev nasm bash vips-dev
ARG NODE_ENV=development
ENV NODE_ENV=${NODE_ENV}
WORKDIR /opt/
COPY package.json yarn.lock ./
RUN yarn config set network-timeout 600000 -g && yarn install
WORKDIR /opt/app
COPY . .
ENV PATH /opt/node_modules/.bin:$PATH
RUN chown -R node:node /opt/app
USER node
RUN ["yarn", "build"]
EXPOSE 1337
CMD ["yarn", "develop"]`
Dockerignore:
.tmp/ .cache/ .git/ build/ node_modules/ .env data/ backup/
Docker-compose:
`version: '3'
services:
strapi:
container_name: strapi
build: .
image: strapi:latest
restart: unless-stopped
env_file: .env
environment:
DATABASE_CLIENT: ${DATABASE_CLIENT}
DATABASE_HOST: strapiDB
DATABASE_NAME: ${DATABASE_NAME}
DATABASE_USERNAME: ${DATABASE_USERNAME}
DATABASE_PORT: ${DATABASE_PORT}
JWT_SECRET: ${JWT_SECRET}
ADMIN_JWT_SECRET: ${ADMIN_JWT_SECRET}
DATABASE_PASSWORD: ${DATABASE_PASSWORD}
NODE_ENV: ${NODE_ENV}
volumes:
- ./config:/opt/app/config
- ./src:/opt/app/src
- ./package.json:/opt/package.json
- ./yarn.lock:/opt/yarn.lock
  - ./.env:/opt/app/.env
  - ./public/uploads:/opt/app/public/uploads
ports:
  - '1337:1337'
networks:
  - strapi
depends_on:
  - strapiDB

strapiDB:
container_name: strapiDB
platform: linux/amd64 #for platform error on Apple M1 chips
restart: unless-stopped
env_file: .env
image: postgres:14.5-alpine
environment:
POSTGRES_USER: ${DATABASE_USERNAME}
POSTGRES_PASSWORD: ${DATABASE_PASSWORD}
POSTGRES_DB: ${DATABASE_NAME}
volumes:
- strapi-data:/var/lib/postgresql/data/ #using a volume
#- ./data:/var/lib/postgresql/data/ # if you want to use a bind folder
ports:
  - '5432:5432'
networks:
  - strapi

strapiAdminer:
container_name: strapiAdminer
image: adminer
restart: unless-stopped
ports:
- '9090:8080'
environment:
- ADMINER_DEFAULT_SERVER=strapiDB
networks:
- strapi
depends_on:
- strapiDB
volumes:
strapi-data:
networks:
strapi:
name: Strapi
driver: bridge
`

How are you building the image or using docker compose for it?

@Eventyret I am using docker compose

@Eventyret I am using docker compose

Can you try with --force-recreate --build so it builds fresh images.

@Eventyret That fixed it! Thank you very much!


⚠ SceneTime has degraded performance

In c932a95, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 2456 ms

Resolved: SceneTime performance has improved in 2db95a1 after 6 minutes.


Why do example lrzip use empty seed?

https://github.com/aflgo/aflgo/blob/fd1b9f7/scripts/fuzz/lrzip-CVE-2018-11496.sh
@strongcourage thanks for your scripts.
I can set things up, fuzzing lrzip using aflgo, but I observed cycle explosion when using empty seed.
Log:
# echo "">in/in
# $AFLGO/afl-fuzz -m none -z exp -c 45m -i in -o out ./lrzip -t @@ |tee log.txt
aflgo (yeah!) 2.52b
[+] Running with EXP schedule and time-to-exploitation set to 45 minutes
[+] Looks like we're not running on a tty, so I'll be a bit less verbose.
[+] You have 4 CPU cores and 2 runnable tasks (utilization: 50%).
[+] Try parallel jobs - see docs/parallel_fuzzing.txt.
[*] Checking CPU core loadout...
[+] Found a free CPU core, binding to #1.
[*] Checking core_pattern...
[*] Checking CPU scaling governor...
[*] Setting up output directories...
[*] Scanning 'in'...
[+] No auto-generated dictionary tokens to reuse.
[*] Creating hard links for all input files...
[*] Validating target binary...
[*] Attempting dry run with 'id:000000,orig:in'...
[*] Spinning up the fork server...
[+] All right - fork server is up.
    len = 1, map size = 211, exec speed = 439 us
[!] WARNING: No new instrumentation output, test case may be useless.
[+] All test cases processed.

[!] WARNING: Some test cases look useless. Consider using a smaller set.
[+] Here are some useful stats:

    Test case count : 1 favored, 0 variable, 1 total
       Bitmap range : 211 to 211 bits (average: 211.00 bits)
        Exec timing : 439 to 439 us (average: 439 us)

[*] No -t option specified, so I'll use exec timeout of 20 ms.
[+] All set and ready to roll!
[*] Entering queue cycle 1.
[*] Fuzzing test case #0 (1 total, 0 uniq crashes found)...
[*] Fuzzing test case #1 (2 total, 0 uniq crashes found)...
[*] Entering queue cycle 2.
[*] Fuzzing test case #0 (2 total, 0 uniq crashes found)...
[*] Fuzzing test case #1 (2 total, 0 uniq crashes found)...
[*] Entering queue cycle 3.
[*] Fuzzing test case #0 (2 total, 0 uniq crashes found)...
[*] Fuzzing test case #1 (2 total, 0 uniq crashes found)...
[*] Entering queue cycle 4.
[*] Fuzzing test case #0 (2 total, 0 uniq crashes found)...
[*] Fuzzing test case #1 (2 total, 0 uniq crashes found)...
[*] Entering queue cycle 5.
[*] Fuzzing test case #0 (2 total, 0 uniq crashes found)...
[*] Fuzzing test case #1 (2 total, 0 uniq crashes found)...
[*] Entering queue cycle 6.
[*] Fuzzing test case #0 (2 total, 0 uniq crashes found)...
[*] Fuzzing test case #1 (2 total, 0 uniq crashes found)...
[*] Entering queue cycle 7.
[*] Fuzzing test case #0 (2 total, 0 uniq crashes found)...
[*] Fuzzing test case #1 (2 total, 0 uniq crashes found)...
[*] Entering queue cycle 8.
[*] Fuzzing test case #0 (2 total, 0 uniq crashes found)...
[*] Fuzzing test case #1 (2 total, 0 uniq crashes found)...
[*] Entering queue cycle 9.
[*] Fuzzing test case #0 (2 total, 0 uniq crashes found)...
[*] Fuzzing test case #1 (2 total, 0 uniq crashes found)...
[*] Entering queue cycle 10.
[*] Fuzzing test case #0 (2 total, 0 uniq crashes found)...
[*] Fuzzing test case #1 (2 total, 0 uniq crashes found)...
[*] Entering queue cycle 11.
[*] Fuzzing test case #0 (2 total, 0 uniq crashes found)...
[*] Fuzzing test case #1 (2 total, 0 uniq crashes found)...
[*] Entering queue cycle 12.

queue cycle number quickly increase, is this normal or as expected? I think this may due to afl cannot find any new paths using havoc, so the queue quickly finished over and over again.
Do you think generate a lrzip seed file by ./lrzip -b ../description-pak -o in/seed.lrz is a better choice?
As I remember in my previous fuzzing, AFLFast has the same phenomenon using empty seed.

Hi,
I just used the default empty seed. It’s better to use valid files as seed (in this case .lrz files). So you can use this file: https://github.com/strongcourage/fuzzing-corpus/tree/master/lrzip. Or you can use lrzip to compress various kinds of input files like images, texts or videos. For sure, AFL will explore more paths. Thanks.

Thanks, sounds resonable


fix: RecommendedFillers typo

Motivation
Closes #1306

Solution
Fix typo

PR Checklist

[ ] Added Tests
[ ] Added Documentation
[ ] Breaking changes

Has this been released? Looks like the latest released version still has this typo.


I'll be needing the images, XD wires, and content document for <rh-table>.
I'm currently developing the component with these Figma [wires].(https://www.figma.com/file/55pIOeQu2ry4oaGvhrkLjM/AsciiDoc-Elements?node-id=251%3A223&mode=dev).

Docs content done


Add gRPC support for WASM

Add gRPC support for WASM

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Let's see if that fix changes the behavior.

@jplevyak should we consider comment out throwException in _pthread_mutex_destroyHandler by default?

Yes, we should remove that as it is harmless.

I changed the format exception to specifically be "./test/extensions/filters/http/wasm/test_data" so that it only applies to the  WASM code.
I am going to merge this and we can talk about removing one of the gRPC Call APIs as a follow up.


adding formatting sections back to abstracts

Thanks for checking the code out!! @azurebrd
yes, using XML parser is easier to extract attributes, but extracting the text directly will lose html tags, even losing everything after first tag
so I have to use both XML parser and custom regex to extract the "Label" attribute name and to preserve the html tags.
See the code:
https://github.com/alliance-genome/agr_literature_service/blob/SCRUM-2844/agr_literature_service/lit_processing/data_ingest/pubmed_ingest/xml_to_json.py#L548
Also see the abstracts in the following two examples papers from literature_4006, there is one or more * in abstracts:
https://dev4006-literature-rest.alliancegenome.org/reference/AGRKB:101000000389559
https://dev4006-literature-rest.alliancegenome.org/reference/AGRKB:101000000513561
https://dev3006.alliancegenome.org/Biblio/?action=display&referenceCurie=AGRKB:101000000389559
https://dev3006.alliancegenome.org/Biblio/?action=display&referenceCurie=AGRKB:101000000513561

Thanks @azurebrd


How to get all Settings?

Hello,
Any idea how to get all settings, specially when settings is encrypted ?
If I am using general db query for encrypted settings only return encrypted data.

Hi,
Then you have to decrypt it manually by calling decrypt function

Ok.
When encryption is set, the key is encrypted too ?

Key is serialized using key serializer.

It seems I need to change the key without md5, because it will be strange the config name in md5 when listed

Yes, you have to

Do you think would be great if there is an option to switching from md5 and no md5 version ?

It should work if you are not using contexts


Add test cases for golang catalog

This commit adds test cases for golang catalog. Golang catalog test script will be sent out separately after  https://github.com/tektoncd/plumbing/pull/1323 is merged.
A tested e2e example can be found in: https://github.com/QuanZhang-William/golang/tree/test-pipelines

cc @vdemeester @vinamra28

Part of https://github.com/tektoncd-catalog/golang/issues/3

@vdemeester @vinamra28
I'm not sure whether we need some extra setup in the cluster if we want to use custom GOARCH param (like s390x or ppc64le)? This seems like a potential use case of matrix as documented here

I'm not sure whether we need some extra setup in the cluster if we want to use custom GOARCH param (like s390x or ppc64le)? This seems like a potential use case of matrix as documented here

We can use GOARCH in any cluster, no need for extra setup, it's all handled by the go compiler.

Sounds good, I will try to dogfood matrix in this case.
/cc @jerop


TypeError: Cannot call method 'convertScenarioOutlinesToScenarios' of undefined

Issue posted at the below location to avoid duplication:
http://stackoverflow.com/questions/27846007/cannot-call-method-convertscenariooutlinestoscenarios-of-undefined

This is an issue with cucumber.


Error pulling from gcloud private registry

Description
statusCode returns code 200. However, next pull give me an error. In gcloud private registry I have an image tagged as red:latest
How to reproduce
final DockerClient docker = DefaultDockerClient.builder()
                .uri(URI.create("http://<IP_ADDRESS>:2375"))
                .build();
AuthConfig authConfig = null;

            try {
                authConfig = AuthConfig.fromDockerConfig("https://gcr.io").build();
            } catch (IOException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }

        final int statusCode = docker.auth(authConfig);
        System.out.println("Auth esito: " + statusCode);

        docker.pull("gcr.io/pure-muse-748/red:latest", authConfig);

        System.out.println("pull eseguito.");

What do you expect
Pull of private image on my local Docker host
What happened instead
ERRO[0185] Attempting next endpoint for pull after error: manifest unknown: Failed to fetch "latest" from request "/v2/pure-muse-748/red/manifests/latest".

ERRO[0186] Not continuing with pull after error: Error: Status 403 trying to pull repository pure-muse-748/red: "Unable to access the repository: pure-muse-748/red; please verify that it exists and you have permission to access it (no valid credential was supplied)."

Software:
docker -H :2375 version
Client:
 Version:      1.11.1
 API version:  1.23
 Go version:   go1.5.4
 Git commit:   5604cbe
 Built:        Wed Apr 27 00:34:42 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.11.1
 API version:  1.23
 Go version:   go1.5.4
 Git commit:   5604cbe
 Built:        Wed Apr 27 00:34:42 2016
 OS/Arch:      linux/amd64

Full backtrace
Exception in thread "main" java.lang.reflect.InvocationTargetException
    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:498)
    at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: com.spotify.docker.client.exceptions.ImagePullFailedException: Image pull failed: gcr.io/pure-muse-748/red:latest: ProgressMessage{id=null, status=null, stream=null, error=Error: Status 403 trying to pull repository pure-muse-748/red: "Unable to access the repository: pure-muse-748/red; please verify that it exists and you have permission to access it (no valid credential was supplied).", progress=null, progressDetail=null}
    at com.spotify.docker.client.LoggingPullHandler.progress(LoggingPullHandler.java:44)
    at com.spotify.docker.client.ProgressStream.tail(ProgressStream.java:77)
    at com.spotify.docker.client.DefaultDockerClient.pull(DefaultDockerClient.java:987)
    at com.spotify.docker.client.DefaultDockerClient.pull(DefaultDockerClient.java:967)
    at client.Main.main(Main.java:54)
    ... 5 more

What does your ~/.docker/config.json look like?

To be clear, it's not necessary to post the entire contents of the file - but it would be good to verify the structure of the file and that it has an entry for "https://gcr.io"

Strange thing is that first authentication returns code 200
This is my ~/.docker/config.json
{ 	"auths": { 		"https://gcr.io": { 			"auth": "X2pzb25fa2V5OnsKICAidHlwZSI6ICJzZXJ2aWNlX2FjY291bnQiLAogICJwcm9qZWN0X2lkIjogInB1c [...etc] [... etc] mVsb3Blci5nc2VydmljZWFjY291bnQuY29tIgp9" 		} 	} }

I could be wrong, but I think authenticating with a token isn't supported by docker-client yet. That was added in docker 1.10, and we haven't caught up with all the 1.10 API features yet.
In the meantime you could try authenticating with a username and password instead. But I don't know the structure of the ~/.docker/config.json file, so I don't know exactly how you would need to put them in there.

@johnflavin you are right, the AuthConfig.Builder class expects that the auth value can be base64 decoded and then splits it on : to find a username and password to use.

I tried to make a docker login and authenticate with user + pass but config.json now has
{
	"auths": {
		"https://gcr.io": {
			"auth": "b2F1dGgyYWNjZ ... ... X1BIUA=="
		}
	}
}

same 403 error appears
I haven't found a valid config template example around in the web :(

Coming back to this issue, I think there are a few things going on:

docker-client doesn't know how to use tokens as @johnflavin

The access tokens for Google Container Registry (what the docker config file gets populated with if you run `gcloud docker -a) are short-lived tokens that are only valid for some period of time
For instance if I run gcloud docker --authorize-only to configure the daemon, the output is pretty explicit:
$> gcloud docker -a
Short-lived access for ['gcr.io', 'us.gcr.io', 'eu.gcr.io', 'asia.gcr.io', 'b.gcr.io', 'bucket.gcr.io', 'l.gcr.io', 'launcher.gcr.io', 'appengine.gcr.io', 'us-mirror.gcr.io', 'eu-mirror.gcr.io', 'asia-mirror.gcr.io', 'mirror.gcr.io'] configured.

Another option is to use https://github.com/GoogleCloudPlatform/docker-credential-gcr, which allows for integrating with GCR/gcloud via the somewhat-newish support for Credentials Helpers in docker.

Actually I don't think that a docker credential helper would work, since the authentication tokens are expected to be obtained by the client (e.g. the docker CLI) and the daemon / Remote API doesn't know anything about those.

addressed in docker-client v8.6.0 and later versions


Compatibility with @rollup/plugin-url

Is there a way to use this with @rollup/plugin-url? I'm using that plugin to add hashes to image names and want to have my icons src be generated dynamically using that plugin

I'll look into if this is compatible, it would be a really nice feature for sure 👍🏻

@benmccann Doesn't look like this is currently possible with the way the Rollup API and the @rollup/plugin-url handles emitting its assets, I believe this is a similar problem to what is outlined in https://github.com/rollup/rollup/issues/3595.
Fixes seem to coming down the road for this, once they're in I'll look to add this feature in


contract verification not going through

I have not been able to verify a contract since the process has changed and it is optional.
I tried using: --verify true or updated deploy.js to true by default or running npx  hardhat verify
All contract creation transaction are pending (example)
Probably related to this PR @aelmanaa
Could come from the process.env.ETHERSCAN_API_KEY || process.env.POLYGONSCAN_API_KEY  section

Hi @CL-Victor
Just tested on Mumbai and goerli (e.g., https://goerli.etherscan.io/address/0xF7934f67408828b7B8db039468d065BDe21a32B5#code) and it worked without any issue.

Make sure you have the latest version of the repo
you need to explicitly ask for verification(--verify true). e.g.: npx hardhat functions-deploy-client --network goerli --verify true

that being said, I see that I need to update the README

https://github.com/smartcontractkit/functions-hardhat-starter-kit/pull/38

I followed these steps and it wasn't working.
I just tried and it perfectly went through. I also notice that the transaction hash I shared in the first message isn't available anymore. It might be a Goerli issue.
Issue closed, thanks for your answer


[New] Set reference scale

Description
This PR implements Set reference scale in Maps category.
URL to README: README
Linked Issue(s)

swift/issues/5403

How To Test

Tap "Map Settings".
Select a value in the "Reference Scale" picker to change the reference scale of the map.
Tap "Set to Reference Scale" to update the map's scale to the selected reference scale.
Tap "Layer" and toggle whether a layer should honor the reference scale.

Screenshots

@CalebRas Could you please rebase your branch on v.next? I am unable to build your branch due to recent API changes. A fix has gone into the v.next branch.

Could you please rebase your branch on v.next? I am unable to build your branch due to recent API changes. A fix has gone into the v.next branch.

@philium Done.

Thank you for your feedback!


Delete restriction on version of pandas

IMPORTANT: Please do not create a Pull Request without creating an issue first.
Before submitting (must do checklist)

[x] Did you read the contribution guide?
[ ] Did you update the docs? We use Numpy format for all the methods and classes.
[ ] Did you write any new necessary tests?
[ ] Did you update the CHANGELOG?

Type of Change

[ ] Examples / docs / tutorials / contributors update
[ ] Bug fix (non-breaking change which fixes an issue)
[x] Improvement (non-breaking change which improves an existing feature)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Proposed Changes
There was a restriction of version of pandas to be less than 1.1. It can be removed now.
Related Issue

Closing issues

Codecov Report

Merging #274 (a3f8dff) into master (d1256ab) will decrease coverage by 31.53%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           master     #274       +/-   ##
===========================================
- Coverage   87.19%   55.66%   -31.54%
===========================================
  Files          92       92
  Lines        4522     4522
===========================================
- Hits         3943     2517     -1426
- Misses        579     2005     +1426

Impacted Files
Coverage Δ

etna/commands/__init__.py
0.00% <0.00%> (-100.00%)
:arrow_down:

etna/commands/backtest_command.py
0.00% <0.00%> (-96.43%)
:arrow_down:

etna/commands/forecast_command.py
0.00% <0.00%> (-92.00%)
:arrow_down:

etna/commands/__main__.py
0.00% <0.00%> (-87.50%)
:arrow_down:

etna/commands/resolvers.py
0.00% <0.00%> (-80.00%)
:arrow_down:

etna/analysis/outliers/density_outliers.py
22.72% <0.00%> (-75.00%)
:arrow_down:

etna/transforms/statistics.py
27.50% <0.00%> (-71.67%)
:arrow_down:

etna/analysis/outliers/median_outliers.py
25.00% <0.00%> (-70.84%)
:arrow_down:

etna/datasets/datasets_generation.py
26.47% <0.00%> (-70.59%)
:arrow_down:

etna/transforms/special_days.py
28.75% <0.00%> (-70.00%)
:arrow_down:

... and 52 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update d1256ab...a3f8dff. Read the comment docs.


Dial back rp_filter=2 from all interfaces to only necessary ones.

See: https://dcosjira.atlassian.net/browse/DCOS-265

I think you need:
ExecStartPre=/bin/bash -c 'for i in /proc/sys/net/ipv4/conf/vtep*/rp_filter; do echo 2 > $i; echo -n "$i: "; cat $i; done
ExecStartPre=/bin/bash -c 'for i in /proc/sys/net/ipv4/conf/m-*/rp_filter; do echo 2 > $i; echo -n "$i: "; cat $i; done
ExecStartPre=/bin/bash -c 'for i in /proc/sys/net/ipv4/conf/d-*/rp_filter; do echo 2 > $i; echo -n "$i: "; cat $i; done

@sargun updated!

Yes unfortunately I'm looking too late and the instances are already gone. But none of the clusters came up even after relaunching one of the tests. Something must be wrong.

So, the problem is that the overlay interfaces aren’t created until after the agent launches and sets up the overlay. This would be too early if we’re trying to confine the changes only to the VTEPs / Bridges. That's the reason the original patch applied to all / default.
I think you should just relax your check. The only way that the container could spoof the IP is if it has a raw socket, which requires CAP_NET_RAW or CAP_SYS_ADMIN. With these capabilities, it could probably do worse on the local system itself.

Alternatively, I think there is some systemd magic to call scripts / actions on interface up / creation? You can try that?

@djosborne Opinions?

@sargun I investigated doing systemd callbacks on interface creation but felt that the solution could quickly become too hacky. I feel the correct fix here is to make the components which create the vnic's also be responsible for configuring the rp_filter to meet there specifications on it. But the vnic creation is spread across three components, and therefore seems like a sizable task to update them.
Therefore, we're pushing forward with making an option to degrade the rp_filter check in calico's engine. Hopefully later we can implement "the correct fix", but this feels like the surest way to quickly get Calico working in DC/OS 1.8

@sargun I've been doing some more research on this that I wanted to share what I've found -

opening a raw socket only requires one permission: CAP_NET_RAW (not CAP_SYS_ADMIN).
In Docker, an (otherwise) unprivileged container can be launched with just CAP_NET_RAW by specifiying --cap-add=NET_RAW.

I don't know any scenarios where users might launch a container with just CAP_NET_RAW, but my point is that it is not always true that a container with CAP_NET_RAW "could probably do worse on the local system itself." It is possible to launch a container with just CAP_NET_RAW, but no other root privileges. And if that container is compromised, it could spoof its IP if rp_filter=loose.
Regardless, we're still pushing forward with changes to degrade our rp_filter check, and will warn the user of the above during Calico installation. Hopefully we can still dial back DC/OS' blanket rp_filter some point soon.


Add polaris cache command

Checklist

[x] Developer's Guide has been updated
[x] API documentation in the Developer's Guide (api.md) has any new or modified class, method and/or functions listed
[x] Documentation has been built locally and changes look as expected
[ ] Testing comment in the PR documents testing used to verify the changes

Seem to need #19 for my testing to be successful.

Testing
I was able to use this branch on Chrysalis to run both cosine_bell test cases and then create cached output for the mesh and init steps.  By including the fix in #19, I was also able to run the new cosine_bell_cached_init suite.


assert with body

[@gavinking] In #3997 it was proposed that we could support stuff like this:
assert (exists length, nonempty sequence, length>0) {
    return null;
}

Even though #3997 is now implemented, there may still be value in that. I personally find it to be a more pleasing and more powerful way to write "guards".
[Migrated from ceylon/ceylon-spec#1434]

Can't help but think of unless from Perl:
unless(exists a, exists b) {
  return null;
}

The proposed if! syntax would be my second favourite. Extending assert would indeed look better with else.
I guess the assert extension would also require that the block always terminates the containing function call somehow - otherwise it would not be an assertion? Unless and if! would not have this requirement I guess.

@xkr47 I suggested if!, because I think it's be neat and regular to allow it with while and assert as well (while!(is Null foo, is String bar), assert!(is Null foo, is String bar). I would also prefer meaningful keywords (unless, until, ???), but introducing new keywords is generally not a good idea...

I like the if! syntax with a small whitespace tweak:
if !(exists length, nonempty sequence, length > 0) {
    return null;
}

not far from:
if (!(exists length, nonempty sequence, length > )) {


Small UI updates for demo

Change John*iov -> john*iov because upper case letters are not valid
Add link to ERC20 demo tokens to the "need funds" section

Travis automatic deployment:
https://pr328-176_wallet-demo_iov.surge.sh
Storybook book automatic deployment:
https://storybook_pr328-176_wallet-demo_iov.surge.sh


BUG: Can't set ETS_TOOLKIT variable

Description of your problem
What steps will reproduce the problem?

Install Spyder + mayavi + wxpython with Anaconda.
Open Spyder->Preferences->Python console
See that the ETS_TOOLKIT setting is grayed out

What is the expected output? What do you see instead?

I should be able to set ETS_TOOLKIT to e.g. wx. Running scripts with ETS_TOOLKIT=wx python -i ... works fine, Spyder should be able to run scripts this way, too.

If I can't set ETS_TOOLKIT, it would be nice to know why via a tooltip (though not as critical if #1 is fixed).

Versions and main components

Spyder Version: 3.1.3
Python Version: 2.7.13
Qt Version:
PyQt Version:
Operating system: Linux x86_64

If this behavior is unexpected, I'm happy to try fixing it.
Dependencies
jedi =0.9.0      :  0.9.0 (OK)
matplotlib >=1.0 :  1.5.1 (OK)
nbconvert >=4.0  :  4.2.0 (OK)
numpy >=1.7      :  1.11.3 (OK)
pandas >=0.13.1  :  0.19.2 (OK)
pep8 >=0.6       :  1.7.0 (OK)
psutil >=0.3     :  5.0.1 (OK)
pyflakes >=0.5.0 :  1.5.0 (OK)
pygments >=2.0   :  2.1.3 (OK)
pylint >=0.25    :  1.6.4 (OK)
qtconsole >=4.2.0:  4.2.1 (OK)
rope >=0.9.4     :  0.9.4 (OK)
sphinx >=0.6.6   :  1.5.1 (OK)
sympy >=0.7.3    :  1.0 (OK)

If this behavior is unexpected, I'm happy to try fixing it.

Yes, it is. But the Python console is going to be removed in Spyder 3.2, so you would need to add this to the IPython console instead.
Is that Ok for you?

Ahh that's a bummer, I always use vanilla Python terminals to ensure full compatibility. But I guess it shouldn't matter much.
I'll try to look into it soon. I use mayavi + matplotlib a lot and they don't play nicely when using the same (default Qt) backend.

I'll tackle this once #4418 is fixed


migrate to Friendly Public Transport Format

@juliuste please have a look
This is WIP. Just like juliuste/db-prices#5, tests will only run on Node 7+.

bump.

👍


Setting useNativeDriver and scrollEventThrottle=1

thanks @brentvatne

Also, another data point is when I try to create an Animated.ListView instead of a scroll view like the docs say I get an error about the 'top' property not being supported. I'm just going to remove useNativeDriver entirely for the time being.

indeed, you need to use transform-translateY instead: https://github.com/cem2ran/react-conf-app/blob/exponent/app/scenes/Schedule/index.js#L226-L241


Store eth values in config with denominator

We should look at what cast --to-unit uses, maybe we can store the values in the config w/ a denominator.
> cast --to-unit "1 ether" wei
1000000000000000000

> cast --to-unit "100 gwei" wei
100000000000

https://github.com/foundry-rs/foundry/blob/master/crates/cast/src/lib.rs#L1261-L1273


FW-681 fixed handling of coap options

Hi @chris-ho,
Thanks a bunch for providing this PR. I see that there are a lot of .ewp and .ewt files committed, could you remove those changes from the PR in order to have a clean merge. You can keep them on your local branch, just don't push it on the PR branch. I will leave some comments on the code inline.
Mališa

@chris-ho let me know when you are done, so that I can do another pass and run some tests locally. The idea is to minimize the number of modified files by removing anything that is not specific to the issue.

@malishav if you want me to seperate the changes from cinfo i can do so, otherwise the PR should be ready again.

It seems your editor has changed the line endings in a bunch of files and you committed these changes to the repo. Before we can merge, we need to remove these edits. You can see them in the "Files changed" tab of the PR. Could you use git checkout to revert the changes to any file other than the ones in openapps. cjoin is fine.

@malishav i'm a little bit confused because if i open some of the files you mentioned i have windows style line endings which is the format we are using right?

We unfortunately have a mix of both unix line endings and windows. The problem for this PR is that you committed changes to files that should not be modified. You can see them here. An easy way to fix this is to checkout each individual file that should not be modified from the develop branch.

cleanup handled in new branch https://github.com/openwsn-berkeley/openwsn-fw/pull/371


Fix #584 follow link if path prefix is symlink.

Fix #584 follow a link if path prefix is symlink.

@hiroyuki-sato
Oh, thanks!

@dmikurube Please take a look this PR.
I'm wondering current implementation does not follow symbolic link directory.
If so, this change will break current compatibility.
The following is the reproduce steps.
After patch applied
./pkg/embulk-0.8.18.jar preview /path/to/config.yml
+---------+--------------+-------------------------+-------------------------+----------------------------+
| id:long | account:long |          time:timestamp |      purchase:timestamp |             comment:string |
+---------+--------------+-------------------------+-------------------------+----------------------------+
|       1 |       32,864 | 2015-01-27 19:23:49 UTC | 2015-01-27 00:00:00 UTC |                     embulk |
|       2 |       14,824 | 2015-01-27 19:01:23 UTC | 2015-01-27 00:00:00 UTC |               embulk jruby |
|       3 |       27,559 | 2015-01-28 02:20:02 UTC | 2015-01-28 00:00:00 UTC | Embulk "csv" parser plugin |
|       4 |       11,270 | 2015-01-29 11:54:36 UTC | 2015-01-29 00:00:00 UTC |                            |
+---------+--------------+-------------------------+-------------------------+----------------------------+

Reproduce steps.
create example
embulk example foo
2017-03-30 17:29:04.620 +0900: Embulk v0.8.18
Creating foo directory...
  Creating foo/
  Creating foo/csv/
  Creating foo/csv/sample_01.csv.gz
  Creating foo/seed.yml

Run following subcommands to try embulk:

   1. embulk guess foo/seed.yml -o config.yml
   2. embulk preview config.yml
   3. embulk run config.yml

embulk guess foo/seed.yml -o config.yml

OK Case
embulk preview config.yml
+---------+--------------+-------------------------+-------------------------+----------------------------+
| id:long | account:long |          time:timestamp |      purchase:timestamp |             comment:string |
+---------+--------------+-------------------------+-------------------------+----------------------------+
|       1 |       32,864 | 2015-01-27 19:23:49 UTC | 2015-01-27 00:00:00 UTC |                     embulk |
|       2 |       14,824 | 2015-01-27 19:01:23 UTC | 2015-01-27 00:00:00 UTC |               embulk jruby |
|       3 |       27,559 | 2015-01-28 02:20:02 UTC | 2015-01-28 00:00:00 UTC | Embulk "csv" parser plugin |
|       4 |       11,270 | 2015-01-29 11:54:36 UTC | 2015-01-29 00:00:00 UTC |                            |
+---------+--------------+-------------------------+-------------------------+----------------------------+

NG Case test make symlink directory
% cd foo
% ln -s csv csv_symlink
% cd ..

edit config.yml. Change path_prefix to symlink directory.
in:
  type: file
#  path_prefix: /path/to/foo/csv/sample_
  path_prefix: /path/to/foo/csv_symlink/sample_
  decoders:
  - {type: gzip}
  parser:
    charset: UTF-8
    newline: LF
    type: csv
    delimiter: ','
    quote: '"'
    escape: '"'
    null_string: 'NULL'
    trim_if_not_quoted: false
    skip_header_lines: 1
    allow_extra_columns: false
    allow_optional_columns: false
    columns:
    - {name: id, type: long}
    - {name: account, type: long}
    - {name: time, type: timestamp, format: '%Y-%m-%d %H:%M:%S'}
    - {name: purchase, type: timestamp, format: '%Y%m%d'}
    - {name: comment, type: string}
out: {type: stdout}

Run preview
% embulk preview config.yml
2017-03-30 17:30:06.808 +0900: Embulk v0.8.18
2017-03-30 17:30:07.804 +0900 [INFO] (0001:preview): Listing local files at directory '/path/to/foo/csv_symlink' filtering filename by prefix 'sample_'
2017-03-30 17:30:07.808 +0900 [INFO] (0001:preview): Loading files [/path/to/foo/csv_symlink]
java.lang.RuntimeException: java.io.FileNotFoundException: /path/to/foo/csv_symlink (Is a directory)
	at org.embulk.spi.util.InputStreamFileInput.nextFile(org/embulk/spi/util/InputStreamFileInput.java:170)
	at org.embulk.exec.SamplingParserPlugin.readSample(org/embulk/exec/SamplingParserPlugin.java:160)
	at org.embulk.exec.SamplingParserPlugin.readSample(org/embulk/exec/SamplingParserPlugin.java:155)
	at org.embulk.exec.SamplingParserPlugin.run(org/embulk/exec/SamplingParserPlugin.java:144)
	at org.embulk.spi.FileInputRunner.run(org/embulk/spi/FileInputRunner.java:153)
	at org.embulk.exec.SamplingParserPlugin$1.run(org/embulk/exec/SamplingParserPlugin.java:44)
	at org.embulk.spi.FileInputRunner$RunnerControl$1$1.run(org/embulk/spi/FileInputRunner.java:123)
	at org.embulk.exec.SamplingParserPlugin.transaction(org/embulk/exec/SamplingParserPlugin.java:137)
	at org.embulk.spi.FileInputRunner$RunnerControl$1.run(org/embulk/spi/FileInputRunner.java:117)
	at org.embulk.spi.util.Decoders$RecursiveControl.transaction(org/embulk/spi/util/Decoders.java:77)
	at org.embulk.spi.util.Decoders.transaction(org/embulk/spi/util/Decoders.java:33)
	at org.embulk.spi.FileInputRunner$RunnerControl.run(org/embulk/spi/FileInputRunner.java:114)
	at org.embulk.standards.LocalFileInputPlugin.resume(org/embulk/standards/LocalFileInputPlugin.java:79)
	at org.embulk.standards.LocalFileInputPlugin.transaction(org/embulk/standards/LocalFileInputPlugin.java:69)
	at org.embulk.spi.FileInputRunner.transaction(org/embulk/spi/FileInputRunner.java:65)
	at org.embulk.exec.SamplingParserPlugin.runFileInputSampling(org/embulk/exec/SamplingParserPlugin.java:34)
	at org.embulk.exec.PreviewExecutor.doPreview(org/embulk/exec/PreviewExecutor.java:96)
	at org.embulk.exec.PreviewExecutor.access$000(org/embulk/exec/PreviewExecutor.java:30)
	at org.embulk.exec.PreviewExecutor$1.run(org/embulk/exec/PreviewExecutor.java:70)
	at org.embulk.exec.PreviewExecutor$1.run(org/embulk/exec/PreviewExecutor.java:66)
	at org.embulk.spi.Exec.doWith(org/embulk/spi/Exec.java:25)
	at org.embulk.exec.PreviewExecutor.preview(org/embulk/exec/PreviewExecutor.java:66)
	at org.embulk.EmbulkEmbed.preview(org/embulk/EmbulkEmbed.java:169)
	at java.lang.reflect.Method.invoke(java/lang/reflect/Method.java:498)
	at org.jruby.javasupport.JavaMethod.invokeDirectWithExceptionHandling(org/jruby/javasupport/JavaMethod.java:453)
	at org.jruby.javasupport.JavaMethod.invokeDirect(org/jruby/javasupport/JavaMethod.java:314)
	at RUBY.preview(/Users/hsato/.embulk/bin/embulk!/embulk/runner.rb:35)
	at RUBY.run(/Users/hsato/.embulk/bin/embulk!/embulk/command/embulk_run.rb:305)
	at RUBY.<main>(/Users/hsato/.embulk/bin/embulk!/embulk/command/embulk_main.rb:2)
	at org.jruby.Ruby.runInterpreter(org/jruby/Ruby.java:850)
	at org.jruby.Ruby.loadFile(org/jruby/Ruby.java:2976)
	at org.jruby.RubyKernel.requireCommon(org/jruby/RubyKernel.java:963)
	at org.jruby.RubyKernel.require(org/jruby/RubyKernel.java:956)
	at org.jruby.RubyKernel$INVOKER$s$1$0$require19.call(org/jruby/RubyKernel$INVOKER$s$1$0$require19.gen)
	at RUBY.(root)(uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:1)
	at Users.hsato.$_dot_embulk.bin.embulk.embulk.command.embulk_bundle.invokeOther66:require(Users/hsato/$_dot_embulk/bin/embulk/embulk/command/file:/Users/hsato/.embulk/bin/embulk!/embulk/command/embulk_bundle.rb:51)
	at Users.hsato.$_dot_embulk.bin.embulk.embulk.command.embulk_bundle.<main>(file:/Users/hsato/.embulk/bin/embulk!/embulk/command/embulk_bundle.rb:51)
	at java.lang.invoke.MethodHandle.invokeWithArguments(java/lang/invoke/MethodHandle.java:627)
	at org.jruby.Ruby.runScript(org/jruby/Ruby.java:834)
	at org.jruby.Ruby.runNormally(org/jruby/Ruby.java:749)
	at org.jruby.Ruby.runNormally(org/jruby/Ruby.java:767)
	at org.jruby.Ruby.runFromMain(org/jruby/Ruby.java:580)
	at org.jruby.Main.doRunFromMain(org/jruby/Main.java:425)
	at org.jruby.Main.internalRun(org/jruby/Main.java:313)
	at org.jruby.Main.run(org/jruby/Main.java:242)
	at org.jruby.Main.main(org/jruby/Main.java:204)
	at org.embulk.cli.Main.main(org/embulk/cli/Main.java:23)
Caused by: java.io.FileNotFoundException: /path/to/foo/csv_symlink (Is a directory)
	at java.io.FileInputStream.open0(Native Method)
	at java.io.FileInputStream.open(FileInputStream.java:195)
	at java.io.FileInputStream.<init>(FileInputStream.java:138)
	at org.embulk.standards.LocalFileInputPlugin$2.open(LocalFileInputPlugin.java:188)
	at org.embulk.spi.util.InputStreamFileInput$OpenerProvider.openNext(InputStreamFileInput.java:74)
	at org.embulk.spi.util.InputStreamFileInput.nextFile(InputStreamFileInput.java:167)
	at org.embulk.exec.SamplingParserPlugin.readSample(SamplingParserPlugin.java:160)
	at org.embulk.exec.SamplingParserPlugin.readSample(SamplingParserPlugin.java:155)
	at org.embulk.exec.SamplingParserPlugin.run(SamplingParserPlugin.java:144)
	at org.embulk.spi.FileInputRunner.run(FileInputRunner.java:153)
	at org.embulk.exec.SamplingParserPlugin$1.run(SamplingParserPlugin.java:44)
	at org.embulk.spi.FileInputRunner$RunnerControl$1$1.run(FileInputRunner.java:123)
	at org.embulk.exec.SamplingParserPlugin.transaction(SamplingParserPlugin.java:137)
	at org.embulk.spi.FileInputRunner$RunnerControl$1.run(FileInputRunner.java:117)
	at org.embulk.spi.util.Decoders$RecursiveControl.transaction(Decoders.java:77)
	at org.embulk.spi.util.Decoders.transaction(Decoders.java:33)
	at org.embulk.spi.FileInputRunner$RunnerControl.run(FileInputRunner.java:114)
	at org.embulk.standards.LocalFileInputPlugin.resume(LocalFileInputPlugin.java:79)
	at org.embulk.standards.LocalFileInputPlugin.transaction(LocalFileInputPlugin.java:69)
	at org.embulk.spi.FileInputRunner.transaction(FileInputRunner.java:65)
	at org.embulk.exec.SamplingParserPlugin.runFileInputSampling(SamplingParserPlugin.java:34)
	at org.embulk.exec.PreviewExecutor.doPreview(PreviewExecutor.java:96)
	at org.embulk.exec.PreviewExecutor.access$000(PreviewExecutor.java:30)
	at org.embulk.exec.PreviewExecutor$1.run(PreviewExecutor.java:70)
	at org.embulk.exec.PreviewExecutor$1.run(PreviewExecutor.java:66)
	at org.embulk.spi.Exec.doWith(Exec.java:25)
	at org.embulk.exec.PreviewExecutor.preview(PreviewExecutor.java:66)
	at org.embulk.EmbulkEmbed.preview(EmbulkEmbed.java:169)
	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:498)
	at org.jruby.javasupport.JavaMethod.invokeDirectWithExceptionHandling(JavaMethod.java:453)
	at org.jruby.javasupport.JavaMethod.invokeDirect(JavaMethod.java:314)
	at org.jruby.java.invokers.InstanceMethodInvoker.call(InstanceMethodInvoker.java:46)
	at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:338)
	at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:163)
	at org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:315)
	at org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:73)
	at org.jruby.ir.interpreter.InterpreterEngine.interpret(InterpreterEngine.java:90)
	at org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:214)
	at org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:200)
	at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:205)
	at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:358)
	at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:195)
	at org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:324)
	at org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:73)
	at org.jruby.ir.interpreter.InterpreterEngine.interpret(InterpreterEngine.java:84)
	at org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:179)
	at org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:165)
	at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:197)
	at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:338)
	at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:163)
	at org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:315)
	at org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:73)
	at org.jruby.ir.interpreter.Interpreter.INTERPRET_ROOT(Interpreter.java:112)
	at org.jruby.ir.interpreter.Interpreter.execute(Interpreter.java:99)
	at org.jruby.ir.interpreter.Interpreter.execute(Interpreter.java:35)
	at org.jruby.ir.IRTranslator.execute(IRTranslator.java:42)
	at org.jruby.Ruby.runInterpreter(Ruby.java:850)
	at org.jruby.Ruby.loadFile(Ruby.java:2976)
	at org.jruby.runtime.load.LibrarySearcher$ResourceLibrary.load(LibrarySearcher.java:243)
	at org.jruby.runtime.load.LibrarySearcher$FoundLibrary.load(LibrarySearcher.java:34)
	at org.jruby.runtime.load.LoadService.tryLoadingLibraryOrScript(LoadService.java:885)
	at org.jruby.runtime.load.LoadService.smartLoadInternal(LoadService.java:525)
	at org.jruby.runtime.load.LoadService.require(LoadService.java:396)
	at org.jruby.RubyKernel.requireCommon(RubyKernel.java:963)
	at org.jruby.RubyKernel.require19(RubyKernel.java:956)
	at org.jruby.RubyKernel$INVOKER$s$1$0$require19.call(RubyKernel$INVOKER$s$1$0$require19.gen)
	at org.jruby.internal.runtime.methods.JavaMethod$JavaMethodOneOrNBlock.call(JavaMethod.java:383)
	at org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:61)
	at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:161)
	at org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:315)
	at org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:73)
	at org.jruby.ir.interpreter.InterpreterEngine.interpret(InterpreterEngine.java:84)
	at org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:179)
	at org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:165)
	at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:197)
	at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:338)
	at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:163)
	at Users.hsato.$_dot_embulk.bin.embulk.embulk.command.embulk_bundle.invokeOther66:require(file:/Users/hsato/.embulk/bin/embulk!/embulk/command/embulk_bundle.rb:51)
	at Users.hsato.$_dot_embulk.bin.embulk.embulk.command.embulk_bundle.RUBY$script(file:/Users/hsato/.embulk/bin/embulk!/embulk/command/embulk_bundle.rb:51)
	at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
	at org.jruby.ir.Compiler$1.load(Compiler.java:111)
	at org.jruby.Ruby.runScript(Ruby.java:834)
	at org.jruby.Ruby.runNormally(Ruby.java:749)
	at org.jruby.Ruby.runNormally(Ruby.java:767)
	at org.jruby.Ruby.runFromMain(Ruby.java:580)
	at org.jruby.Main.doRunFromMain(Main.java:425)
	at org.jruby.Main.internalRun(Main.java:313)
	at org.jruby.Main.run(Main.java:242)
	at org.jruby.Main.main(Main.java:204)
	at org.embulk.cli.Main.main(Main.java:23)

Error: java.io.FileNotFoundException: /path/to/foo/csv_symlink (Is a directory)

@hiroyuki-sato Compatibility is worth considering. What do you think to have a configuration follow_symlinks to control the behavior?

Test directory layout.
csv
|-- dir1
|   `-- sample_01.csv.gz
`-- dir2 -> dir1

2 directories, 1 file

Current implementation.
If a symlink exists in a subdirectory, it raises an exception.
IMO, It's a bug.
Solution

Plan A: Always follow a symlink. (current PR)
Plan B: Add follow_symlinks configuration option.

follow_symlinks false: Skip symblic directory.
follow_symlinks true: Follow symlink.

Due to current implementation behavior, probably nobody uses symlink in the data directory.
That's why I think Plan A is OK.
How do you think?

And for my Java skill, I can't implement Plan B immediately. :cry:

@dmikurube
I wrote follow_symlink option version.
Which is better?
https://github.com/hiroyuki-sato/embulk/commit/f9b5baa5c6bf17d3964c8889c303490d7d8a4da5
And do you know how to create the empty set at this part?
https://github.com/hiroyuki-sato/embulk/commit/f9b5baa5c6bf17d3964c8889c303490d7d8a4da5#diff-cd7e0cf53a7c6a54ad50ce82d4680196R139

It's good to me. Can you rename the option with "follow_symlinks"?

@muga Thank you for the comment.
I renamed the option name with follow_symlinks.
PTAL.
Test
Directories layout
hoge
|-- csv
|   |-- dir1
|   |   `-- sample_01.csv.gz
|   `-- dir2 -> dir1
`-- seed.yml

3 directories, 2 files

in:
  type: file
  path_prefix: /private/tmp/hoge/csv
#  follow_symlinks: true
  decoders:
  - {type: gzip}
  parser:
    charset: UTF-8
    newline: LF
    type: csv
    delimiter: ','
    quote: '"'
    escape: '"'
    null_string: 'NULL'
    trim_if_not_quoted: false
    skip_header_lines: 1
    allow_extra_columns: false
    allow_optional_columns: false
    columns:
    - {name: id, type: long}
    - {name: account, type: long}
    - {name: time, type: timestamp, format: '%Y-%m-%d %H:%M:%S'}
    - {name: purchase, type: timestamp, format: '%Y%m%d'}
    - {name: comment, type: string}
out: {type: stdout}

follow_symlinks: false (default)
2017-04-01 22:16:32.265 +0900 [INFO] (0001:transaction): Listing local files at directory '/private/tmp/hoge/csv' filtering filename by prefix ''
2017-04-01 22:16:32.274 +0900 [INFO] (0001:transaction): Loading files [/private/tmp/hoge/csv/dir1/sample_01.csv.gz]
2017-04-01 22:16:32.355 +0900 [INFO] (0001:transaction): Using local thread executor with max_threads=8 / output tasks 4 = input tasks 1 * 4
2017-04-01 22:16:32.365 +0900 [INFO] (0001:transaction): {done:  0 / 1, running: 0}
1,32864,2015-01-27 19:23:49,20150127,embulk
2,14824,2015-01-27 19:01:23,20150127,embulk jruby
3,27559,2015-01-28 02:20:02,20150128,Embulk "csv" parser plugin
4,11270,2015-01-29 11:54:36,20150129,
2017-04-01 22:16:32.675 +0900 [INFO] (0001:transaction): {done:  1 / 1, running: 0}
2017-04-01 22:16:32.683 +0900 [INFO] (main): Committed.
2017-04-01 22:16:32.683 +0900 [INFO] (main): Next config diff: {"in":{"last_path":"/private/tmp/hoge/csv/dir1/sample_01.csv.gz"},"out":{}}

follow_symlinks: true
2017-04-01 22:17:12.654 +0900: Embulk v0.8.18
2017-04-01 22:17:25.713 +0900 [INFO] (0001:transaction): Listing local files at directory '/private/tmp/hoge/csv' filtering filename by prefix ''
2017-04-01 22:17:25.726 +0900 [INFO] (0001:transaction): Loading files [/private/tmp/hoge/csv/dir1/sample_01.csv.gz, /private/tmp/hoge/csv/dir2/sample_01.csv.gz]
2017-04-01 22:17:25.874 +0900 [INFO] (0001:transaction): Using local thread executor with max_threads=8 / output tasks 4 = input tasks 2 * 2
2017-04-01 22:17:25.897 +0900 [INFO] (0001:transaction): {done:  0 / 2, running: 0}
1,32864,2015-01-27 19:23:49,20150127,embulk
1,32864,2015-01-27 19:23:49,20150127,embulk
2,14824,2015-01-27 19:01:23,20150127,embulk jruby
2,14824,2015-01-27 19:01:23,20150127,embulk jruby
3,27559,2015-01-28 02:20:02,20150128,Embulk "csv" parser plugin
3,27559,2015-01-28 02:20:02,20150128,Embulk "csv" parser plugin
4,11270,2015-01-29 11:54:36,20150129,
4,11270,2015-01-29 11:54:36,20150129,
2017-04-01 22:17:26.271 +0900 [INFO] (0001:transaction): {done:  2 / 2, running: 0}
2017-04-01 22:17:26.271 +0900 [INFO] (0001:transaction): {done:  2 / 2, running: 0}
2017-04-01 22:17:26.283 +0900 [INFO] (main): Committed.
2017-04-01 22:17:26.284 +0900 [INFO] (main): Next config diff: {"in":{"last_path":"/private/tmp/hoge/csv/dir2/sample_01.csv.gz"},"out":{}}

@muga
Do I need to execute Reformat code and Optimize imports?
https://github.com/hiroyuki-sato/embulk/commit/7d7c4a516293310436e564ebc02562b6ce7f1e87

Is your question why the follow_symlinks option is false by default?
Is this correct?
I think the following

Current implementation raises an exception when a file is a symbolic link(point to a directory).
So currently, it can't follow the symbolic link.
That's why I set default option to false.

But I have no objection that the follow_symlinks option change to true by default.
I think it is comfortable for many users.

@muga @dmikurube Thank you for the comment.
Forgive me my poor English.
First, let's summarize current behavior.

Symbolic link file point to file only: open it.
Symbolic link file point to a directory: raise an exception.

Config file.
in:
  type: file
  path_prefix: /private/tmp/link_sample/csv
  decoders:
  - {type: gzip}
  parser:
    charset: UTF-8
    newline: LF
    type: csv
    delimiter: ','
    quote: '"'
    escape: '"'
    null_string: 'NULL'
    trim_if_not_quoted: false
    skip_header_lines: 1
    allow_extra_columns: false
    allow_optional_columns: false
    columns:
    - {name: id, type: long}
    - {name: account, type: long}
    - {name: time, type: timestamp, format: '%Y-%m-%d %H:%M:%S'}
    - {name: purchase, type: timestamp, format: '%Y%m%d'}
    - {name: comment, type: string}
out: {type: stdout}

Case1: A symbolic link points to regular files only.
link_sample/csv/
|-- dir1
|   |-- sample_01.csv.gz
|   |-- sample_02.csv.gz -> sample_01.csv.gz
|   `-- sample_03.csv.gz -> /tmp/sample_03.csv.gz

2017-04-03 16:16:06.619 +0900 [INFO] (0001:transaction): Loading files [/private/tmp/link_sample/csv/dir1/sample_01.csv.gz, /private/tmp/link_sample/csv/dir1/sample_02.csv.gz, /private/tmp/link_sample/csv/dir1/sample_03.csv.gz]
...

This case works correctly.

sample_02.csv.gz and sample_03.csv.gz are symbolic files.
Load all files even a input data is symbolic link file.

Case2: A symbolic link file point to directory and files.
link_sample/csv
|-- dir1
|   |-- sample_01.csv.gz
|   |-- sample_02.csv.gz -> sample_01.csv.gz
|   `-- sample_03.csv.gz -> /tmp/sample_03.csv.gz
`-- dir2 -> dir1

2017-04-03 16:20:12.628 +0900 [INFO] (0001:transaction): Loading files [/private/tmp/link_sample/csv/dir1/sample_01.csv.gz, /private/tmp/link_sample/csv/dir1/sample_02.csv.gz, /private/tmp/link_sample/csv/dir1/sample_03.csv.gz, /private/tmp/link_sample/csv/dir2]
...
org.embulk.exec.PartialExecutionException: java.lang.RuntimeException: java.io.FileNotFoundException: /private/tmp/link_sample/csv/dir2 (Is a directory)
	at org.embulk.exec.BulkLoader$LoaderState.buildPartialExecuteException(org/embulk/exec/BulkLoader.java:373)
	at org.embulk.exec.BulkLoader.doRun(org/embulk/exec/BulkLoader.java:591)
	at org.embulk.exec.BulkLoader.access$000(org/embulk/exec/BulkLoader.java:33)

Set loading files /private/tmp/link_sample/csv/dir2(symbolic link(direcotry)) as input data.
When the dir2 try to open, raise an Exception java.io.FileNotFoundException.

That's why current implementation can't follow a symbolic link (point to directory).

@dmikurube @hiroyuki-sato thank you for summarizing. First follow_symlinks==false is incompatible with the current behavior. The current behavior throws FileNotFoundException, Embulk stops and then any data are not ingested.
The current follow_symlinks==false behavior skips visiting symlinks of directories. If the specified path_prefix includes non-symlinked files and symlinks of directories, the PR enables ingesting data non-symlinked files. Because symlinks of directories are ignored.
This behavior is not small change. it's better to keep backward compatibility with the current behavior.

Sorry, I'm still confused. What "current" means? I meant the existing master's HEAD by "current", but others meant different...
Let's talk with "existing" and "proposed". Sorry about that.

Sorry for the confusion.
Current = v0.8.18
I'll use the word latest release or write version explicitly.
I changed the words at previous posts.

Okay, thanks. Then, I don't understand why the proposed follow_symlinks==false is incompatible with the existing behavior from the code.
From https://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#walkFileTree(java.nio.file.Path, java.nio.file.FileVisitor), the existing Files.walkFileTree(directory, new SimpleFileVisitor<Path>... is the same with non-FOLLOW_LINKS. Then, it looks to me that the proposed follow_symlinks==false is compatible with the existing, and follow_symlinks==true is the new behavior.
We may need to make it clear what we're fixing...

@dmikurube about code formatting.
I always use Reformat code and Optimize imports in the IntelliJ IDE.
If you it's OK, I'll apply this change.
The format is Airlift, I'm OK to change another style if #582 resolved.
https://github.com/hiroyuki-sato/embulk/commit/8b30653defdeef3044a3ee5849838a34ac079e35
If I should change code format after #582 resolved, I'll modify the code minimize

@hiroyuki-sato We should at least separate PRs of behavior changes and refactoring including cleanups and reformatting for healthy code reviews. Such reformatting PRs will be welcome (when we decide), but let's do in another PR.

@dmikurube OK, I don't clean up and reformat code in this PR.

Compatible or Incompatible.

The following viewpoint, I think this change is incompatible.

Files.walkFileTree(directory, new SimpleFileVisitor<Path>... does not follow symlink directory.
Proposed change follow symbolic directory if follow_symlinks set true by default.

follow_symlink: true or false by default

I think It is better to set follow_symlinks true by default.

Let's consider the following scenario.
link_sample
|-- csv
|   `-- sample_01.csv.gz
|-- csv_link -> csv
`-- seed.yml

in:
  type: file
#  path_prefix: /private/tmp/link_sample/csv/sample_
  path_prefix: /private/tmp/link_sample/csv_link/sample_
  follow_symlinks: false
  decoders:
  - {type: gzip}
  parser:
    charset: UTF-8
    newline: LF
    type: csv
    delimiter: ','
    quote: '"'
    escape: '"'
    null_string: 'NULL'
    trim_if_not_quoted: false
    skip_header_lines: 1
    allow_extra_columns: false
    allow_optional_columns: false
    columns:
    - {name: id, type: long}
    - {name: account, type: long}
    - {name: time, type: timestamp, format: '%Y-%m-%d %H:%M:%S'}
    - {name: purchase, type: timestamp, format: '%Y%m%d'}
    - {name: comment, type: string}
out: {type: stdout}

If follow_symlink is false by default, the result is no input data.
2017-04-03 18:59:17.246 +0900 [INFO] (0001:transaction): Listing local files at directory '/private/tmp/link_sample/csv_link' filtering filename by prefix 'sample_'
2017-04-03 18:59:17.251 +0900 [INFO] (0001:transaction): Loading files []
2017-04-03 18:59:17.314 +0900 [INFO] (0001:transaction): Using local thread executor with max_threads=8 / tasks=0
2017-04-03 18:59:17.325 +0900 [INFO] (main): Committed.
2017-04-03 18:59:17.325 +0900 [INFO] (main): Next config diff: {"in":{},"out":{}}

I think users expect that the Embulk will read csv_link/sample_01.csv.gz.
Additionally, the latest version(v0.8.18) raise an exception if input data is a symbolic directory.
For this reason, there are no users to use the symbolic link which points to a directory at this time.
Conclusion.
This PR fix and change the following behavior.

Avoid an exception and traverse the directory if a symbolic link points to a directory.
Add follow_symlinks option for disable traverse symbolic directory if follow_symlinks set to false.

@hiroyuki-sato Sorry, I don't get your points yet... Can you summarize facts in short :

What is the problem to solve.
How the existing implementation works.
How your proposed follow_symlinks == true works.
How your proposed follow_symlinks == false works.

@dmikurube Thank you for the comment.
I describe simply about this PR.

What is the problem to solve.

Avoid raising an exception if a symbolic link points to a directory.
Add follow_symlinks options.

How the existing implementation works.

If a symbolic link points to a directory, the latest version (v0.8.18) throws FileNotFoundException, The Embulk stops and then any data are not ingested
If a symbolic link points to a file, ingested it.

How your proposed follow_symlinks == true works.

Traverse directory if a symbolic link file point to a directory.
If a symbolic link points to a file, ingested it(no change current behavior).
This is the default behavior in this PR.

How your proposed follow_symlinks == false works.

Don't traverse directory if a symbolic link file point to a directory.
If a symbolic link points to a file, ingested it(no change current behavior).

@dmikurube
It's hard to write test codes for me. I have no idea how to write it for symbolic links.
Can you write sample code for me?
By the way, I add the following message. It may helpful for users.
2017-04-04 09:22:40.673 +0900 [INFO] (0001:transaction): The option `follow_symlinks` set to `false`. Disable visit symbolic links to directories.

@muga From those behaviors described in #585 (comment), follow_symlinks == false seems better as default because the behavior does not change in terms of that "files under symlink'ed directories are finally not ingested". Wdyt?

Sorry for taking so long to reply. The change looks good to me. I merge this after I confirm that the change works expectedly on my local.

@hiroyuki-sato I created PR for your original branch. Please take a look.

@muga Merged! Thank you.
Both follow_symlinks true and false,
it ingested a symbolic link which points to a file.
How do you think this sentence in the built-in manual?
If `true`, follow symbolic links

Is it better the following?
If `true`, follow symbolic link directories

@hiroyuki-sato sounds good. can you fix it?

@muga Thank you for reviewing.
I fixed the built-in document.

@hiroyuki-sato Thank you. I will merge this PR once the CI passed. cc: @dmikurube

Thank you!


[Bug-App]: Not able to download csv but only run name.

Describe the bug

The version of the browser : Arc and Google Chrome
The version of the operating system : MacOS
I was able to download CSV data from here.

But I couldn't download metric data but run name.
Could any one know how to solve this problem? Thank you

I'm having the same problem as you

Same problem

Same issue and tried with multiple plots, with and without grouping the runs

I’m experiencing the same issue and have tested multiple methods, including filters and groups, but haven’t found a solution yet.

I am having same issue

Same

Same

csv data cannot be saved, only the project name is displayed, hope to solve it as soon as possible

same problem

the same as u,hope fixed soon.

Thank you for reporting this issue to us. We are now looking into these and will get back for an update.

same problem, hope to solve it as soon as possible,plz🙏

hi guys you can download via wandb.Api() ,but u should give the runs_id and the metric you want to the api.

hi guys you can download via wandb.Api() ,but u should give the runs_id and the metric you want to the api.

Hi, could you please give me a detailed step by step guide?

The csv data can now be downloaded！ Thank you.

Hi everyone!
Good day! Our Engineering team have fixed the issue and you should now be able to download a CVS output with correct entries. Let us know if this now works for you now or if you are still seeing issues.
Thanks,
Paulo

It works now.
Thank you for fixing.

Thank you @meeseshun for confirming. If anyone still encounters any issue with the export CSV, please do let us know.


Waiting for response form webserver

Hi,
Thanks for this API for the RING.com doorbell.
I've tried use it on a apache webserver.
I've add my credentials to the example.php file and try to access it through the browser.
After a few minutes it still waiting for a response without printing a message on the screen.
Are you familiare with this? I opened all the firewall ports listed on: https://support.ring.com/hc/en-us/articles/205385394-What-Ports-Do-I-Need-to-Open-in-My-Firewall-for-Ring-Doorbells-and-Chimes-
Hope you can help me out.
Kind Regard, Jan Willem

Same here. Just "Authenticating...". What are we missing?

You can't run the script via a webserver. It should be  executed from the command line as it will run forever.
There's a infinitive loop in which every 5 seconds is checked if somebody pressed your doorbell.
Try to run it like:
php example.php


Separate section for Standard Problems

We have a couple of standard standard problems like coin change problem, rod cutting problem etc..
Should we have a separate section for their implementations ?

@Anshuman-Verma something similar was discussed before, but nothing came out of it.
still its worth a discussuon.
Views? @singhpratyush @aviaryan @Prakash2403 @yashLadha @aashutoshrathi @mohitkyadav

@Anshuman-Verma: See #148.

I have reopened #148. We can continue the discussion there.

Alright.


Motor AttributeError

ERROR:aiohttp.server:Error handling request
Traceback (most recent call last):
File "/home/oscar/.pyenv/versions/ads/lib/python3.6/site-packages/aiohttp/web_protocol.py", line 390, in start
resp = await self._request_handler(request)
File "/home/oscar/.pyenv/versions/ads/lib/python3.6/site-packages/aiohttp/web_app.py", line 352, in _handle
resp = await handler(request)
File "/home/oscar/.pyenv/versions/ads/lib/python3.6/site-packages/aiohttp/web_middlewares.py", line 106, in impl
return await handler(request)
File "/home/oscar/.pyenv/versions/ads/lib/python3.6/site-packages/aiohttp_session/init.py", line 149, in factory
response = await handler(request)
File "/home/oscar/.pyenv/versions/ads/lib/python3.6/site-packages/aiohttp/web_middlewares.py", line 106, in impl
return await handler(request)
File "/home/oscar/.pyenv/versions/ads/lib/python3.6/site-packages/aiohttp_admin/backends/mongo.py", line 47, in list
count = await self._collection.find(query).count()
AttributeError: 'AsyncIOMotorCursor' object has no attribute 'count'

Looks like motor changed API or something like that, we should probably pin motor version or something.


Set custom environment variable for ssh authentication with Git extension

I am successfully able to use ssh  within PowerShell  in the vscode built-in terminal. However, oddly the Git extension for VS Code seems to use some other ssh process to perform authentication and it always fails.
In order to get this to work, I need to set SSH_AUTHSOCK only for the git extension for authentication purposes. Note, settings this globally as a windows environment variable is not a viable solution as it breaks ssh authentication in other terminal applications. Note, I am using the latest available Win OpenSSH (downloaded throught github) and I am also using the latest available version of Git for Windows.

resolved by passing GIT_SSH_COMMAND to the win32 open ssh  path.

Resolved by forcing GIT to use Win32 OpenSSH instead, through
GIT_SSH_COMMAND


Using slots in top navigation title link causes focus issue

Summary of the bug
When passing custom elements to the "app-title" and "app-icon" slots in a top navigation component, both elements are focussable but, when focussed, are within the same focus indicator, so it appears to a keyboard user as though they have to tab twice before their focus moves onto the next element on the page.
🪜 How to reproduce

Go to the ICDS website, or the top navigation code example demonstrating the use of slots.
Tab until the focus indicator appears on the app title link on the top navigation.
Tab again.
See how it looks like your focus has not moved (you have to tab twice in order to move onto the next element on the page).

📸 Screenshots or code
This is because, when you slot in a title (or short title) and icon, you have to give each one an href in order for both the icon / image and the text to be clickable and work like a link. So they both become focussable.

But :focus-within is used, so focussing on either shows the same surrounding focus indicator.

🖥 📱 Device

Type: Desktop
Device: MacBook
OS version: macOS14
Browser: Chrome, Safari, Edge, Firefox

🧐 Expected behaviour
It should only require one tab press to move the visible focus away from the title link.
📝 Acceptance Criteria
Given that I am on a page which uses slots in the title link for the top navigation,
When I tab to it,
Then I should only need to tab one more time for my visible focus to move onto the next focussable element on the page.
Additional info
I would say this is probably a very minor issue (unless there are any WCAG criteria which this would fail) as the user can easily move their focus onto the next focussable element on the page by pressing tab again.

Ideas for a possible solution
Having had a quick look into this, I have come up with a possible solution which would be to tell developers to just pass a normal image to the app-icon slot (so not an <a>, or NavLink, or anything with an href) and then we add padding and a negative margin to the <a slot="app-title"> element so that it covers the app-icon icon / image area, like this:

So wherever they click, on the text, or on the image, or even in between, it will always navigate them to the link address.
We could possibly avoid a breaking change by only applying that padding and margin if the app-icon element is not an <a>.
Note: Depending on if we go with this solution or not, we may need to update the code example with slots and make the change to the top nav on the ICDS website. (Should probably update our Storybook examples as well).


history_view in admin functionality

Right now the history_view within admin looks the same as the one we would normally have. Are there any plans to create a history_view template similar to the one in django-simple-history? I.e. allowing you to see the real history of an object and select older versions to restore?

Hey @rossmechanic, thanks for the suggestion. Right now, there are no plans to implement this. However, I wouldn't reject it, if someone would take over the implementation of this. As you may have noticed, we didn't focus as all on the integration to the admin interface right now... I'm tagging this issue as a "help wanted" ticket.

Sure. Happy to implement it. I'll put up a PR within the next week.


HOSTEDCP-1227: Retrieve CAPZ image from OCP release image

What this PR does / why we need it:
Retrieve the CAPZ image from the OCP release image if the CAPZ image wasn't defined as an environment variable or as an annotation on the HostedCluster CR.
Which issue(s) this PR fixes:
Fixes HOSTEDCP-1227
Checklist

[x] Subject and description added to both, commit and PR.
[x] Relevant issues have been referenced.
[ ] This change includes docs.
[ ] This change includes unit tests.

/test verify

/lgtm

Thanks!
/approve
/lgtm


White space cause curl error

The curl request : "curl --request POST "<IP_ADDRESS>:5001/score" --header 'Content-Type: application/json' --data @sample-request.json"
should be replaced by : "curl --request POST "<IP_ADDRESS>:5001/score" --header 'Content-Type:application/json' --data @sample-request.json"
The white space after "Content-Type:" create the following error in curl:  "curl: (6) Could not resolve host: application"
Although, you still receive the response from the server correctly.

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

ID: b72abb4f-14e0-998f-8959-fb1df8c88d23
Version Independent ID: 443e93c3-2b28-5510-11cb-6075f44c5389
Content: Azure Machine Learning inference HTTP server - Azure Machine Learning
Content Source: articles/machine-learning/how-to-inference-server-http.md
Service: machine-learning
Sub-service: inferencing
GitHub Login: @shohei1029
Microsoft Alias: shnagata

@MysteryHS
Thanks for your feedback! We will investigate and update as appropriate.

@MysteryHS
Thanks for reporting this! We have created a PR for this issue and the changes should go live soon.
We are going to close this thread as resolved but if there are any further questions regarding the documentation, please tag me in your reply and we will be happy to continue the conversation.


Audio receiver nr of channels

We have products that do not support an arbitrary amount of audio channels. For us now either 8/16/64 channels. However there seems to be now way to express this in the current IS-04/IS-05 API. This will go wrong, for example, with the testing tool suite IS-05 Interaction with IS-04 test 18. Which will test with 2 channel SDP files.

This sounds like useful input to #89. The testing tool issue sounds slightly different and may (in the worst case) require us to add a configuration parameter. Could you perhaps open a separate issue there for that?

Thanks for the quick reply! Agreed, sounds similar. I will create an issue on the nmos-testing repo for this.

Yep, that's a good data point for the future caps work that we are keen to get off the ground, and suggests in this instance that e.g. min_channels, max_channels, would not be sufficiently expressive.

Testing issue dealt with, after https://github.com/AMWA-TV/nmos-testing/issues/494
Receiver Capabilities activity now started.


Opentelemetry implementation for AKS

Deploy grafana & jaeger with quarkus application using helm chart.

an example
https://docs.microsoft.com/en-us/azure/aks/ingress-own-tls?tabs=azure-cli

Tried a possibility like URL rewrite, but it was not working. Adding grafana/jaeger as part of the url. But due to nginx related issues, dropped this plan.
The current solution is to create additional public ip address and configure subdomains and use.


orc mage racial is not activated .

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Sim Links and Screenshots
If applicable, add links to your sim settings or screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

Selecting the default APL and Orc shows the Racial being properly activated
Make sure your APL the action to activate other cooldowns or a specific action for Blood Fury


Could test step support changing config parameters?

Hi,
I notice that in the training commands, we can easily using "--options" to change the parameters as shown below. However, in the test commands, it seems that changing data.test.ann_file in --options will bring bugs in "kwargs = {} if args.options is None else args.options". Could test support all the functions that training has?
Thanks.
#python tools/train.py configs/dcn/mask_rcnn_r50_fpn_mdconv_c3-c5_1x_coco.py \
--gpus 1 \
--options data.samples_per_gpu=1 data.workers_per_gpu=1 data.train.ann_file='data/coco/annotations/instances_train2017_11000.json'

The need to change the test time config is not so frequent as that in training time. We may consider adding this feature in the future. PRs are also welcomed.


Improve Regex

Improve or simplify Regex

Add support add tags to headers like in mkdocstrings.
It is also possible to integrate a mkdocstrings identifier into a Markdown header:
## ::: my_package.my_module.MyClass
    options:
      show_source: false

The above is equivalent to:
::: my_package.my_module.MyClass
    options:
      show_source: false
      heading_level: 2