failing to deploy to heroku

remote:        NoMethodError: undefined method `username' for #<URI::Generic:0x00005600aaac1d08>
remote:        (erb):19:in `<main>'
remote:        /tmp/build_5898513b30223c77a915865c78808e7e/vendor/bundle/ruby/2.5.0/gems/vanity-2.2.10/lib/vanity/configuration.rb:212:in `connection_params'
remote:        /tmp/build_5898513b30223c77a915865c78808e7e/vendor/bundle/ruby/2.5.0/gems/vanity-2.2.10/lib/vanity/vanity.rb:95:in `connect!'
remote:        /tmp/build_5898513b30223c77a915865c78808e7e/vendor/bundle/ruby/2.5.0/gems/vanity-2.2.10/lib/vanity/vanity.rb:84:in `connection'
remote:        /tmp/build_5898513b30223c77a915865c78808e7e/vendor/bundle/ruby/2.5.0/gems/vanity-2.2.10/lib/vanity/frameworks/rails.rb:12:in `block in load!'
remote:        /tmp/build_5898513b30223c77a915865c78808e7e/vendor/bundle/ruby/2.5.0/gems/vanity-2.2.10/lib/vanity/frameworks/rails.rb:12:in `block in load!'
remote:        /tmp/build_5898513b30223c77a915865c78808e7e/vendor/bundle/ruby/2.5.0/gems/activesupport-5.1.6/lib/active_support/lazy_load_hooks.rb:67:in `block in execute_hook'
remote:        /tmp/build_5898513b30223c77a915865c78808e7e/vendor/bundle/ruby/2.5.0/gems/activesupport-5.1.6/lib/active_support/lazy_load_hooks.rb:60:in `with_execution_control'
remote:        /tmp/build_5898513b30223c77a915865c78808e7e/vendor/bundle/ruby/2.5.0/gems/activesupport-5.1.6/lib/active_support/lazy_load_hooks.rb:65:in `execute_hook'
remote:        /tmp/build_5898513b30223c77a915865c78808e7e/vendor/bundle/ruby/2.5.0/gems/activesupport-5.1.6/lib/active_support/lazy_load_hooks.rb:50:in `block in run_load_hooks'
remote:        /tmp/build_5898513b30223c77a915865c78808e7e/vendor/bundle/ruby/2.5.0/gems/activesupport-5.1.6/lib/active_support/lazy_load_hooks.rb:49:in `each'
remote:        /tmp/build_5898513b30223c77a915865c78808e7e/vendor/bundle/ruby/2.5.0/gems/activesupport-5.1.6/lib/active_support/lazy_load_hooks.rb:49:in `run_load_hooks'
remote:        /tmp/build_5898513b30223c77a915865c78808e7e/vendor/bundle/ruby/2.5.0/gems/railties-5.1.6/lib/rails/application/finisher.rb:73:in `block in <module:Finisher>'
remote:        /tmp/build_5898513b30223c77a915865c78808e7e/vendor/bundle/ruby/2.5.0/gems/railties-5.1.6/lib/rails/initializable.rb:30:in `instance_exec'
remote:        /tmp/build_5898513b30223c77a915865c78808e7e/vendor/bundle/ruby/2.5.0/gems/railties-5.1.6/lib/rails/initializable.rb:30:in `run'
remote:        /tmp/build_5898513b30223c77a915865c78808e7e/vendor/bundle/ruby/2.5.0/gems/railties-5.1.6/lib/rails/initializable.rb:59:in `block in run_initializers'
remote:        /tmp/build_5898513b30223c77a915865c78808e7e/vendor/bundle/ruby/2.5.0/gems/railties-5.1.6/lib/rails/initializable.rb:58:in `run_initializers'
remote:        /tmp/build_5898513b30223c77a915865c78808e7e/vendor/bundle/ruby/2.5.0/gems/railties-5.1.6/lib/rails/application.rb:353:in `initialize!'
remote:        /tmp/build_5898513b30223c77a915865c78808e7e/vendor/bundle/ruby/2.5.0/gems/railties-5.1.6/lib/rails/railtie.rb:185:in `public_send'
remote:        /tmp/build_5898513b30223c77a915865c78808e7e/vendor/bundle/ruby/2.5.0/gems/railties-5.1.6/lib/rails/railtie.rb:185:in `method_missing'
remote:        /tmp/build_5898513b30223c77a915865c78808e7e/config/environment.rb:6:in `<top (required)>'
remote:        /tmp/build_5898513b30223c77a915865c78808e7e/vendor/bundle/ruby/2.5.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:292:in `require'
remote:        /tmp/build_5898513b30223c77a915865c78808e7e/vendor/bundle/ruby/2.5.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:292:in `block in require'
remote:        /tmp/build_5898513b30223c77a915865c78808e7e/vendor/bundle/ruby/2.5.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:258:in `load_dependency'
remote:        /tmp/build_5898513b30223c77a915865c78808e7e/vendor/bundle/ruby/2.5.0/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:292:in `require'
remote:        /tmp/build_5898513b30223c77a915865c78808e7e/vendor/bundle/ruby/2.5.0/gems/railties-5.1.6/lib/rails/application.rb:329:in `require_environment!'
remote:        /tmp/build_5898513b30223c77a915865c78808e7e/vendor/bundle/ruby/2.5.0/gems/railties-5.1.6/lib/rails/application.rb:445:in `block in run_tasks_blocks'
remote:        /tmp/build_5898513b30223c77a915865c78808e7e/vendor/bundle/ruby/2.5.0/gems/airbrake-7.3.5/lib/airbrake/rake.rb:17:in `execute'
remote:        /tmp/build_5898513b30223c77a915865c78808e7e/vendor/bundle/ruby/2.5.0/gems/sprockets-rails-3.2.1/lib/sprockets/rails/task.rb:62:in `block (2 levels) in define'
remote:        /tmp/build_5898513b30223c77a915865c78808e7e/vendor/bundle/ruby/2.5.0/gems/airbrake-7.3.5/lib/airbrake/rake.rb:17:in `execute'
remote:        /tmp/build_5898513b30223c77a915865c78808e7e/vendor/bundle/ruby/2.5.0/gems/rake-12.3.1/exe/rake:27:in `<top (required)>'

our vanity.yml is as mentioned in https://github.com/assaf/vanity/issues/349

it's probably related to our production config:
production:
  active_record_adapter: postgresql
  <% uri = URI.parse(ENV['DATABASE_URL']) rescue uri = nil %>
  <% if uri %>
  host:     <%= uri.host %>
  username: <%= uri.username %>
  password: <%= uri.password %>
  port:     <%= uri.port %>
  database: <%= uri.path.sub('/', '') %>
  <% end %>```

and the way the heroku DATABASE_URL is structured ...

ah, okay, so the problem was that it should be uri.user not uri.username


feat: fips test for release/2.13

Description

Fixes # (issue)
Checklist

[ ] I have explained the need for this PR and the problem it solves
[ ] I have explained the changes or the new features added to this PR
[ ] I have added tests corresponding to this change
[ ] I have updated the documentation to reflect this change
[ ] I have verified that this change is backward compatible (If not, please discuss on the APISIX mailing list first)

key smaller than 2048bit

Error: led test 't/plugin/google-cloud-logging.t TEST 11: test route(succeed write) - pattern "[error]" should not match any line in error.log but matches line "2023/04/25 17:24:45 [error] 122982#122982: *51 [lua] oauth.lua:67: refresh_access_token(): failed to refresh google oauth access token: {\"error\":\"identity authentication failed\"}" (req 0)

Error: led test 't/plugin/google-cloud-logging.t TEST 13: test route(customize auth type) - pattern "[error]" should not match any line in error.log but matches line "2023/04/25 17:24:48 [error] 123019#123019: *52 [lua] oauth.lua:67: refresh_access_token(): failed to refresh google oauth access token: {\"error\":\"identity authentication failed\"}" (req 0)

Error: led test 't/plugin/google-cloud-logging.t TEST 17: test route(file configuration is successful) - pattern "[error]" should not match any line in error.log but matches line "2023/04/25 17:24:53 [error] 123153#123153: *51 [lua] oauth.lua:67: refresh_access_token(): failed to refresh google oauth access token: {\"error\":\"identity authentication failed\"}" (req 0)

Error: led test 't/plugin/google-cloud-logging.t TEST 21: test route(https file configuration is successful) - pattern "[error]" should not match any line in error.log but matches line "2023/04/25 17:24:59 [error] 123309#123309: *51 [lua] oauth.lua:67: refresh_access_token(): failed to refresh google oauth access token: {\"error\":\"identity authentication failed\"}" (req 0)

Error: led test 't/plugin/google-cloud-logging.t TEST 25: test route(https file configuration SSL authentication succeed: ssl_verify = false) - pattern "[error]" should not match any line in error.log but matches line "2023/04/25 17:25:05 [error] 123501#123501: *52 [lua] oauth.lua:67: refresh_access_token(): failed to refresh google oauth access token: {\"error\":\"identity authentication failed\"}" (req 0)

Error: led test 't/plugin/jwt-auth.t TEST 29: sign/verify use RS256 algorithm(private_key numbits = 512) - pattern "[error]" should not match any line in error.log but matches line "2023/04/25 17:29:00 [error] 132639#132639: *23 lua entry thread aborted: runtime error: content_by_lua(nginx.conf:210):18: bad argument #1 to 'print' (non-array table found)" (req 0)

Error: led test 't/plugin/openid-connect.t TEST 14: Access route with valid token. - pattern "[error]" should not match any line in error.log but matches line "2023/04/25 17:34:46 [error] 148653#148653: *49 [lua] openid-connect.lua:275: phase_func(): OIDC introspection failed: jwt signature verification failed: invalid key length, client: <IP_ADDRESS>, server: localhost, request: \"GET /hello HTTP/1.1\", host: \"<IP_ADDRESS>:1984\"" (req 0)

openssl log format changes

#   Failed test 't/plugin/authz-keycloak.t TEST 11: TEST with fake token and https endpoint - pattern "Error while sending authz request to https://<IP_ADDRESS>:8443/auth/realms/University/protocol/openid-connect/token: 18: self signed certificate" should match a line in error.log (req 0)'

#   Failed test 't/router/multi-ssl-certs.t TEST 5: client request: www.test2.com - response_body - response is expected (repeated req 0, req 0)'
#   at /home/runner/work/apisix/apisix/test-nginx/lib/Test/Nginx/Socket.pm line 1674.
# @@ -1,2 +1,2 @@
#  connected: 1
# -failed to do SSL handshake: 18: self signed certificate
# +failed to do SSL handshake: 18: self-signed certificate

#   Failed test 't/router/radixtree-sni.t TEST 10: client request: www.test2.com - response_body - response is expected (repeated req 0, req 0)'
#   at /home/runner/work/apisix/apisix/test-nginx/lib/Test/Nginx/Socket.pm line 1674.
# @@ -1,2 +1,2 @@
#  connected: 1
# -failed to do SSL handshake: 18: self signed certificate
# +failed to do SSL handshake: 18: self-signed certificate

#   Failed test 't/core/config_etcd.t TEST 4: originate TLS connection to etcd cluster and verify TLS certificate (default behavior) - grep_error_log_out (req 0)'
#   at /home/runner/work/apisix/apisix/test-nginx/lib/Test/Nginx/Socket.pm line 1220.
#                   ''
#     doesn't match '(?^:(18: self signed certificate){1,})'


Set new ballot in reconfiguration UI

I need to be able to set a new ballot address in the reconfiguration UI

done


Random arrows for scrolling

Please ensure:

[X] The bug is caused by Refined GitHub. It doesn't happen if I disable the extension.

Description
https://github.com/discordjs/discord.js/pull/6162#issuecomment-884157859 < An example issue comment with random scrollable buttons to go up and down
Screenshot

Console errors
No response
Example URL
https://github.com/discordjs/discord.js/pull/6162#issuecomment-884157859
Browser(s) used
Google chrome Version 91.0.4472.164 on Windows 10

Duplicate of https://github.com/sindresorhus/refined-github/issues/3012

Sorry.

No it's ok, if you see the issue it means it still exists

Maybe we need more padding-bottom in the fields we're adding the scrollbars to

This is still an issue for me (Safari 15.3)
https://github.com/refined-github/refined-github/pull/5416#issuecomment-1041546190


how to use joy4 publish raw h264 to rtmp server?

Hi, Is somebody use joy4 publish raw h264 to rtmp server, could you give me an example?  thanks.

Hello, need an example please

Any example？

+1

请问，支持这个功能吗？@nareix


Requiring OSM attribution at runtime

Motivation
The Quick Start is explicit that the OpenStreetMap attribution is mandatory. In the common case that OSM's official tile server is used, the lib can check at runtime to provide an attribution, to benefit the developer and OSM.
Suggested solution
What about providing a default attribution, or giving an error, if the domain is any of tile.openstreetmap.org or tile.osm.org and the attribution is absent?
Additional context
I am an OSM contributor and hear cases of missing attribution with the OSM official tile server every now and then; so many that a repo was recently set up to keep track of them, and this includes cases where Leaflet is used.

Actually, providing a default OSM attribution when none is provided and tile.openstreetmap.org is used sounds like a neat idea. It's a common pitfall and this seems rather harmless — people who need the attribution to be empty for whatever reason (e.g. attribution is on a different visible part of the page) can do so explicitly by passing attribution: ''. This can be considered a breaking change though. @jonkoops @Falke-Design @IvanSanchez what do you guys think?

@mourner Given the sheer amount of Leaflet users that (a) are newbies and (b) use OSM tiles, this seems like a nice idea indeed. The cost in terms of codebase size is negligible IMO.
(There is an alternative, which I can call "The OpenLayers Way": provide a L.TileLayer.OSM, a la leaflet-providers. But I think it goes against Leaflet tradition of tile URL templates all around)
Disclaimer: I have been in the OSMF (loooong ago), so I'm understandably biased in favour of OSM.

tile.openstreetmap.org or tile.osm.org

likely the same for a.tile.openstreetmap.org / b.tile.openstreetmap.org / c.tile.openstreetmap.org deprecated addressing https://github.com/openstreetmap/operations/issues/737

I think we could parse the URL of the tile-server in general and match it against a couple of known domains:
const url = new URL('https://tile.openstreetmap.org/{z}/{x}/{y}.png');
const osmHosts = ['tile.openstreetmap.org', 'tile.osm.org'];
const isOsmUrl = osmHosts.some((host) => url.hostname.includes(host));

I think adding the attribution automatically can be our part to the OSM Community.

This can be considered a breaking change though

Let us add it in v2 and then it is no problem.

const url = new URL('https://tile.openstreetmap.org/{z}/{x}/{y}.png');

Instead of creating a URL object, we could just check if the url-string contains the hosts. Maybe we should create a performance test. If the URL is faster or only slightly slower, let us use the URL object because it is cleaner.
I would suggest to label it as https://github.com/Leaflet/Leaflet/labels/accepted and https://github.com/Leaflet/Leaflet/labels/good first issue

Instead of creating a URL object, we could just check if the url-string contains the hosts. Maybe we should create a performance test.

It's a one-off check (when a L.TileLayer is instantiated), so I wouldn't worry about perf issues.
I say URL() plus regexp.

I understand the importance of attribution, but I think adding attribution in the leaflet attribution control is not required. It can also be attributed in another part of the page right?
Would a Leaflet user be able to do that if this change is added?

people who need the attribution to be empty for whatever reason (e.g. attribution is on a different visible part of the page) can do so explicitly by passing attribution: ''.

https://github.com/Leaflet/Leaflet/issues/9228#issuecomment-1909006037

I understand the importance of attribution, but I think adding attribution in the leaflet attribution control is not required. It can also be attributed in another part of the page right?

Sure, the official OSMF attribution guidelines make it clear that, by the time the user sees the map, she must have already been exposed to the attribution:

The base requirement in ODbL is attribution that is “…reasonably calculated to make any Person that uses, views, accesses, interacts with, or is otherwise exposed to the Produced Work aware that Content was obtained from [OpenStreetMap] …”.

Hi, just made a pull request to automatically set the attribution for OSM as discussed


Users are not filtered by Domain in SCIM Get User requests

Describe the issue:
When performing SCIM Get User requests, users are not filtered by Domain name and results include uses from all domains which have SCIM enabled.
Tested Requests:
curl --location --request GET 'https://localhost:9443/t/carbon.super/scim2/Users?domain=PRIMARY' \
--header 'Authorization: Basic YWRtaW46YWRtaW4='

curl --location --request POST 'https://localhost:9443/scim2/Users/.search' \
--header 'Content-Type: application/scim+json' \
--header 'Authorization: Basic YWRtaW46YWRtaW4=' \
--data-raw '{
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:SearchRequest"
    ],
    "attributes": [
        "name.familyName",
        "userName"
    ],
    "domain": "PRIMARY",
    "startIndex": 1,
    "count": 10
}'

Both above requests return results from secondary userstores as well.
The reason seems to be when requesting the user list from the UserstoreManager it passes a wildcard ("*") for claim value [1].
But needs further investigation.
How to reproduce:
Create a secondary userstore and enable SCIM for the userstore.
Create users in both primary and secondary userstores
Perform SCIM Get Users request, filtering either primary or secondary domain.
Expected behavior:
The response should only contain users in the requested domain.
Environment information
Product Version: IS 5.6.0
[1] https://github.com/wso2-extensions/identity-inbound-provisioning-scim2/blob/v1.1.19/components/org.wso2.carbon.identity.scim2.common/src/main/java/org/wso2/carbon/identity/scim2/common/impl/SCIMUserManager.java#L283

Patch is released for 5.6.0.
This is not reproducible in the master branch.


Fix link to releases in README.md

Formerly the link text was
Click [here](/releases) ...
Which linked to the incorrect https://github.com/googlevr/tilt-brush-toolkit/blob/master/releases

Thanks!


Add demos to CI

Thanks, Sam, this is awesome! I'll work on a little script that breaks CI on pull requests if there's a regression in the resulting accuracy (and perhaps runtime too?) today.
Question: I'm wondering if it makes sense to combine this workflow with the TIMS one? That way we can do things like install dependencies once, and also my regression script can also check for regressions on TIMS.

I thought about that and decided against it because of the speed difference. With your change that's no longer an issue though. Hmm. Perhaps put this in as is and then merge in further change.


Introduce an optional parameter to use non-default padding

Brief
Add an optional parameter pad_with_zero to allow use a different padding of 1 instead of the default padding 0.
Checklist

[ ] Add relevant labels to the Pull Request
[ ] Review test results and code coverage

[ ] Review snapshot test results for deviations

[ ] Review code changes

[ ] Create relevant test scenarios
[ ] Update examples
[ ] Update JSON schema

[ ] Update documentation

[ ] Update examples in README

[x] Update changelog
[x] Update version number

Resolves

Resolves #131

Describe the bug or feature and link to relevant issues

Evidence

Unit test updated.
Also via end-to-end test that generates the same payload data as Canoe with the signal definition  in #131.

Analyze how the change might impact existing code
The change is backwards compatibale and does not change the existing behavior.

Provide evidence that the feature is tested and covered properly

Looks good, I'll bump the version number and release it tomorrow.
Maybe one comment is that the padding style I think is needlessly stored on the LDF object. Do you plan on using it somewhere?

The padding style on the LDF object is being used when parsing the LDF: https://github.com/nuts4coffee/ldfparser/blob/padding_option/ldfparser/parser.py#L128


[AutoScheduler][Relay] Control compile engine cache via PassContext

Use PassContext to disable the compile engine cache, so that we can maintain all required information (i.e., in the TracingEnvironment).
cc @merrymercy @jcf94 @zhiics @icemelon9

The PR looks reasonable. I was wondering from time to time, when compiler cache could be potentially useful?

The PR looks reasonable. I was wondering from time to time, when compiler cache could be potentially useful?

The PR looks reasonable. I was wondering from time to time, when compiler cache could be potentially useful?

I think it's useful to reduce the compile time when building a model? Like we only extract 25 tasks from a model with 50 conv2ds, meaning that we only compile 25 of them instead of 50.

The PR looks reasonable. I was wondering from time to time, when compiler cache could be potentially useful?

I think it's useful to reduce the compile time when building a model? Like we only extract 25 tasks from a model with 50 conv2ds, meaning that we only compile 25 of them instead of 50.


Compile error if the project imports d.ts which contains a public class that has a privare member uses destructuring assignment in arguments.

Sceneario

Project A

This uses<EMAIL_ADDRESS>with --noImplicitAny.
This import the below project B via npm.

Project B

This uses<EMAIL_ADDRESS>or before with --noImplicitAny.
This is published as a npm packages project-b  with compiled code (*.js & *.d.ts).

Project A
import {Bar} from 'project-b';

const b = new Bar();

Project B
// index.ts

type Arg = {
    a: number;
};
export class Bar {
    private bar({ a, }: Arg): number {
        return a;
    }
}

is compiled:
// index.d.ts
export declare class Bar {
    private bar({a});
}

export class Bar {
    bar({ a, }) {
        return a;
    }
}

What happens (Actual Results)
Project A will be a compile error. The error log is here:
2     private bar({a});
                   ~

project-b/index.d.ts(2,18): error TS7031: Binding element 'a' implicitly has an 'any' type.

Expected behavior

TypeScript should emit a type signature of private members arguments of a exported object which uses destructuring assignment.

I think this is most clear way.
But this might have a compatibility risk with libraries compiled wirh ~TypeScript 1.8.

...or ignore a type signature of private members...

As my personal opinion, I dont like it.

Relate?: https://github.com/Microsoft/TypeScript/pull/7969

@sheetalkamat, binding patterns in a private in an ambient context should be exempt of the no-implicit-any check

@saneyuki please give typescript@next a try later tonight and let us know if the issue still persists.

@mhegazy
I tried with<EMAIL_ADDRESS>and --noImplicitAny flag, but this problem is still reproducible. Should I wait the<EMAIL_ADDRESS>or later?

I confirm these:

<EMAIL_ADDRESS>&& --noImplicitAny is still not fixed.
But the latest master (which is built with cloning this and jake LKG) has been fixed.

Thank you!

In the meantime before TS 2.0, is avoiding destructuring in private method parameters the best way to avoid this issue?

seems like the only way.


Unable to run

I'm trying the demo, got the following errors in browser console, unable to get it work.
At http://danielrapp.github.io/doppler/ I allow to use microphone but nothing works. When I run example.html locally browser doesn't ask for permission and nothing works as well.

@dataliven re: browser compatibility. It unfortunately only works on Chrome.

@rafalsobota Does the frequency spectrum react to sound at all, or is the two visualizations in the "Measuring the doppler effect" section all blank? Could you send a pic of it, like I have below

@DanielRapp Excuse my stupidity, I though I have built-in microphone. Next I tried with headset, tuned mic and headphones volumes and frequency spectrum moved a bit, but not much and examples doesn't work. I'll try on laptop. I tried also Chrome for iPhone but after clicking on button "Press to see the effect of a 20 kHz tone, after it has bounced around the room" nothing happens.

Yeah, it doesn't work on the iPhone, mic input with the Web Audio API isn't supported.


docker

Building some docker environment

I'm using docker to train the model. I can create a PR with Dockerfile if you need:)

I agree that we add /Dockerfile which defines our development environment -- I am not talking about the deploy-time (runtime) environment here.
I suffered from the following errors when I follow the development procedure in /README.md to run pip install -r requirement.txt:
    Running setup.py install for horovod ... error
    ERROR: Command errored out with exit status 1:
     command: /private/tmp/venv_athena/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/f9/ymd5d3xs62gc7j6db4_8jdp40000gn/T/pip-install-4gw_0gzi/horovod/setup.py'"'"'; __file__='"'"'/private/var/folders/f9/ymd5d3xs62gc7j6db4_8jdp40000gn/T/pip-install-4gw_0gzi/horovod/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/f9/ymd5d3xs62gc7j6db4_8jdp40000gn/T/pip-record-vcte1unk/install-record.txt --single-version-externally-managed --compile --install-headers /private/tmp/venv_athena/include/site/python3.7/horovod
         cwd: /private/var/folders/f9/ymd5d3xs62gc7j6db4_8jdp40000gn/T/pip-install-4gw_0gzi/horovod/

It seems that something went wrong with the installation of horovod.  I often suffer from package installation problem, especially when I am working from China. It would be easier if I can
docker run --rm -it -v $PWD:/work  athena/athena:dev bash

assuming our CI run docker build & push whenever new commits get merged into the master branch.
In SQLFlow repo, the /.travis.yml file configures that for merges into the following branches:
https://github.com/sql-machine-learning/sqlflow/blob/4c15b03b6dfa0f12638a03183c948a1560db1a81/.travis.yml#L9-L14
the CI would do the deploy stage
https://github.com/sql-machine-learning/sqlflow/blob/4c15b03b6dfa0f12638a03183c948a1560db1a81/.travis.yml#L97-L99
which calls deploy.sh to docker push the Docker image built for the CI to dockerhub.com.  Then, developers can run the above docker run command to start their development environment.

BTW, the reason I cannot install Horovod is explained in https://github.com/horovod/horovod/issues/52#issuecomment-420971603. The solution for macOS users is that I need to run
CFLAGS=-mmacosx-version-min=10.7 pip install horovod

If I use Docker on macOS, I wouldn't need to manually install Horovod with the special setting of of CFLAGS=-mmacosx-version-min=10.7.

@wangkuiyi thanks for you suggestion about this.
Currently, it seems like that lots of users may suffer from the installation of horovod.


Add resource consume test funcs

Problem
Building on #5875 to add handy test functions for autoscaling.
Resolves #5609
Summary of changes
This PR makes the following changes to #5875:

Enable neon_test_utils extension in the compute node docker image, so we could use it in the e2e tests (as discussed with @kelvich).
Removed test functions related to disk as we don't use them for autoscaling.
Fix the warning with printf-ing unsigned long variables.

Checklist before requesting a review

[x] I have performed a self-review of my code.

Depending on your use case, maybe you will need to add trusted = true at the end of the control file? trusted = true means that the extension will be loaded using superuser permission even if the one creating the extension is not a superuser.
https://github.com/neondatabase/neon/blob/main/pgxn/neon_test_utils/neon_test_utils.control

If you don't expect our end-user to use it -> don't add trusted = true so that it cannot be loaded on production environment, but you might need to find a way to load the extension in e2e test b/c IIRC the cloud e2e test uses the same permission as the end user so that you may not be able to load it...?
If you expect our end-user to use it -> add trusted = true. But I think this seems like an internal module and shouldn't be used by users.

Rest LGTM

@skyzh I already added trusted = true to the control file. Needed that bc e2e tests uses the same permission as a normal user.


[Feature Request] Add an option to display at most one scratchpad at a time

Hey! Thanks for the awesome plugins.
I've got a small feature request. It'd be really helpful if we could add an option to automatically hide visible scratchpads when toggling or creating a different one.

Hi!
If you add:
       "unfocus": "hide"

On each of your scratchpads, do you achieve that or it's not really perfect ?

Hey, thanks for the quick response.
The "unfocus": "hide" feature works perfectly as intended. However, sometimes, I don’t want the scratchpad to disappear when losing focus. For example, when I need to copy and paste commands from a browser to the terminal scratchpad.

It would be easy to have it as a global option for every scratchpad: "exclusive_focus": true, for instance.
Another way could which seems more flexible would be to have a per-scratch attribute telling a list of scratches which should be hidden if this one is shown: "excludes": ["scratchpadX", "otherPad"]
I may prefer the later.
Do you have other ideas or comments about this ? Or suggestions about the naming...

Both are good options. I’d prefer the first option. The second sure gives more flexibility, but also adds more implementation complexity

Check https://github.com/hyprland-community/pyprland/wiki/Plugins#excludes-optional & latest git version if you can

To me it's allowing to do what to expect, I added a shortcut syntax to make it more convenient to configure.
Re-open if I misunderstood or if you get troubles using it.


Conditional rounded table

It be nice to have the rounded corners on request. for example using a table with other components attacked

This will be fixed when #1001 gets closed. Then you can add custom border-radius utility classes on demand.


Hide NativeAPI service to apps launched by bootstraps

This fixes errors such as this one, that can be seen when using jni-utils from an app launched by a coursier bootstrap:
java.util.ServiceConfigurationError: coursier.jniutils.NativeApi: coursier.bootstrap.launcher.jniutils.BootstrapNativeApi not a subtype
    java.base/java.util.ServiceLoader.fail(ServiceLoader.java:593)
    java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(ServiceLoader.java:14)
    java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(ServiceLoader.java:13)
    java.base/java.util.ServiceLoader$2.hasNext(ServiceLoader.java:1309)
    java.base/java.util.ServiceLoader$3.hasNext(ServiceLoader.java:1393)
    coursier.jniutils.NativeApi.get(NativeApi.java:32)
    …

Ideally, that would deserve a non-regression test… Maybe if / when I'll make it a bit more robust, by having this also hide the bootstrap own classes.

I'm not fond of hiding this with class loader hacks such as this… If ever users try to duplicate the class path by walking over the class loader hierarchy (and looking at each URLClassLoader say, then loading everything in a new distinct class loader hierarchy), they'll miss the loaders hiding stuff, and will get faulty duplicated class paths…


Feature/tags to timelogs

Added tag functionality to student TimeLogs page. Tags can be added and are viewed in TimeLogs page. Tags selected from list defined by admin in TagManagement page.
No tests for added functionality - tested manually. This would require 2-3 new test specs to TimeLogs tests, but not done because of current problems with timeLogtests. Should be fairly risk free update.

resolves #101 , #18


formatting issue test

Signed-off-by: Håvard Ottestad<EMAIL_ADDRESS>GitHub issue resolved: #
Briefly describe the changes proposed in this PR:

@jeenbroekstra this is how a PR looks when it has a formatting error

That's actually really pretty good! Do you know why the JDK 11 build is marked canceled rather than failed? Does it automatically cancel it if the parallel build fails, or did you manually kill it?

Automatically cancelled.


Fix build cache issue with GraphViewTask.

Don't use @Classpath, use @InputFiles.
Resolves https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin/issues/612

Build failed https://gradle.com/s/xa72julvbhdno

Build failed https://gradle.com/s/wcgbgbozmg4kg

Build failed https://gradle.com/s/5qsvnmakipfc4


📮 Postmark integration

I have been working on an integration of Postmark with Ghost. Please provide your feedback before I continue.
To-Do

[x] Implement analytics
[ ] Handle Postmark errors
[ ] Add tests

Hello @andreascreten, I'm not a Ghost core team member, but am someone who previously submitted my own PR to allow non-mailgun senders ( https://github.com/TryGhost/Ghost/pull/14984 ), so I can give you some feedback from that perspective. (Ultimately, I ended up using Mailgun and abandoned that effort).
I don't think there's a lot of appetite for maintaining non-Mailgun code in the core with their small team, but I think there /is/ interest in implementing an adapter pattern for bulk-email and email-analytics so other options can be plugged in and, crucially, completely maintained by third-parties outside of the core.
So I think the ideal PR implements the adapter pattern and has Mailgun as the included, default solution implementing that package. There would actually be no references to Postmark in the PR, but the PR would enable you make the swap using the config file system and third-party modules that implement bulk-sending and analytics.  The rest of your solution would in modules you maintain and possibly publish to NPM yourself.
I see you made some progress in that direction replacing explicit references to MailGun with more generic "Bulk Email" or "Email Analytics" language when that part of the code has multiple possible implementations.
References

Adapter Manager README
Adapter Manager Code
Other Ghost adapters on NPM

What appears to be happening is that a path to where a custom solution is stored gets declared under the "adapters" section in the config file. If this is not present, the internal implementation in used.
Admin UX
I saw your PR also took care of getting some Postmark bits to appear in the admin UI. I'm not sure the current adapter pattern covers that. What's there so far may only cover purely backend tasks, like swapping out data storage.  It's possible you need to extend the adapter system to allow modules that implement the adapter system to have bits appear in the admin UI when they are loaded.


dependency conflict[Question]:

Describe your problem
When I run the pip install -r requirements.txt command I get an error：
ERROR: Cannot install -r requirements.txt (line 139), -r requirements.txt (line 77) and pytz==2024.1 because these package versions have conflicting dependencies.

The conflict is caused by:
    The user requested pytz==2024.1
    pandas 2.2.1 depends on pytz>=2020.1
    volcengine 1.0.141 depends on pytz==2020.5

To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict

You can delete pytz==2024.1 in requirements.txt. It will be automatically installed by other dependencies.

We have refined the requirements.txt. What about the latest one?

You can delete pytz==2024.1 in requirements.txt. It will be automatically installed by other dependencies.

Thanks, no errors have been reported since then

We have refined the requirements.txt. What about the latest one?

We have refined the requirements.txt. What about the latest one?

This doesn't work, it's still the same error.

pytz==2024.1 deleted.

最新的main分支，安装依赖报错。
INFO: pip is looking at multiple versions of volcengine to determine which version is compatible with other requirements. This could take a while.
ERROR: Cannot install -r requirements.txt (line 138), -r requirements.txt (line 52) and pycryptodome==3.20.0 because these package versions have conflicting dependencies.
The conflict is caused by:
The user requested pycryptodome==3.20.0
minio 7.2.4 depends on pycryptodome
volcengine 1.0.141 depends on pycryptodome==3.9.9
需要修改volcengine的依赖版本还是修改pycryptodome的版本。

We have refined the requirements.txt. What about the latest one?

We've replaced pip with poetry.


added NPN code after country code NANP

added 19 countries NPN code

This appears to be breaking previous implementations, but this we do want this data.   Can we add a new field for this code? or for the combination?

I can do another pull request for this data.  What field name do you suggest?

@maomaoZH maybe something like nanp_area_code or nanp_prefix

ok. will do it.


Printing an error log after using the STT model: Error processing model usage: Cannot instantiate typing.Union

Describe the bug

Steps to reproduce

Deploy a model Hugging Face/Systran/faster-whisper-large-v3
Open in playground, upload an audio and generate the text.
View the server logs.

Result

There was an error log.

2024-12-02T15:55:16+08:00 - gpustack.routes.openai - DEBUG - proxying to http://<IP_ADDRESS>:40232/v1/audio/transcriptions
2024-12-02T15:55:17+08:00 - gpustack.api.middlewares - ERROR - Error processing model usage: Cannot instantiate typing.Union

Environment

GPUStack version: main 9eacc85
OS: Ubuntu 22.04
GPU: NVIDIA 4090

Additional context
Add any other context about the problem here.

Verified in main 5a6e944


fix: using theme color instead of hardcoded value

Description
Instead of using a hardcoded color value, the Theme colors should be used. This is how the component looks right now with dark mode:

As you can see it is not really readable.
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]).
This will ensure a smooth and quick review process. Updating the pubspec.yaml and changelogs is not required.

[x ] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] My PR includes unit or integration tests for all changed/updated/fixed behaviors (See Contributor Guide). (not needed?)
[x] All existing and new tests are passing.
[x] I updated/added relevant documentation (doc comments with ///).
[x] The analyzer (melos run analyze) does not report any problems on my PR.
[x] All unit tests pass (melos run test:unit:all doesn't fail).
[x] I read and followed the Flutter Style Guide.
[x] I signed the CLA.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require plugin users to manually update their apps to accommodate your change?

[ ] Yes, this is a breaking change.
[x] No, this is not a breaking change.

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).
View this failed invocation of the CLA check for more information.
For the most up to date status, view the checks section at the bottom of the pull request.

Just did


setup causes segfault, ubuntu 14.04, nvidia 352.55, OpenCL 1.2

Following code, basically straight out of one of the samples:
/* ************************************************************************
 * Copyright 2013 Advanced Micro Devices, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * ************************************************************************/

#include <sys/types.h>
#include <stdio.h>
#include <string.h>

/* Include CLBLAS header. It automatically includes needed OpenCL header,
 * so we can drop out explicit inclusion of cl.h header.
 */
#include <clBLAS.h>

int
main(void)
{
    cl_int err;
    cl_platform_id platform = 0;
    cl_device_id device = 0;
    cl_context_properties props[3] = { CL_CONTEXT_PLATFORM, 0, 0 };
    cl_context ctx = 0;
    cl_command_queue queue = 0;
    cl_mem bufA, bufB, bufC;
    cl_event event = NULL;
    int ret = 0;

    /* Setup OpenCL environment. */
    err = clGetPlatformIDs(1, &platform, NULL);
    if (err != CL_SUCCESS) {
        printf( "clGetPlatformIDs() failed with %d\n", err );
        return 1;
    }
    printf("got platformids\n");

    err = clGetDeviceIDs(platform, CL_DEVICE_TYPE_GPU, 1, &device, NULL);
    if (err != CL_SUCCESS) {
        printf( "clGetDeviceIDs() failed with %d\n", err );
        return 1;
    }
    printf("got deviceids\n");

    props[1] = (cl_context_properties)platform;
    ctx = clCreateContext(props, 1, &device, NULL, NULL, &err);
    if (err != CL_SUCCESS) {
        printf( "clCreateContext() failed with %d\n", err );
        return 1;
    }
    printf("created context\n");

    queue = clCreateCommandQueue(ctx, device, 0, &err);
    if (err != CL_SUCCESS) {
        printf( "clCreateCommandQueue() failed with %d\n", err );
        clReleaseContext(ctx);
        return 1;
    }
    printf("created commandqueue\n");

    /* Setup clblas. */
    err = clblasSetup();
    if (err != CL_SUCCESS) {
        printf("clblasSetup() failed with %d\n", err);
        clReleaseCommandQueue(queue);
        clReleaseContext(ctx);
        return 1;
    }
    printf("setup blas ok\n");

    /* Finalize work with clblas. */
    clblasTeardown();

    /* Release OpenCL working objects. */
    clReleaseCommandQueue(queue);
    clReleaseContext(ctx);

    return ret;
}

compile:
gcc -std=c99 -I.. -o test setup_fails.c -l OpenCL -L ~/git/clBLAS/src/build/library -lclBLAS

Run:
$ ./test
got platformids
got deviceids
created context
created commandqueue
Segmentation fault

Hmmm, this is because my library path was wrong => closing.


Fix mergelevels() in case of ambiguous orderings

The fact that all original orderings are preserved does not mean we can
consider merged levels as ordered: ambiguities can arise between them.
Do not change merge algorithm depending on whether a common order can be found
or not: always proceed the same, and check orderedness after the fact.
More efficient algorithms can likely be found, but for now this is
good enough.
Cc: @gustafsson

Current coverage is 84.61% (diff: 100%)

Merging #36 into master will increase coverage by 0.44%

@@             master        #36   diff @@
==========================================
  Files             8          8
  Lines           379        390    +11
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits            319        330    +11
  Misses           60         60
  Partials          0          0

Powered by Codecov. Last update 283043f...61e86e5

Current coverage is 85.07% (diff: 100%)

Merging #36 into master will increase coverage by 0.34%

@@             master        #36   diff @@
==========================================
  Files             8          8
  Lines           393        402     +9
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits            333        342     +9
  Misses           60         60
  Partials          0          0

Powered by Codecov. Last update d38eff5...51e0f08


Send payload to a custom webhook to automate SaaS workflow

Hello!
Is your feature request related to a problem? Please describe.
I need to send my payload to an external webhook to trigger the creation of the account in our SaaS application.
Currently I have a script running on an Azure automation account that retrieves a webhook data and use it to create an account in our SaaS environment.
Describe the solution you'd like
When clicking on the "Activate" button on the customer portal, the payload should be sent to a custom webhook in addition to what is already existing.
This webhook URL should be configurable in the admin portal.
Describe alternatives you've considered
None, but I am open to suggestions on how to trigger a workflow when the customer click on the "activate" button.
Additional context
This is a feature provided by 3rd party companies providing the marketplace landing page, but we would like to create our own page.

Duplicate of #134

Hi @clementchane - thank you for raising this issue. We will track it at #134


Unable to switch between Sandbox & Live due to condition if (ck == nil)

My Code. Here, I am checking if the user is pointing to LIVE or not. Here in my code, I am passing right KEY & Environment.
if hahObj.is_live_user == true {
do {
try ck = CheckoutKit.getInstance("Live-Key",
env: Environment.LIVE)
} catch _ as NSError {
print("Taha Ahmed Error Generated")
}
}else {
do {
try ck = CheckoutKit.getInstance("Test-Key",
env: Environment.SANDBOX)
} catch _ as NSError {
print("Veer  Error Generated ")
}
}
The method of the library.
open class func getInstance(_ pk: String, env: Environment) throws -> CheckoutKit? {
if (ck == nil) {
ck = try CheckoutKit(pk: pk, env: env, debug: true, logger: Log.getLog())
}
return ck
}
Here, ck is not re-init when I log out and log in my LIVE user, so this ck is present in memory (not nil), which is creating Sandbox CK, instead of LIVE again.
Once I restart App, It releases all variables from memory & issue is resolved.
In Development Mode, Switching is necessary & should be tackled properly.
Thanks.

Hi @veer-suthar , are you planning to include both environments within the same app?
We recommend starting a new session when switching environments, which can be done by restarting the app.


How does mx.pad work?

I am trying to use mx.pad with the optional constant array containing the padding values to be inserted, but it seems that only the first element of the constant array is utilized whatever I try. Am I interpreting the description of mlx.core.pad() the wrong way?
`import numpy as np
import mlx.core as mx
nx, ny = 10, 10  # Set grid dimensions
x = mx.array(np.linspace(0,1,nx))
y = mx.array(np.linspace(0,1,ny))
T = mx.zeros([nx, ny])
Tconst = mx.array(np.linspace(9,0,10))
print(Tconst)
T = mx.pad(T, ((1, 1), (1, 1)),Tconst)
print(T)`
array([9, 8, 7, ..., 2, 1, 0], dtype=float32)
array([[9, 9, 9, ..., 9, 9, 9],
[9, 0, 0, ..., 0, 0, 9],
[9, 0, 0, ..., 0, 0, 9],
...,
[9, 0, 0, ..., 0, 0, 9],
[9, 0, 0, ..., 0, 0, 9],
[9, 9, 9, ..., 9, 9, 9]], dtype=float32)
Process finished with exit code 0

Padding with constant in almost every framework use scalar value and its same here (I feel like passing array is some sort of performance optimisation (?) or maybe extra usability cause original code still use only first array element)
You can check original code -> https://github.com/ml-explore/mlx/blob/430bfb494431fbe36c3f635bd7296a356dd772e6/mlx/ops.cpp#L571C1-L577C34

Thanks for pointing me to the original code, I think you're right, I had hopes that the reference to an array was hinting at  something more exciting :)

Good question, right now the constant_values is really just a scalar.
We should probably throw or something if the wrong shape is provided.
I think in Numpy the constant_values need to be broadcastable to the shape of the pad_width. So if pad_width is ((a, b), (c, d))then theconstant_valuesneeds to broadcast to a shape of[2, 2]`. We can add this as a feature in the future if it's useful.
Also (unrelated) it looks like we should add a linspace :). If that's pretty useful for you, feel free to file another issue.

Thank you this clarifies. Yes,  MLX native linspace would be handy to have.


BAM file necessary for quiver step?

Did I understand that correctly? For the quiver step in falcon_unzip I have to provide the reads in BAM format?
What is the most easy way to convert RSII data to BAM format?

yes. PacBio is moving the read data format to BAM to easy some engineering work. It is a good thing.  There is code called bax2bam that convert the bax.h5 to BAM file (with option --subread) in SMRTAnalysis 3.0.0+.

Great! Thanks for the quick aswer


Add note to Flannel Preparation Step

Issue #20193
Added note on Flannel Preparation Step for clarity

@nevermyuk please keep the commits squashed to one.

/assign @jimangel

@nevermyuk please keep the commits squashed to one.

@neolit123 Thanks for guiding me, learnt how to squash with rebase for the first time!

locally you can use git rebase -i HEAD~N where N is the number of your commits.
this will give you an interactive editor where you can squash commits.
then you do a git push -f <github-remote> <your-branch> to force push.


wip: 🚧 add ide setup

I would like to provide more troubleshoot info since I cannot fully make it work myself in neovim.
I will update this branch accordingly

I'll check if the manual build of the language server fixes some issues on VSCode side of things.

It did not for me under windows unfortunately.
It is specific to NimForUE and there is a dedicated setting for cases like this: projectMapping IIRC.
This is to tell the lsp how to process the different files in a non nimble project


Open/close animation ✨

Add some UX magic to the widget with a sweet open and close animation.
Reference:

We no longer ship components with the SDK.


"Jobs" page gets 500

https://jobs.getbootstrap.com/ produces a server error.
/bdt
p.s. always better to have some type of Contact form on the website. IMNSHO.

Job board is no more, just removed the link from the Blog.


feat(Icons): MoneyBackGuarantee

Overview

This adds the MoneyBackGuarantee Icon used currently in Brand.
Also removes the fill and normalizes it to "none" like with the other icons.
Subsequent PR to remove the icon from Brand.

PR Checklist

[ ] Related to JIRA ticket: GM-895
[ ] I have run this code to verify it works
[ ] This PR includes unit tests for the code change
[ ] This PR includes testing instructions tests for the code change
[ ] The alpha package of this PR is passing end-to-end tests in all relevant Codecademy repositories

Testing Instructions

Go to ?path=/story/atoms-icons-regular--editable-icons&args=iconName:MoneyBackGuaranteeIcon
At the top, select Canvas
In the iconName field, go to Control row and select MoneyBackGuaranteeIcon
Check that it loads properly on both light and dark modes
...
Profit!

PR Links and Envs

Repository
PR Link
PR Env

Monolith
Monolith PR
Monolith Env

Portal
Portal Link
Portal Env

Another Repo
Another Link
Another Env

📬Published Alpha Packages:@codecademy/gamut@57.4.4-alpha.c77664.0@codecademy/gamut-icons@9.32.1-alpha.c77664.0@codecademy/gamut-kit@0.6.452-alpha.c77664.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://67293b29ed0488743dbb6986--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut@57.4.4-alpha.cf2a08.0@codecademy/gamut-icons@9.32.1-alpha.cf2a08.0@codecademy/gamut-kit@0.6.452-alpha.cf2a08.0<EMAIL_ADDRESS>
📬Published Alpha Packages:@codecademy/gamut@57.4.4-alpha.bcd7d9.0@codecademy/gamut-icons@9.32.1-alpha.bcd7d9.0@codecademy/gamut-kit@0.6.452-alpha.bcd7d9.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://672a4def000bd4ef017987b3--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut@57.4.4-alpha.01a171.0@codecademy/gamut-icons@9.32.1-alpha.01a171.0@codecademy/gamut-kit@0.6.452-alpha.01a171.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://672b84835901b31ec6670a8d--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut@57.4.4-alpha.07f8f5.0@codecademy/gamut-icons@9.32.1-alpha.07f8f5.0@codecademy/gamut-kit@0.6.452-alpha.07f8f5.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://672bb0d6fae399123fb3d53b--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut@57.4.5-alpha.4d030a.0@codecademy/gamut-icons@9.32.2-alpha.4d030a.0@codecademy/gamut-kit@0.6.453-alpha.4d030a.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://672bd946f7316d516cf2f6b4--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut@57.4.5-alpha.d3adaa.0@codecademy/gamut-icons@9.32.2-alpha.d3adaa.0@codecademy/gamut-kit@0.6.453-alpha.d3adaa.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://672ce313949be5cc1039594d--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut@57.4.5-alpha.d3adaa.0@codecademy/gamut-icons@9.32.2-alpha.d3adaa.0@codecademy/gamut-kit@0.6.453-alpha.d3adaa.0<EMAIL_ADDRESS>
📬Published Alpha Packages:@codecademy/gamut@57.4.5-alpha.d3adaa.0@codecademy/gamut-icons@9.32.2-alpha.d3adaa.0@codecademy/gamut-kit@0.6.453-alpha.d3adaa.0@codecademy/styleguide@68.2.5-alpha.d3adaa.0


[tests-only][full-ci] Add test for unlocking project space file

Description
This PR adds the test for unlocking project space file
Related Issue

Part of: https://github.com/owncloud/ocis/issues/7625

How Has This Been Tested?

Locally
CI

Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Technical debt
[x] Tests only (no source changes)

Checklist:

[ ] Code changes
[ ] Unit tests added
[ ] Acceptance tests added
[ ] Documentation ticket raised:

This PR is block due to this issue https://github.com/owncloud/ocis/issues/7696


[Tooltip] Prevent tooltip from opening on tab change

Fixes #705
This seemed like a simple enough fix so jumped on it quick for a break.
It's different to #617 which happens because the content that the trigger opens is considered to be outside the tooltip tree, so returning to the tooltip trigger behaves like a brand new focus.
Happy to close this if we think the two issues can be resolved by the same solution, I'm just not sure if they can.

You are right it's a different issue than #617 as you noted. However I'm not sure this is the right solution for this one because it only handles tab change, not document focus change. As in, if my page is still visible, but I command+tab to another app, or click in another app, and then back to the browser with my page.

I wasn't aware those other scenarios were an issue, apologies. I've updated the event listener to handle all cases.

Yeah I see issues too which aren't easy to solve because a blur event is triggered if you go from the button to the browser chrome, and a focus if you go from chrome to button.
I've pushed a solution I thought would might solve it but doesn't because of the above issue.
Okay, like everything, it seems this is much trickier to solve than i initially anticipated so I've pushed something I tried (which doesn't work because of the above issue) so we have a history of what was tried and I'm going to close the PR.
The remaining issue with this code (as far as I can tell) is the following:

Click button
Click the address bar
Tab to button

Tooltip should appear but doesn't.
https://user-images.githubusercontent.com/175330/125800593-f74a267d-44c8-4c95-be3c-1684140718f5.mp4


Check if 4 creators can login at once in one account

Check if push notifications work correctly, among with features.

Confirmed !


02 State Hourly Electricity Demand has sqlite3.OperationalError on Kaggle

Hi;
I'm exploring your Notebooks on Kaggle, but https://www.kaggle.com/code/catalystcooperative/02-state-hourly-electricity-demand has an error. I copied the Notebook and tried to run it and it also failed for me. It is an OperationalError and the link within the error message suggests the database connection is dropped. Perhaps timing out?
At the top of the Notebook, Kaggle reports
You are viewing the last successful run of this notebook. Click here to see the current version with an error.
CATALYST COOPERATIVE +1 · COPIED FROM PRIVATE NOTEBOOK · 1MO AGO (SCHEDULED) · 990 VIEWS
The code between the successful run and the version with the error appears to be unchanged. But the versions of some libraries are different.
Cell 1 in the functional Notebook reports
Python version: 3.10.12 | packaged by conda-forge | (main, Jun 23 2023, 22:40:32) [GCC 12.3.0]
np.__version__='1.24.3'
pd.__version__='2.0.3'
sa.__version__='2.0.20'

Cell 1 in the broken Notebook reports
Python version: 3.10.13 | packaged by conda-forge | (main, Dec 23 2023, 15:36:39) [GCC 12.3.0]
np.__version__='1.26.3'
pd.__version__='2.2.0'
sa.__version__='2.0.25'

The error it reports is quite long.  Here is a snippet:

---------------------------------------------------------------------------
OperationalError                          Traceback (most recent call last)
File /opt/conda/lib/python3.10/site-packages/sqlalchemy/engine/base.py:1969, in Connection._exec_single_context(self, dialect, context, statement, parameters)
   1968     if not evt_handled:
-> 1969         self.dialect.do_execute(
   1970             cursor, str_statement, effective_parameters, context
   1971         )
   1973 if self._has_events or self.engine._has_events:

File /opt/conda/lib/python3.10/site-packages/sqlalchemy/engine/default.py:922, in DefaultDialect.do_execute(self, cursor, statement, parameters, context)
    921 def do_execute(self, cursor, statement, parameters, context=None):
--> 922     cursor.execute(statement, parameters)

OperationalError: near "out_ferc714__hourly_predicted_state_demand": syntax error

The above exception was the direct cause of the following exception:

OperationalError                          Traceback (most recent call last)
File <timed exec>:2

File /opt/conda/lib/python3.10/site-packages/pandas/io/sql.py:734, in read_sql(sql, con, index_col, coerce_float, params, parse_dates, columns, chunksize, dtype_backend, dtype)
    724     return pandas_sql.read_table(
    725         sql,
...
File /opt/conda/lib/python3.10/site-packages/sqlalchemy/engine/default.py:922, in DefaultDialect.do_execute(self, cursor, statement, parameters, context)
    921 def do_execute(self, cursor, statement, parameters, context=None):
--> 922     cursor.execute(statement, parameters)

OperationalError: (sqlite3.OperationalError) near "out_ferc714__hourly_predicted_state_demand": syntax error
[SQL: out_ferc714__hourly_predicted_state_demand]
(Background on this error at: https://sqlalche.me/e/20/e3q8)

I think it is timing out, because if I do
sql = """
SELECT *
FROM
  out_ferc714__hourly_estimated_state_demand
WHERE
  state_id_fips LIKE '02';
"""
alaska = pd.read_sql(sql, pudl_engine).convert_dtypes(convert_floating=False)
alaska

I do get data returned

Hmm, that's no good.  It's not thatj big a table (~15M records I think) so I'm surprised it would be timing out.
Oh, I think I see what happened. We updated the table name in the latest release to "estimated" rather than "predicted".  There were a couple of table name changes that affect the other example notebook too.  I've updated them and the new versions should be live on Kaggle momentarily!
Thanks for pointing this out.  I wish there were some way to get an automatic notification about a failed scheduled notebook run.


I'm use deploy image kubemq-community on kube and found error.

This Error : running kubemq community version on kubernetes is not supported anymore, please use kubemq commercial version

we are not allowing to run the community version on Kubernetes,


Set refresh token local variable also when Authenticatable is initialized with an authentication

As mentioned in #226, when authenticating on behalf of content owner, the access token will not refresh using the refresh token because of the way the content owner object is initialized. This PR fixes that.
I'd like to add tests, but they won't run on my machine because of missing environment variables.

Thanks! When/How do the tests fail on your machine? If you print out the log, I can help.
Yt is intended to work with Ruby >= 1.9.3.
On my machine I use the most recent version of Ruby,
$ ruby -v
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-darwin14]

This is the log:
karianneberg@c:~/code/yt (fix-refresh-token-for-content-owners)$ rspec
Coverage report generated for RSpec to /Users/karianneberg/code/yt/coverage. 2772 / 4003 LOC (69.25%) covered.
[Coveralls] Outside the CI environment, not sending data.
/Users/karianneberg/.rvm/gems/ruby-2.1.2/gems/rspec-core-3.2.3/lib/rspec/core/configuration.rb:1226:in `load': /Users/karianneberg/code/yt/spec/models/video_category_spec.rb:16: syntax error, unexpected ':', expecting => (SyntaxError)
...t(:attrs) { {snippet: {"title": "People & Blogs", "assignabl...
...                               ^
/Users/karianneberg/code/yt/spec/models/video_category_spec.rb:16: syntax error, unexpected ',', expecting '}'
...et: {"title": "People & Blogs", "assignable": true}} }
...                               ^
/Users/karianneberg/code/yt/spec/models/video_category_spec.rb:16: syntax error, unexpected ':', expecting '}'
..."People & Blogs", "assignable": true}} }
...                               ^
	from /Users/karianneberg/.rvm/gems/ruby-2.1.2/gems/rspec-core-3.2.3/lib/rspec/core/configuration.rb:1226:in `block in load_spec_files'
	from /Users/karianneberg/.rvm/gems/ruby-2.1.2/gems/rspec-core-3.2.3/lib/rspec/core/configuration.rb:1224:in `each'
	from /Users/karianneberg/.rvm/gems/ruby-2.1.2/gems/rspec-core-3.2.3/lib/rspec/core/configuration.rb:1224:in `load_spec_files'
	from /Users/karianneberg/.rvm/gems/ruby-2.1.2/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:97:in `setup'
	from /Users/karianneberg/.rvm/gems/ruby-2.1.2/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:85:in `run'
	from /Users/karianneberg/.rvm/gems/ruby-2.1.2/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:70:in `run'
	from /Users/karianneberg/.rvm/gems/ruby-2.1.2/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:38:in `invoke'
	from /Users/karianneberg/.rvm/gems/ruby-2.1.2/gems/rspec-core-3.2.3/exe/rspec:4:in `<top (required)>'
	from /Users/karianneberg/.rvm/gems/ruby-2.1.2/bin/rspec:23:in `load'
	from /Users/karianneberg/.rvm/gems/ruby-2.1.2/bin/rspec:23:in `<main>'
	from /Users/karianneberg/.rvm/gems/ruby-2.1.2/bin/ruby_executable_hooks:15:in `eval'
	from /Users/karianneberg/.rvm/gems/ruby-2.1.2/bin/ruby_executable_hooks:15:in `<main>'

My Ruby version is ruby 2.1.2p95.

I installed Ruby 2.2 and ran the tests again, and then they succeed. Looks like the {"string_key": "value"}was introduced in Ruby 2.2: https://github.com/ruby/ruby/blob/v2_2_0/NEWS. You might want to either use the old hash syntax for those tests or specify somewhere that 2.2 is required.

I'm struggling to get the tests to run under 2.2 too, though. Here is the log from a test run:
karianneberg@c:~/code/yt (fix-refresh-token-for-content-owners)$ rspec spec/requests/as_account/authentications_spec.rb

Randomized with seed 49213

Yt::Models::Account
  #authentication_url
    given a redirect URI and scopes
      should match "access_type=offline"
      given a forced approval prompt
        should match "approval_prompt=force"
  #refresh
    given a valid refresh token
      should change result (FAILED - 1)

Failures:

  1) Yt::Models::Account#refresh given a valid refresh token should change result
     Failure/Error: it { expect{account.refreshed_access_token?}.to change{account.expires_at} }
     Yt::Errors::Unauthorized:
       A request to YouTube API was sent without a valid authentication:
       {}

       You can retry the same request manually by running:

       In order to perform this request, you need to register your app with
       Google Developers Console (https://console.developers.google.com).

       Make sure your app has access to the Google+ and YouTube APIs.

       If your app requires read-only access to public YouTube data, then
       generate a server API key and set its value with the initializer:

       Yt.configure do |config|
         config.api_key = '123456789012345678901234567890'
       end

       or through an environment variable:

       export YT_API_KEY="123456789012345678901234567890"

       If your app needs to perform actions on behalf of YouTube accounts,
       then generate a client ID and SECRET and set their values with the
       initializer:

       Yt.configure do |config|
         config.client_id = '1234567890.apps.googleusercontent.com'
         config.client_secret = '1234567890'
       end

       or through environment variables:

       export YT_CLIENT_ID="1234567890.apps.googleusercontent.com"
       export YT_CLIENT_SECRET="1234567890"
     # ./lib/yt/associations/has_authentication.rb:95:in `rescue in use_refresh_token!'
     # ./lib/yt/associations/has_authentication.rb:93:in `use_refresh_token!'
     # ./lib/yt/associations/has_authentication.rb:46:in `authentication'
     # ./lib/yt/associations/has_authentication.rb:22:in `expires_at'
     # ./spec/requests/as_account/authentications_spec.rb:20:in `block (5 levels) in <top (required)>'
     # ./spec/requests/as_account/authentications_spec.rb:20:in `block (4 levels) in <top (required)>'

Finished in 0.00391 seconds (files took 0.46392 seconds to load)
4 examples, 1 failure

Failed examples:

rspec ./spec/requests/as_account/authentications_spec.rb:20 # Yt::Models::Account#refresh given a valid refresh token should change result

Randomized with seed 49213

Coverage report generated for RSpec to /Users/karianneberg/code/yt/coverage. 1295 / 2281 LOC (56.77%) covered.
[Coveralls] Outside the CI environment, not sending data.

I've set the YT_TEST_DEVICE_REFRESH_TOKEN, YT_CLIENT_ID, YT_CLIENT_SECRET and YT_API_KEY environment variables. I can see from debugging that the client id and secret never makes it into the configuration, which of course causes the request for a new access token to fail. Am I missing any environment variables?
There's something wrong with your Travis setup, btw. Haven't been running for the last year.

Wow! You've managed to go a long way given that tests are not thoroughly
documented.
I'll give it a look. Thanks! :D
On Wed, Aug 5, 2015 at 5:29 AM, Karianne Berg<EMAIL_ADDRESS>wrote:

I'm struggling to get the tests to run under 2.2 too, though. Here is the
log from a test run:
karianneberg@c:~/code/yt (fix-refresh-token-for-content-owners)$ rspec spec/requests/as_account/authentications_spec.rb
Randomized with seed 49213
Yt::Models::Account
#authentication_url
given a redirect URI and scopes
should match "access_type=offline"
given a forced approval prompt
should match "approval_prompt=force"
#refresh
given a valid refresh token
should change result (FAILED - 1)
Failures:

Yt::Models::Account#refresh given a valid refresh token should change result
Failure/Error: it { expect{account.refreshed_access_token?}.to change{account.expires_at} }
Yt::Errors::Unauthorized:
A request to YouTube API was sent without a valid authentication:
{}
You can retry the same request manually by running:
In order to perform this request, you need to register your app with
Google Developers Console (https://console.developers.google.com).
Make sure your app has access to the Google+ and YouTube APIs.
If your app requires read-only access to public YouTube data, then
generate a server API key and set its value with the initializer:
Yt.configure do |config|
config.api_key = '123456789012345678901234567890'
end
or through an environment variable:
export YT_API_KEY="123456789012345678901234567890"
If your app needs to perform actions on behalf of YouTube accounts,
then generate a client ID and SECRET and set their values with the
initializer:
Yt.configure do |config|
config.client_id = '1234567890.apps.googleusercontent.com'
config.client_secret = '1234567890'
end
or through environment variables:
export YT_CLIENT_ID="1234567890.apps.googleusercontent.com"
export YT_CLIENT_SECRET="1234567890"
./lib/yt/associations/has_authentication.rb:95:in `rescue in use_refresh_token!'
./lib/yt/associations/has_authentication.rb:93:in `use_refresh_token!'
./lib/yt/associations/has_authentication.rb:46:in `authentication'
./lib/yt/associations/has_authentication.rb:22:in `expires_at'
./spec/requests/as_account/authentications_spec.rb:20:in `block (5 levels) in <top (required)>'
./spec/requests/as_account/authentications_spec.rb:20:in `block (4 levels) in <top (required)>'

Finished in 0.00391 seconds (files took 0.46392 seconds to load)
4 examples, 1 failure
Failed examples:
rspec ./spec/requests/as_account/authentications_spec.rb:20 # Yt::Models::Account#refresh given a valid refresh token should change result
Randomized with seed 49213
Coverage report generated for RSpec to /Users/karianneberg/code/yt/coverage. 1295 / 2281 LOC (56.77%) covered.
[Coveralls] Outside the CI environment, not sending data.
I've set the YT_TEST_DEVICE_REFRESH_TOKEN, YT_CLIENT_ID, YT_CLIENT_SECRET
and YT_API_KEY environment variables. I can see from debugging that the
client id and secret never makes it into the configuration, which of course
causes the request for a new access token to fail. Am I missing any
environment variables?
There's something wrong with your Travis setup, btw. Haven't been running
for the last year.
—
Reply to this email directly or view it on GitHub
https://github.com/Fullscreen/yt/pull/228#issuecomment-127981470.

--
Claudio Baccigalupo  | Software Writer  |  Fullscreen, Inc.
http://Fullscreen.net  |  +1.310.202.3333

Great, thanks!

@claudiofullscreen: Had any chance to look at this yet?

@claudiofullscreen Hi, following up on this again. Any chance to get this merged? Right now I have to run my app against a fork.

I would also like to see that merged.

Hi there,
My name is Derek and I'm now one of the maintainers of the Yt gem. I want to both thank you for your contribution and apologize for the lack of feedback on your pull request. Maintaining an open source project like Yt is a pretty big job, and we're taking steps to prioritize maintenance and development of the project. We're hoping to review community contributions on a regular basis, as well as provide a roadmap for our development plans.
As part of this process we're going through the open PRs and taking action on each one, and for this PR we've chosen to close it. Unfortunately due to the sheer number of PRs and amount of time that's passed, we can't address your PR individually. If you'd like our thoughts, feel free to comment on your PR, and we'll try and get back to you in a timely manner. In lieu of that, some of the reasons we've closed PRs are:

a lack of tests. We strive for comprehensive coverage; this is important to us
the passage of time: things that were relevant when the PR was opened might not be as important anymore
feature need. Since adding features requires us to maintain them, we want to add features that many people will use

Thanks again for your contribution, and please let us know if you have any questions or comments.


Extension gallery should have an "all" section or a way to show all available extensions

Currently the extension gallery doesn't have a way to show non-recommended but available extensions without searching. If we add a new extension (for example the SSMSKeymap extension) to the gallery it won't be visible unless you do a search.
Note: this is separate from #1165 which covers search not filtering as expected.
Default view

View after searching for "SSMS" or "Keymap"

Note how the extension appears.

does searching @all not work?
thats how vscode's works.

2 things:

#1165 covers the fact that any search will return all results. That needs fixing
We don't have a marketplace web page that allows users to organically find extensions. My concern in this bug is that without that, it's non-intuitive for users who want to find all extensions. A solution might be to suggest ways to view all extensions in the viewlet. If enough people think it's intuitive to just search we can close this bug.

@llali I think we need to do something for this scenario relatively soon.  Currently there are issues discovering extensions that aren't in the SQL Ops recommendation list.  I guess a short-term alternative could be to add all extensions to the recommendation list, but I prefer a longer-term solution if possible.

The menu item "Show Popular Extensions" lists all the extensions but agree we need to fix the search and @ALL

@llali currently my default Extension Manager looks as below.  This is excluding several of our community contributed extensions, and I suspect many users won't know they exist or how to find them.  I don't think this is what we want.
Until we have a "real marketplace" and dynamic recommendations I think we should error on the side of showing "too many" extension recommendations.  Perhaps a simple solution is to rename the "Recommended" section to "All" and just show everything there, perhaps sorting the recommend extensions first?

I'll take a look if there's any easy way to improve this experience.


Paypal email recipt has no description and always Qty 1.

Whatever I buy from my Oscar shop, the email receipt that Paypal sends (both the customer and the merchant) has Qty 1 and no item descriptions, whatever I buy.
I wonder if this is because Paypal recommend that you send the same set of parameters for DoExpressCheckout as they list for SetExpressCheckout?  At the moment, Django-oscar-paypal only sends a small set.
https://developer.paypal.com/docs/classic/api/merchant/DoExpressCheckoutPayment_API_Operation_NVP/
The example below is the email that Paypal sends when I make a purchase of two things costing 49p.

Dear NAME,
You sent a payment of £0.98 GBP to Steve Bradshaw's Test Store.
It may take a few moments for this transaction to appear in your account.

Merchant:
Steve Bradshaw's Test Store
<EMAIL_ADDRESS>Instructions to merchant:
You haven't entered any instructions.

Purchase Details
Description:  , No shipping required:
Unit price: 0.98 GBP
Qty: 1
Amount: 0.98 GBP
Subtotal: 0.98 GBP
Postage and packaging£0.00 GBP
Insurance£0.00 GBP
Insurance£0.00 GBP
Total: 0.98 GBP
Payment: 0.98 GBP
Payment sent to<EMAIL_ADDRESS>

Is there any solution to this problem?

I'm playing with an experimental fix to this:
https://github.com/st8st8/django-oscar-paypal/commit/6894e13d6391b1f7ee612462b041b9bfc37495ee
if you want to take a look...


New twitter logo

Pull Request
Description
App logo is changed according to twitter new logo 'X'. Twitter is replace with "X" .
Provide a brief summary of the changes introduced by this pull request.

New logo in the templates
Twitter is change to "X" in readme

Related Issue
If your pull request is related to an existing issue, reference it here by mentioning the issue number (e.g., "Closes #123").
Closes #11
Proposed Changes
Describe the changes you've made in this pull request. Include information such as:

Refactoring done to logo and name according to new twitter logo

Screenshots or GIFs
If applicable, attach screenshots or GIFs that demonstrate the changes made or the new features introduced.
Testing
Explain how you have tested the changes. Provide details such as:

Steps followed to test
Specific test cases executed
Frameworks or tools used for testing
Any additional information related to testing

Additional Notes
Add any additional information or context that may be helpful for reviewing the pull request.
Checklist
Please make sure to review and check the following before submitting your pull request:

[ ] Code follows the project's coding conventions and style guidelines.
[ ] Code has been tested thoroughly.
[ ] Documentation has been updated, if applicable.
[ ] All existing tests pass successfully.
[ ] New tests have been added to cover the changes, if applicable.
[ ] Commit messages are clear and descriptive.

By submitting this pull request, I confirm that my contribution is made under the project's license.

Logo is not looking good to me, I will assign this to someone else. Thanks for your time.


[sdk] Composer reset does not clear level/idb data

Reset times out and doesn't reset data.
App is left in an inoperable state requiring manual reset (deleting stores via Application>Storage).

@richburdon can you provide steps to reproduce? we have tests for this so it's working in at least some scenarios


Fix submodule_at_head script

This should fix the recent protobuf_at_head breakage (b/144454974)
Analysis what happened:

protobuf has updated mathlimits.cc at head
the grpc_build_submodule_at_head.sh updated third_party/protobuf submodule and ran make_grpcio_tools.py script (which normally would regenerate the source file list and thus remove the mathlimits.cc file)
make_grpcio_tools.py runs bazel query internally, but unfortunately uses a bazel version that's way out of date.  Therefore, make_grpcio_tools.py has failed and didn't update the source list
our build still thought that mathlimits.cc exists and tried to build it
that resulted in an error.

This PR refactors the grpc_build_submodule_at_head.sh for better readability and also uses tools/bazel wrapper instead of trying to download bazel itself.

An adhoc test run: https://sponge.corp.google.com/invocation?tab=Build+Log&id=d9a3f6ce-3234-4a6a-8470-1f4b519bd775&searchFor=

@jtattermusch So our build process would have caught this except that make_grpcio_tools.py errored out?

@jtattermusch So our build process would have caught this except that make_grpcio_tools.py errored out? Or did it just not properly update the source list because of the old bazel version?
Edit: I'm not completely understanding exactly how make_grpcio_tools.py failed

here's excerpt from the failing test log
+ tools/distrib/python/make_grpcio_tools.py
WARNING: Waiting for server process to terminate (waited 5 seconds, waiting at most 60)
WARNING: Waiting for server process to terminate (waited 10 seconds, waiting at most 60)
Starting local Bazel server and connecting to it...
Loading: 0 packages loaded
Loading: 0 packages loaded
    currently loading:
ERROR: /tmpfs/tmp/bazel/external/rules_proto/proto/private/native.bzl:24:23: name 'proto_common' is not defined
ERROR: error loading package '': in /tmpfs/tmp/bazel/external/rules_proto/proto/defs.bzl: Extension 'proto/private/native.bzl' has errors
Loading: 0 packages loaded
    currently loading:
Loading: 0 packages loaded
    currently loading:
Got non-fatal error:
Traceback (most recent call last):
  File "tools/distrib/python/make_grpcio_tools.py", line 161, in main
    protoc_lib_deps_content = get_deps()
  File "tools/distrib/python/make_grpcio_tools.py", line 109, in get_deps
    cc_files_output = bazel_query(BAZEL_DEPS_PROTOC_LIB_QUERY)
  File "tools/distrib/python/make_grpcio_tools.py", line 102, in bazel_query
    output = subprocess.check_output([BAZEL_DEPS, query])
  File "/usr/lib/python2.7/subprocess.py", line 573, in check_output
    raise CalledProcessError(retcode, cmd, output=output)
CalledProcessError: Command '['/tmpfs/src/github/grpc/tools/distrib/python/bazel_deps.sh', '//:protoc_lib']' returned non-zero exit status 7
Invoking "bazel query" to gather the protobuf dependencies.
Running "bazel query //:protoc_lib"

Basically bazel_deps.sh (which is what calls bazel query) has failed, so the dependency list could not have been updated.
So yeah, the test has proceeded without being able to update the source file list, which then resulted in an error.

@jtattermusch It sounds like bazel_deps.sh was failing for a while. Was there any way we could have noticed this?

@jtattermusch It sounds like bazel_deps.sh was failing for a while. Was there any way we could have noticed this?

Yes it seems it was failing for a while. Perhaps we could have made make_grpcio_tools.py fail if getting the deps failed (not sure how hard it would be to fix that). Besides that, we caught the problem as soon as the protoc source list has changed (because that broke our test) - unfortunately not really in a digestible form.

Adhoc run of protobuf_at_head is green: https://source.cloud.google.com/results/invocations/d9a3f6ce-3234-4a6a-8470-1f4b519bd775/targets

Merging to fix the breakage.


e2e exit codes are always 0 or 1

🐞 Bug report
Command (mark with an x)

- [ ] new
- [ ] build
- [ ] serve
- [ ] test
- [x] e2e
- [ ] generate
- [ ] add
- [ ] update
- [ ] lint
- [ ] xi18n
- [ ] run
- [ ] config
- [ ] help
- [ ] version
- [ ] doc

Is this a regression?

 No
Description
Failing e2e tests always return exit code 1
Running ng e2e should return the correct exit code from protractor to make it possible to distinguish between unmet assertions and other issues such as compilation errors.
🔬 Minimal Reproduction
ng new my-first-project
cd new my-first-project
# edit e2e/src/app.e2e-spec.ts: change string to make expectation to be falsy
ng e2e

🔥 Exception or Error

E/launcher - Process exited with error code 1
An unexpected error occurred: undefined

🌍 Your Environment

Angular CLI: 7.3.2
Node: 10.14.1
OS: linux x64
Angular: 7.2.5
... animations, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.13.2
@angular-devkit/build-angular     0.13.2
@angular-devkit/build-optimizer   0.13.2
@angular-devkit/build-webpack     0.13.2
@angular-devkit/core              7.3.2
@angular-devkit/schematics        7.3.2
@angular/cli                      7.3.2
@ngtools/webpack                  7.3.2
@schematics/angular               7.3.2
@schematics/update                0.13.2
rxjs                              6.3.3
typescript                        3.2.4
webpack                           4.29.0

Anything else relevant?

Hi, I am sorry but the log above is not caused by the CLI.
In the above mentioned case, the error code 1, is emitted by protractor itself.
E/launcher - Process exited with error code 1

If protractor exits with another code, it should print another code. However, this is not caused by the CLI, as these logs are internally handled within protractor library.

Thanks for pointing out, that this is a protractor issue. I'll post the bug there.


Move to multiformat org

For the same reason as we moved the cid-utils website in https://github.com/multiformats/cid-utils-website/issues/12

Good catch! Support 👍🏽


Issues with global scope prefixes

Checked against the Genesis Framework with the develop WPCS branch and:
<rule ref="WordPress.NamingConventions.PrefixAllGlobals">
    <properties>
        <property name="prefixes" type="array" value="genesis" />
    </properties>
</rule>

phpcs --sniffs=WordPress.NamingConventions.PrefixAllGlobals

The following appear to be false positives:

Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "'genesis_cpt_archive_settings_capability_' . $this->post_type->name"..
Includes a dynamic part of the hook name the reason?
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "$filter_location". (or $args['before_sidebar_hook']).
A filter name that is completely dynamic.
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "the_search_query". (or loginout, or widget_title) .
Genesis invokes a WordPress filter.
Functions declared by a theme/plugin should start with the theme/plugin prefix. Found: "mb_strpos". (and three other mb_*() functions).
Genesis adds these for backcompat, but they are names that match PHP functions.

@GaryJones Could you give me a little more context, i.e. code snippets I can use to test with for the first two ?
The last two cases are typical ones for which the whitelist comment was added to the sniff as documented both in the PR as well as in the sniff and the unit test file.

Just thinking regarding the last one: I could reduce the false positives created by backfills for new PHP functions by checking whether a function of the same name exists.
Caveats:

This will only work for PHP functions, not for backfills of WP functions.
The results will depend on the PHP version the sniff is being run on, i.e. if the function was introduced in PHP 7, but the sniffs are run using PHP 5.6, you will still get the false positive.

Could you give me a little more context, i.e. code snippets I can use to test with for the first two ?

class Genesis_Admin_CPT_Archive_Settings extends Genesis_Admin_Boxes {
	public function __construct( $post_type ) {
		...
		$menu_ops = array(
			'submenu' => array (
				'parent_slug' => 'edit.php?post_type=' . $this->post_type->name,
				'page_title'  => apply_filters( 'genesis_cpt_archive_settings_page_label', __( 'Archive Settings', 'genesis' ) ),
				'menu_title'  => apply_filters( 'genesis_cpt_archive_settings_menu_label', __( 'Archive Settings', 'genesis' ) ),
				'capability'  => apply_filters( 'genesis_cpt_archive_settings_capability_' . $this->post_type->name, 'manage_categories' ),
			)
		);
		...
	}
	...
}

function genesis_get_nav_menu( $args = array() ) {
	...
	$filter_location = 'genesis_' . $sanitized_location . '_nav';

	// Handle back-compat for primary and secondary nav filters.
	if ( 'primary' === $args['theme_location'] ) {
		$filter_location = 'genesis_do_nav';
	} elseif ( 'secondary' === $args['theme_location'] ) {
		$filter_location = 'genesis_do_subnav';
	}

	/**
	 * Filter the navigation markup.
	 *
	 * @since 2.1.0
	 *
	 * @param string $nav_output Opening container markup, nav, closing container markup.
	 * @param string $nav Navigation list (`<ul>`).
	 * @param array $args {
	 *     Arguments for `wp_nav_menu()`.
	 *
	 *     @type string $theme_location Menu location ID.
	 *     @type string $container Container markup.
	 *     @type string $menu_class Class(es) applied to the `<ul>`.
	 *     @type bool $echo 0 to indicate `wp_nav_menu()` should return not echo.
	 * }
	 */
	return apply_filters( $filter_location, $nav_output, $nav, $args );
}

They can both be distilled down to simple cases:
$acronym_var = 'acronym';
do_action( "acronym_{$acronym}" ); // OK.
apply_filters( "acronym_{$acronym}" ); // OK.
do_action( 'acronym_' . $acronym ); // OK.
apply_filters( 'acronym_' . $acronym ); // OK.
do_action( $acronym ); // OK.
apply_filters( $acronym ); // OK.

class Acronym_Dynamic_Hooks {
	$filter = 'acronym';
	public function test() {
		do_action( "acronym_{$this->filter}" ); // OK.
		apply_filters( "acronym_{$this->filter}" ); // OK.
		do_action( 'acronym_' . $this->filter ); // OK.
		apply_filters( 'acronym_' . $this->filter ); // OK.
		do_action( $this->filter ); // OK.
		apply_filters( $this->filter ); // OK.
	}
}

@GaryJones Thanks for the examples. Looking into this separately from the backfill whitelisting.
Recognizing this is of course a bit more complicated than just the examples you gave - think:

prefix in a property
prefix in a property with an underscore
prefix in a class constant
prefix in a class constant with an underscore
prefix in a class property but assigned from the constructor or elsewhere in the class
etc

(just to name a few of the possible situations...)

@GaryJones I've been looking into this and would like a second opinion on the direction to take.

do_action( "acronym_{$acronym_filter_var}" ); // OK.
apply_filters( "acronym_{$acronym_filter_var}" ); // OK.
do_action( 'acronym_' . $acronym_filter_var ); // OK.
apply_filters( 'acronym_' . $acronym_filter_var ); // OK.

:white_check_mark:  In the local branch I'm working on, these are now correctly recognized.

do_action( $acronym_filter_var ); // OK.
apply_filters( "{$acronym_filter_var}_hook ); // OK.

:question:  But what to do with completely dynamic hook names or hook names starting with a dynamic part ?
And for that matter, when a dynamic array key is found in $GLOBALS ?
$GLOBALS[ $something ] = 'value';
$GLOBALS[ "{$something}_something" ] = 'value';
${$variable} = 'value';

At this moment, dynamic array keys in $GLOBALS are just ignored and variable variables are not taken into account at all.
The way I read it, your code sample above regarding the dynamic hook names suggests, searching up in the scope for a variable definition, evaluating the value of that and if that starts with (one of) the prefix(es) requested, ignoring it.
So what to do if it doesn't ? Throw a warning ? And in that case, should the same logic be applied to $GLOBALS with dynamic keys and variable variables ?
Or should any hook name which is/starts with a dynamic part be ignored by this sniff ?

Or should any hook name which is/starts with a dynamic part be ignored by this sniff ?

I'd disagree on that. For instances, Genesis also has instances of:

Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "{$this->pagehook}_settings_page_form".

Where the pagehook value could come from Genesis or from a child theme (Genesis provides class for creating admin pages).
Simply ignoring hook names that start with a dynamic part would potentially be missing cases.
I guess the problem is, you can't find out what the value of the variable actually is?

No, the question is more: how far do we want to go ? The more in-depth processing we do, the slower the sniff will become, while there is also a whitelist comment which can be used if necessary.
It's also a question of consistency - if we try and determine the value of a variable in a hook name, we should do the same with a variable array key for $GLOBALS or a variable variable.
And then we would still be left with things we wouldn't be able to resolve, like properties defined in a parent class and used in the child, globals defined in another file etc.
So we basically have a choice to make between these options:

Blanket ignore both variable names as well as hook names which are completely dynamic or start with a dynamic part.
Downgrade to warning in those cases, but throw the message.
Try and resolve the variable with all the issues associated with it. If the variable contains/starts with the prefix, do nothing. If it doesn't or can't be resolved, throw a warning anyway.

Downgrade to warning in those cases, but throw the message.

For practicality, I think this is the most workable solution right now.