Dev environment doesn't work

I've finally built the DEV environment on my Linux machine now. While the build works fine, when I issue a make up and the service starts, I only receive a HTTP 502 (bad gateway) in the browser trying to open the auditorium.
Here is the log of make up:
Attaching to auditorium-1, proxy-1, script-1, server-1, test_site-1, vault-1
server-1      | 2024/01/13 15:33:14 Configuration loaded from refresh.yml
server-1      | Refresh (1.4.0)
server-1      |
server-1      | refresh: 2024/01/13 15:33:14 === Rebuild on: :start: ===
server-1      | refresh: 2024/01/13 15:33:15 === Running: go build -v -o /data/build/refresh-build ./cmd/offen (PID: 11) ===
auditorium-1  |
auditorium-1  | ><EMAIL_ADDRESS>start /offen/auditorium
auditorium-1  | > budo index.js --pushstate --port $PORT -- --entry ./register-dev-locales.js --global-transform aliasify
auditorium-1  |
server-1      | # cd /offen; git status --porcelain
server-1      | fatal: detected dubious ownership in repository at '/offen'
server-1      | To add an exception for this directory, call:
server-1      |
server-1      |         git config --global --add safe.directory /offen
server-1      | error obtaining VCS status: exit status 128
server-1      |         Use -buildvcs=false to disable VCS stamping.
server-1      | refresh: 2024/01/13 15:33:17 === Error! ===
server-1      | refresh: 2024/01/13 15:33:17 === exit status 1
server-1      | # cd /offen; git status --porcelain
server-1      | fatal: detected dubious ownership in repository at '/offen'
server-1      | To add an exception for this directory, call:
server-1      |
server-1      |         git config --global --add safe.directory /offen
server-1      | error obtaining VCS status: exit status 128
server-1      |         Use -buildvcs=false to disable VCS stamping.
server-1      |  ===
vault-1       |
vault-1       | ><EMAIL_ADDRESS>start /offen/vault
vault-1       | > budo index.js --port $PORT -- -p [ split-require --sri sha384 ]
vault-1       |
script-1      |
script-1      | ><EMAIL_ADDRESS>start /offen/script
script-1      | > budo index.js --pushstate --port $PORT
script-1      |
auditorium-1  | [0001] info  Server running at http://<IP_ADDRESS>:9955/ (connect)
script-1      | [0001] info  Server running at http://<IP_ADDRESS>:9966/ (connect)
vault-1       | [0001] info  Server running at http://<IP_ADDRESS>:9977/ (connect)
auditorium-1  | Browserslist: caniuse-lite is outdated. Please run:
auditorium-1  | npx browserslist@latest --update-db
auditorium-1  |
auditorium-1  | Why you should do it regularly:
auditorium-1  | https://github.com/browserslist/browserslist#browsers-data-updating
script-1      | [0004] 3465ms      97KB (browserify)
vault-1       | [0010] 9154ms     1.6MB (browserify)
auditorium-1  | [0020] 19s         12MB (browserify)
proxy-1       | 2024/01/13 15:34:18 [error] 6#6: *1 connect() failed (111: Connection refused) while connecting to upstream, client: <IP_ADDRESS>, server: , request: "GET /auditorium/ HTTP/1.1", upstream: "http://<IP_ADDRESS>:8080/auditorium/", host: "dev-vm:8080"
proxy-1       | <IP_ADDRESS> - - [13/Jan/2024:15:34:18 +0000] "GET /auditorium/ HTTP/1.1" 502 158 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0"
proxy-1       | <IP_ADDRESS> - - [13/Jan/2024:15:34:18 +0000] "GET /favicon.ico HTTP/1.1" 502 158 "http://dev-vm:8080/auditorium/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0"
proxy-1       | 2024/01/13 15:34:18 [error] 6#6: *1 connect() failed (111: Connection refused) while connecting to upstream, client: <IP_ADDRESS>, server: , request: "GET /favicon.ico HTTP/1.1", upstream: "http://<IP_ADDRESS>:8080/favicon.ico", host: "dev-vm:8080", referrer: "http://dev-vm:8080/auditorium/"

Looks to me like the backend server is not starting up correctly.

I've never seen this message about fatal: detected dubious ownership in repository at '/offen'. My guess is that the refresh tool fails for whatever reason on your setup.
To confirm that it's indeed the server that is not starting, can you docker compose ps and check if it's indeed the service that is failing?

Weird. Looks like all services are running:
NAME                 IMAGE               COMMAND                  SERVICE      CREATED       STATUS              PORTS
offen-auditorium-1   offen-auditorium    "docker-entrypoint.s…"   auditorium   2 hours ago   Up About a minute
offen-proxy-1        nginx:1.17-alpine   "nginx -g 'daemon of…"   proxy        2 hours ago   Up About a minute   <IP_ADDRESS>:8080->80/tcp, :::8080->80/tcp
offen-script-1       offen-script        "docker-entrypoint.s…"   script       2 hours ago   Up About a minute
offen-server-1       offen-server        "refresh run"            server       2 hours ago   Up About a minute
offen-test_site-1    nginx:1.17-alpine   "nginx -g 'daemon of…"   test_site    2 hours ago   Up About a minute   <IP_ADDRESS>:8081->80/tcp, :::8081->80/tcp
offen-vault-1        offen-vault         "docker-entrypoint.s…"   vault        2 hours ago   Up About a minute

So the relevant error seems to be coming from the go tool:
fatal: detected dubious ownership in repository at '/offen'
To add an exception for this directory, call:

        git config --global --add safe.directory /offen
error obtaining VCS status: exit status 128
        Use -buildvcs=false to disable VCS stamping.

which sounds like a permissions thing to me. Is the user who owns your clone the same user that you use to run the make commands?

Unfortunately I cannot repro this issue again, but you could of course try to add
RUN git config --global --add safe.directory /offen

to the Dockerfile.golang, rebuild and see if the issue persists.

I ran into the same issue after rebuilding my dev env from scratch and fixed this in #825

Did a fresh clone and it directly worked on my DEV machine. Thanks!
Maybe one additional note: I am not running the DEV env on my local machine but on my DEV machine. If I connect via browser to http://:8080/auditorium I receive a lot of JS errors (probably due to missing https). Once I put a reverse proxy with cert in front of it and use https instead, everything works fine. Maybe a note worth adding to the DEV documentaiton.

The client side application requires a "secure context", i.e. either localhost or something served via https.
This is kind of mentioned in the docs here https://docs.offen.dev/running-offen/installation-requirements/#serving-the-application-via-https, but maybe it'd also be worth putting this in the dedicated development docs, yes.


Publish Docker Image to DockerHub

Hello there,
It would be convenient to have the Docker image built and published to DockerHub. If you need a CI script to do it, I can create Drone script for it.

@zicklag Agreed. If you can provide the Drone script I'll integrate it with the CI pipeline.
Thanks for this, and for the PR!

No problem. Thanks for the time server. :)


feat: parse config labels

Add labels to manifest options when parsing config.
Resolves #1302

Thanks, you'll have to sign the CLA (which is linked from the failing check: https://github.com/googleapis/release-please/pull/1303/checks?check_run_id=5206383733) before we can accept a PR

Thanks, I just signed the CLA.

@chingor13 thanks for your patience. I corrected the formatting and added the missing unit test.


Improve folding expr converters

Based on @querolita work, available here.

Closing in favor of https://github.com/o1-labs/proof-systems/pull/2128. This branch has been merged in it.


Accurately document StringName comparisons

A few months ago someone kindly wrote documentation for the operators of both String and StringName (https://github.com/godotengine/godot/pull/68217). Unfortunately, StringName's comparison operators do not function the same as the ones for String do, comparing only the order of the pointers (at least, if my experimentation and understanding of the engine code are to be believed).
This PR simply corrects the documentation of the comparison operators for StringName.

Please squash the commits into one :)

This should close #76218

Thanks, and congrats on your first merged Godot PR!

Cherry-picked for 4.0.4.


Add animations to cards

https://www.youtube.com/watch?v=kT6yYSwK1oA < using react-spring, some of the animations like a unit bouncing from board to hand, or a unit fading away after dying could stand to be animated to better convey what is happening to the players.  investigate react-spring as a potential solution for this nice-to-have feature

closing as this is partially done, but not actionable enough as an issue


Changes to look up art regimen

@Marymary-dev, just curious what the diff between  lkp_RegimenMap.sql  and lkp_regimen.sql?

I saw this as a redundant look up

I saw this as a redundant look up

Ah okay, maybe we can get rid of the redundant one that is not used anywhere, just to clean it up ?


Refactoring to remove duplicate code.

Description

Removing Code Duplication by refactoring Admin Commands.

Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New feature (non-breaking change which adds functionality)
[ ] Bug fix (non-breaking change which fixes an issue)
[ ] Enhancement (improves an existing feature and functionality)
[x] Cleanup (Code refactoring and cleanup, that may add test cases)

How Has This Been Tested?

Added new Unit Tests.

@fmaximus master is unfrozen now, can you fix the conflict. We can merge this after running a final regression test. Thanks.

Sorry for the delay. I've resolved the conflicts.

@blueorangutan package

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos6 ✖centos7 ✔debian. JID-2790

@blueorangutan package

@DaanHoogland a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos6 ✔centos7 ✔debian. JID-2803

@blueorangutan test

@DaanHoogland a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

@blueorangutan package

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos6 ✔centos7 ✔debian. JID-2885

@blueorangutan test

@rhtyd a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-3691)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 26532 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr3152-t3691-kvm-centos7.zip
Smoke tests completed. 71 look OK, 0 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

@blueorangutan package

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✖centos6 ✖centos7 ✖debian. JID-2915

Hi @DaanHoogland - can you help review and stabilize this PR? Thanks.

I've rebased. I'm still monitoring this PR, and will continue to do so until it's merged.

Thanks @fmaximus
@blueorangutan package

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos6 ✔centos7 ✔debian. JID-27

@blueorangutan test

@rhtyd a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-26)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 35965 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr3152-t26-kvm-centos7.zip
Intermittent failure detected: /marvin/tests/smoke/test_privategw_acl.py
Intermittent failure detected: /marvin/tests/smoke/test_vpc_redundant.py
Smoke tests completed. 70 look OK, 1 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_04_rvpc_privategw_static_routes
Failure
325.63
test_privategw_acl.py

@blueorangutan test centos7 vmware-65u2

@rhtyd a Trillian-Jenkins test job (centos7 mgmt + vmware-65u2) has been kicked to run smoke tests

@blueorangutan test centos7 vmware-65u2

@rhtyd a Trillian-Jenkins test job (centos7 mgmt + vmware-65u2) has been kicked to run smoke tests

Trillian test result (tid-44)
Environment: vmware-65u2 (x2), Advanced Networking with Mgmt server 7
Total time taken: 34781 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr3152-t44-vmware-65u2.zip
Smoke tests completed. 71 look OK, 0 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

Trillian test result (tid-52)
Environment: vmware-65u2 (x2), Advanced Networking with Mgmt server 7
Total time taken: 41177 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr3152-t52-vmware-65u2.zip
Intermittent failure detected: /marvin/tests/smoke/test_vpc_redundant.py
Smoke tests completed. 70 look OK, 1 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_05_rvpc_multi_tiers
Failure
541.60
test_vpc_redundant.py

test_05_rvpc_multi_tiers
Error
577.76
test_vpc_redundant.py

Pinging for review @anuragaw @shwstppr @DaanHoogland and others.

@fmaximus can you please resolve conflicts

@blueorangutan package

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✖centos6 ✖centos7 ✖debian. JID-99

@blueorangutan package

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos6 ✔centos7 ✔debian. JID-100

@blueorangutan test

@rhtyd a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-121)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 28651 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr3152-t121-kvm-centos7.zip
Smoke tests completed. 71 look OK, 1 have error(s)
Only failed tests results shown below:

cc @shwstppr @borisstoyanov @anuragaw

@blueorangutan package

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos6 ✔centos7 ✔debian. JID-161

@blueorangutan test

@rhtyd a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

@blueorangutan package

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: ✔centos6 ✔centos7 ✔debian. JID-187

@blueorangutan test

@rhtyd a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-223)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 29550 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr3152-t223-kvm-centos7.zip
Intermittent failure detected: /marvin/tests/smoke/test_internal_lb.py
Intermittent failure detected: /marvin/tests/smoke/test_hostha_kvm.py
Smoke tests completed. 77 look OK, 0 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

@blueorangutan test centos7 xenserver-71

@rhtyd a Trillian-Jenkins test job (centos7 mgmt + xenserver-71) has been kicked to run smoke tests

@blueorangutan test centos7 vmware-65u2

@rhtyd a Trillian-Jenkins test job (centos7 mgmt + vmware-65u2) has been kicked to run smoke tests

Trillian test result (tid-226)
Environment: xenserver-71 (x2), Advanced Networking with Mgmt server 7
Total time taken: 31027 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr3152-t226-xenserver-71.zip
Intermittent failure detected: /marvin/tests/smoke/test_list_ids_parameter.py
Intermittent failure detected: /marvin/tests/smoke/test_scale_vm.py
Smoke tests completed. 75 look OK, 2 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_03_list_snapshots
Error
0.05
test_list_ids_parameter.py

test_01_scale_vm
Failure
16.58
test_scale_vm.py

Trillian test result (tid-227)
Environment: vmware-65u2 (x2), Advanced Networking with Mgmt server 7
Total time taken: 38914 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr3152-t227-vmware-65u2.zip
Intermittent failure detected: /marvin/tests/smoke/test_network.py
Intermittent failure detected: /marvin/tests/smoke/test_routers.py
Intermittent failure detected: /marvin/tests/smoke/test_snapshots.py
Intermittent failure detected: /marvin/tests/smoke/test_usage.py
Smoke tests completed. 73 look OK, 4 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_reboot_router
Error
333.39
test_network.py

test_08_start_router
Error
68.72
test_routers.py

test_09_reboot_router
Error
0.16
test_routers.py

test_02_list_snapshots_with_removed_data_store
Error
1.24
test_snapshots.py

test_01_volume_usage
Error
10.43
test_usage.py

Reopened it here: https://github.com/apache/cloudstack/pull/3538


matchers-json

Added matchers-json: hamcrest matchers for single statement unit testing with JSON objects.

@yegor256/z please, pay attention to this pull request

@g4s8/z this pull request is too small, just 2 lines changed (less than 10), there will be no formal code review, see §53 and §28; in the future, try to make sure your pull requests are not too small; @yegor256/z please review this and merge or reject

@g4s8 conflicts :( Please, fix and I'll merge

@yegor256 done

@g4s8 thanks!

Job gh:yegor256/elegantobjects.github.io#66 is not assigned, can't get performer

This job is not in scope


codegen output 2a4ece01d3804462a8b840a4c48e598c

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

2 of 2 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 71.429%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
6050

Relevant Lines:
8470

💛  - Coveralls


VSCode treeview - right click to open a webview - request

I have a VSCode Extension that displays a Treeview that goes to 4 or more  indent levels.
At each level the user can right click an item.  Currently I am limited to using the single line data entry that VSCODE provides and I want to change this to use a Webview panel to make it easier for the user to enter multiple fields for each right click option,
Each right click in the Treeview would invoke a different and unrelated Webview panel.
I am looking to use the Vue example that you provide such as the Hello World example and I have it hanging off one a right click without any problem  - just as a proof that it works.
My problem' is knowing the best way to design the folder structure to handle additional webviews that result from Treeview right clicks at different levels in teh tree that would invoke different webviews.
It is the webview-ui folder and its underlying folders/files that I am stuggling with determining how to design correctly to handle these additional webviews.
Do you have any example that might help with this?

Resolved.


fix: scale ratio on dpi change

Issue: https://github.com/rustdesk/rustdesk/issues/9481#issuecomment-2378509607

LGTM


Null dont get deleted when using array

I am using couch-rest model gem and below is my snippet code.
class S
include CouchRest::Model::Embeddable
property :s1, String
property :s2, String
end
class P < CouchRest::Model::Base
property :name, String
property :xx, [S]
end
p =P.new
p.xx << S.new(s1: "S1 EXISTS")
p.xx << S.new(s2: "S2 EXISTS")
p.save
Now my doubt is when i do p.save "null" get stored in the couchdb, which I dont want. If i don't use array, then null gets auto deleted , I want the same feature for the array as well.
Can you please suggest something?

Looks like the "null" handling on embedded models is not working as expected with arrays. I've not noticed this in the past. I'm planning to refactor some of the attribute handling, so I'll try and fix this then, unless I receive a pull request earlier ;-)


Adding a new community project to the example README

This PR is to propose a project for the community projects section in the example readme file. The project repo is here

Not sure why Travis broke (on Linux only), this is just a tiny addition to the examples README file, am I missing anything?

Hi @juniorxsound
Thank you for contributing! Sorry for the delay, and no worries about the CI - with the amount of different tasks performed at CI, sometimes it breaks unfortunately.
This is a very nice OpenCV example, hope you continue expanding it :)


Fix #6927 1:1 NAT validate address family

Ensure that all the manually-entered addresses come from the same
address family - i.e. they are all either IPv4 or IPv6 addresses.

Good thought, "if" statements condensed as suggested.

@phil-davis can you please rebase or resolve conflicts online? It's conflicting and cannot be merged

See #3293


Error: Tests documented added status is not included in the list

I get the above error when trying to save the status of the kernel project on the silver level page, the second part of the "New functionality testing" question.
Any ideas if I am doing something wrong here, or is this a bug in the app?

Wow, that should never happen. I will check it out.

I'm investigating.  The logs don't seem to provide much help, which is unfortunate.  Edits cause PATCH methods, and I see a sequence of them (which is exactly what I'd expect!!).  Log entries below for the record.  I'll try to manually reproduce.
  Can you tell me "exactly" what you did?

I'm documenting in this issue tracker what I learn, so that others can pipe up suggestions, and so you can see I do care :-).
The "is not included in the list" message is the standard error report from ActiveRecord (the Object-Relational Mapping component used by Rails) when it tries to validate a value to see if it's included (or excluded) from the list of allowed values.  I strongly suspect that's the part of the system that is generating the error report.
The validation code related to documented_added_status is this:
      if criterion.na_allowed?
        validates criterion.name.status, inclusion: { in: STATUS_CHOICE_NA }
      else
        validates criterion.name.status, inclusion: { in: STATUS_CHOICE }
      end

STATUS_CHOICE only allows 3 values, STATUS_CHOICE_NA adds "N/A" to the allowed list of values.
  STATUS_CHOICE = %w[?  Any hints on what you did would be greatly appreciated - we really want to fix this!!

I keep not getting bugs or any other problem.  Any additional details on what you did would be appreciated.  In addition, please try again - it should "just work".

Ok, I have no idea what happened, but I can not reproduce this at all anymore.
Sorry for the noise, it "just worked" this time around, so all is good.  thanks for the quick response.


fix fault tolerant enviroment missing

Purpose of the pull request
close: #14734
Brief change log

Verify this pull request

This pull request is code cleanup without any test coverage.
(or)
This pull request is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:

(or)
If your pull request contain incompatible change, you should also add it to docs/docs/en/guide/upgrede/incompatible.md

Codecov Report

Merging #14735 (5aefb2e) into dev (93b0283) will decrease coverage by 0.01%.
The diff coverage is 0.00%.

:exclamation: Current head 5aefb2e differs from pull request most recent head 22e090e. Consider uploading reports for the commit 22e090e to get more accurate results

@@             Coverage Diff              @@
##                dev   #14735      +/-   ##
============================================
- Coverage     38.69%   38.68%   -0.01%
+ Complexity     4625     4623       -2
============================================
  Files          1285     1285
  Lines         43971    43890      -81
  Branches       4858     4840      -18
============================================
- Hits          17014    16981      -33
+ Misses        25077    25028      -49
- Partials       1880     1881       +1

Files Changed
Coverage Δ

.../server/master/runner/WorkflowExecuteRunnable.java
10.17% <0.00%> (+0.04%)
:arrow_up:

... and 62 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


chore: add more tests

Codecov Report

Merging #2797 (69308cb) into master (a2df1bb) will increase coverage by 0.07%.
The diff coverage is 100.00%.

Impacted Files
Coverage Δ

core/collection/timingwheel.go
100.00% <100.00%> (ø)

core/stores/sqlx/tx.go
19.41% <0.00%> (-3.89%)
:arrow_down:

core/stores/sqlx/sqlconn.go
57.84% <0.00%> (+1.47%)
:arrow_up:

core/stores/cache/cachenode.go
90.41% <0.00%> (+9.58%)
:arrow_up:


Add option for HTTP/2 ingress and egress

Property is ha_proxy.enable_http2
Defaults to disabled
If enabled, HAProxy will use ALPN to negotiate HTTP protocol with both
clients and backends. It will prefer HTTP/2, but can negotiate down to
HTTP/1.1 for clients and backends that do not support HTTP/2.
Only works over SSL (since ALPN is an SSL extension)

This is part of the larger effort to add HTTP/2 routing support to Cloud Foundry. See cloudfoundry/routing-release#200 for more information.
cc @belinda-liu

@Gerg Thanks for the PR. We are setting up acceptance tests right now. We will add a test for HTTP/2 later so you're good 😊


Waker pipe sets CLOEXEC with F_SETFL when pipe2 is unavailable.

Version: 0.6.19
sys/unix/mod.rs
    // Use pipe2 for atomically setting O_CLOEXEC if we can, but otherwise
    // just fall back to using `pipe`.
    dlsym!(fn pipe2(*mut c_int, c_int) -> c_int);

However then mio sets flags using F_SETFL, which result in CLOEXEC missed.
epoll_create1(0)                        = 3
fcntl(3, F_GETFD)                       = 0
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
pipe([4, 5])                            = 0
fcntl(4, F_SETFL, O_RDONLY|O_NONBLOCK|O_CLOEXEC) = 0
fcntl(5, F_SETFL, O_RDONLY|O_NONBLOCK|O_CLOEXEC) = 0
...
fcntl(3, F_GETFD)                       = 0x1 (flags FD_CLOEXEC)
fcntl(4, F_GETFD)                       = 0
fcntl(5, F_GETFD)                       = 0

epoll fd has correct flag, pipe fds will be inherited after exec
(seems to be not an issue in 0.7 due to use of eventfd)

Can you provide some code that show how you got these results? Because I can't find the code that resets the flags in Mio.

branch: v0.6.x
path: sys/unix/mod.rs
line: 47
pub fn pipe() -> ::io::Result<(Io, Io)> {
    // Use pipe2 for atomically setting O_CLOEXEC if we can, but otherwise
    // just fall back to using `pipe`.
    dlsym!(fn pipe2(*mut c_int, c_int) -> c_int);

    let mut pipes = [0; 2];
    let flags = libc::O_NONBLOCK | libc::O_CLOEXEC;
    unsafe {
        match pipe2.get() {
            Some(pipe2_fn) => {
                cvt(pipe2_fn(pipes.as_mut_ptr(), flags))?;
            }
            None => {
                cvt(libc::pipe(pipes.as_mut_ptr()))?;
                libc::fcntl(pipes[0], libc::F_SETFL, flags);
                libc::fcntl(pipes[1], libc::F_SETFL, flags);
            }
        }
    }

    unsafe {
        Ok((Io::from_raw_fd(pipes[0]), Io::from_raw_fd(pipes[1])))
    }
}

I got that, but it sets both the O_CLOEXEC flag in both cases, so I don't see the problem.

F_SETFL does not accept O_CLOEXEC on linux
https://github.com/tokio-rs/mio/pull/596

Ah now I understand. Bit silly that Linux doesn't complain about anything and mixes F_ constants with O_, but fine. I'll send a pr.

This should have been closed by #1095.


Prototype Pollution

Hello all.
I was looking into using chart.js, but due to some company policy, we need to research the stability and security of new third party code we introduce.
There seems to be a high vulnerability issue regarding Prototype Pollution (https://snyk.io/vuln/SNYK-JS-CHARTJS-1018716) in the current version.
Is this the case? Is it looking to be fixed in the newer version? When will 3.0 be available?
Thank you! Keep up the hard work!

Seems to be fixed in #7920, snyk also says its vulnerable in versions prior to 2.9.4 (latest stable)

Great! Thanks for the fast reply!


Where are the negatively paired patches sampled from x_aug?

Thank you for releasing this wonderful code. I am confused with the implementation of the contrastive learning part. In the paper, it mentioned the negatively paired patches whether come from an image y or a different location in the image x_aug. In the code
    if self.opt.augment:
        norm_aug_A, norm_aug_B = self.normalization((self.aug_A + 1) * 0.5), self.normalization((self.aug_B + 1) * 0.5)
        norm_real_A = torch.cat([norm_real_A, norm_real_A], dim=0)
        norm_fake_B = torch.cat([norm_fake_B, norm_aug_A], dim=0)
        norm_real_B = torch.cat([norm_real_B, norm_aug_B], dim=0)
    self.loss_spatial = self.Spatial_Loss(self.netPre, norm_real_A, norm_fake_B, norm_real_B)

    feats_src = net(src, self.attn_layers, encode_only=True)
    feats_tgt = net(tgt, self.attn_layers, encode_only=True)
    if other is not None:
        feats_oth = net(torch.flip(other, [2, 3]), self.attn_layers, encode_only=True)
    else:
        feats_oth = [None for _ in range(n_layers)]

    total_loss = 0.0
    for i, (feat_src, feat_tgt, feat_oth) in enumerate(zip(feats_src, feats_tgt, feats_oth)):
        loss = self.criterionSpatial.loss(feat_src, feat_tgt, feat_oth, i)
        total_loss += loss.mean()

    sam_neg1 = (sim_src.bmm(sim_other.permute(0, 2, 1))).view(-1, Num) / self.T
    sam_neg2 = (sim_tgt.bmm(sim_other.permute(0, 2, 1))).view(-1, Num) / self.T
    sam_self = (sim_src.bmm(sim_tgt.permute(0, 2, 1))).view(-1, Num) / self.T
    sam_self = torch.cat([sam_self, sam_neg1, sam_neg2], dim=-1)
    loss = self.cross_entropy_loss(sam_self, torch.arange(0, sam_self.size(0), dtype=torch.long, device=sim_src.device) % (Num))

It seems like sam_neg1 is the from x and y/y_aug. But sam_neg2 is from y^hat and y or x_aug and y_aug. I didn't see the negatively paired patches from x and x_aug with a different patch center. Is my understanding correct?

Hi @DeepTag, the sam_self between sim_src and sim_tgt is an NN matrix, where only diagonal items belong to the positive samples, and the other items are  negative samples from x_aug, and \hat{y}. The sam_neg1 and sam_neg2 are used for obtaining more negative samples (N3N) due to the previous contrastive learning suggested that more negative samples can encourage the converging. Therefore, for every positive paired patches, we sampled another 3*N-1 negative pairs.

Thanks for clarifying it. Another question is why we have flipping 'other':
if other is not None:
feats_oth = net(torch.flip(other, [2, 3]), self.attn_layers, encode_only=True)
else:
feats_oth = [None for _ in range(n_layers)]
Is this flipping for avoiding slection of the very similar patches in \hat{y} and y on a same patch center, therefore to ensure these patches are axactly negatively paired?

Hi @DeepTag, yes, in contrastive learning, the negative pairs are automatically selected by the sampling. We can not always ensure those sampled structures are very different. Therefore, we do the 180° rotation to encourage the negative samples are really different with the queried patch.

That make sense. One further question here. In both the fixed and learned self-similarity methods, we use some layers' features of VGG16 in the code. How to decide which layer to be used?

Hi @DeepTag, please refer to our website, in which we provide the poster and video for this project, and we show the self-attention map in different layers. We select the multilevel, multiresolution attention map for the structure representation.

Yes, in your work you used multi-layers' attention maps (you used features from layers relu3_1 and relu4_1). I want to know, how did you determine to select the layers? Why not use other layers' features?


prometheus_local_storage_memory_series leak over time on an empty cluster

On a basic cluster setup  3 nodes .
K8s 1.5
Prometheus 1.7
No pods except for  K8s system pods and monitoring pods are running.
prometheus_local_storage_memory_series is growing with time , exploding when it reaches max amount of RAM available .
Number of series is growing without any reason for that.
Probably some ID that changes frequently is being part of a label , but cannot identify where it comes from .
Started a cluster with 40K series ..ended up with 150K after 12 hours  before Prometheus died .

I have tried to switch to latest prometheus-operator 0.10.1
And to Latest prometheus v.1.7.1 even tried prometheus v.2.0.0-alpha2
Same result . Prometheus Pod Memory is growing till it scraping stops forever .
Command-Line Flags
alertmanager.notification-queue-capacity	10000
alertmanager.timeout	10s
config.file	/etc/prometheus/config/prometheus.yaml
log.format	"logger:stderr"
log.level	"info"
query.max-concurrency	20
query.staleness-delta	5m0s
query.timeout	2m0s
storage.local.engine	persisted
storage.local.path	/var/prometheus/data
storage.tsdb.max-block-duration	74h24m0s
storage.tsdb.min-block-duration	2h0m0s
storage.tsdb.no-lockfile	true
storage.tsdb.retention	744h0m0s
version	false
web.console.libraries	console_libraries
web.console.templates	consoles
web.enable-remote-shutdown	false
web.external-url	http://prometheus-k8s-1:9090/
web.listen-address	:9090
web.max-connections	512
web.read-timeout	30s
web.route-prefix	/
web.telemetry-path	/metrics

How long did you leave your Prometheus instance running to observe this? 31 days retention is quite a lot of time as well.

Well this happened after 20 hours
On Jun 20, 2017 13:13, "Frederic Branczyk"<EMAIL_ADDRESS>wrote:

How long did you leave your Prometheus instance running to observe this?
31 days retention is quite a lot of time as well.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/coreos/prometheus-operator/issues/426#issuecomment-309708761,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AYBMowpNYo05bOhWjDGuJTU4LG5y_3TLks5sF5sogaJpZM4N86nG
.

What is the "max amount of RAM" that you mentioned? Depending on the amount of samples/chunks in memory and the available RAM, this might be fine.

Max amount of RAM is a capping by K8s , I have started with 2G gradually increasing to 32G and even 64G , it just a matter of time till Prometheus  reaches the limit and stops scrapping .

I have conducted a test on io1 1024GB 10K IOPS  EBS , on EBS optimized  instance .
The test included 1 node K8s cluster  + prometheus operator .
No application rolled out except for Kube system and Prometheus .
After reaching container memory cap  , scrapping job stop forever .
No changes to original latest dev branch accept for adding PVs
Tried to add more RAM to pod but , it just prolongs the end .
Before scrapping job fails I've noticed a spike in dirty series .

Downgrading prometheus version from 1.7.x 1.6.x to 1.5.2 seems to solve the problem .
Probably due to the memory chunks calculation in prometheus-operators that's different for 1.5 versions ( you have specific flow control for that ) .

I'm still curious though how this still occurs in 2.0 as you mentioned, as 2.0 doesn't have anything like this anymore.

@brancz  Its sounds weird , but I install a new K8s cluster , with everything default . And rollout default prometheus-operator on AWS with i3.4XL instances and IO1 10K IOPS volumes
And the only think that run on a cluster is prometheus stack . And nothing but prometheus 1.5.2 works stable .
All the rest stops scrapping after few hours when it reaches heap size .
I have tried running with 2-4-6-32 and 64G RAM .
So it's command line params that are generated by operator that are not optimal .

That does sound very odd, as we're not experiencing anything like that upstream as far as I can tell (I'm also an upstream Prometheus maintainer/contributor). Can you post your Prometheus resource yaml and the generated statefulset manifest?

Hi @brancz, I've been working with @anton-opsguru on this, these are the configs
Prometheus Resource:
apiVersion: monitoring.coreos.com/v1alpha1
kind: Prometheus
metadata:
  name: k8s
  labels:
    prometheus: k8s
spec:
  replicas: 1
  version: v1.6.1
  serviceAccountName: prometheus-k8s
  serviceMonitorSelector:
    matchExpression:
    - {key: k8s-apps, operator: Exists}
  ruleSelector:
    matchLabels:
      role: prometheus-rulefiles
      prometheus: k8s
  resources:
    requests:
      # 2Gi is default, but won't schedule if you don't have a node with >2Gi
      # memory. Modify based on your target and time-series count for
      # production use. This value is mainly meant for demonstration/testing
      # purposes.
      memory: 2Gi
  alerting:
    alertmanagers:
    - namespace: monitoring
      name: alertmanager-main
      port: web
  storage:
    selector:
      matchLabels:
        app: "prometheus-k8s"
    resources:
      requests:
        storage: 10Gi

Generated StatefulSet:
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"monitoring.coreos.com/v1alpha1","kind":"Prometheus","metadata":{"annotations":{},"labels":{"prometheus":"k8s"},"name":"k8s","namespace":"monitoring"},"spec":{"alerting":{"alertmanagers":[{"name":"alertmanager-main","namespace":"monitoring","port":"web"}]},"replicas":1,"resources":{"requests":{"memory":"2Gi"}},"ruleSelector":{"matchLabels":{"prometheus":"k8s","role":"prometheus-rulefiles"}},"serviceAccountName":"prometheus-k8s","serviceMonitorSelector":{"matchExpression":[{"key":"k8s-apps","operator":"Exists"}]},"storage":{"resources":{"requests":{"storage":"10Gi"}},"selector":{"matchLabels":{"app":"prometheus-k8s"}}},"version":"v1.6.1"}}
  creationTimestamp: 2017-07-18T02:30:57Z
  generation: 1
  labels:
    prometheus: k8s
  name: prometheus-k8s
  namespace: monitoring
  resourceVersion: "34585186"
  selfLink: /apis/apps/v1beta1/namespaces/monitoring/statefulsets/prometheus-k8s
  uid: 217723b5-6b61-11e7-a555-06f12dbbe7a3
spec:
  replicas: 1
  selector:
    matchLabels:
      app: prometheus
      prometheus: k8s
  serviceName: prometheus-operated
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: prometheus
        prometheus: k8s
    spec:
      containers:
      - args:
        - -storage.local.retention=24h
        - -storage.local.num-fingerprint-mutexes=4096
        - -storage.local.path=/var/prometheus/data
        - -storage.local.chunk-encoding-version=2
        - -config.file=/etc/prometheus/config/prometheus.yaml
        - -storage.local.target-heap-size=1431655764
        image: quay.io/prometheus/prometheus:v1.6.1
        imagePullPolicy: IfNotPresent
        livenessProbe:
          failureThreshold: 10
          httpGet:
            path: /status
            port: web
            scheme: HTTP
          initialDelaySeconds: 300
          periodSeconds: 5
          successThreshold: 1
          timeoutSeconds: 3
        name: prometheus
        ports:
        - containerPort: 9090
          name: web
          protocol: TCP
        readinessProbe:
          failureThreshold: 6
          httpGet:
            path: /status
            port: web
            scheme: HTTP
          periodSeconds: 5
          successThreshold: 1
          timeoutSeconds: 3
        resources:
          requests:
            memory: 2Gi
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /etc/prometheus/config
          name: config
          readOnly: true
        - mountPath: /etc/prometheus/rules
          name: rules
          readOnly: true
        - mountPath: /var/prometheus/data
          name: prometheus-k8s-db
          subPath: prometheus-db
      - args:
        - -reload-url=http://localhost:9090/-/reload
        - -config-volume-dir=/etc/prometheus/config
        - -rule-volume-dir=/etc/prometheus/rules
        image: quay.io/coreos/prometheus-config-reloader:v0.0.1
        imagePullPolicy: IfNotPresent
        name: prometheus-config-reloader
        resources:
          limits:
            cpu: 5m
            memory: 10Mi
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /etc/prometheus/config
          name: config
          readOnly: true
        - mountPath: /etc/prometheus/rules
          name: rules
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      serviceAccount: prometheus-k8s
      serviceAccountName: prometheus-k8s
      terminationGracePeriodSeconds: 600
      volumes:
      - name: config
        secret:
          defaultMode: 420
          secretName: prometheus-k8s
      - emptyDir: {}
        name: rules
  volumeClaimTemplates:
  - metadata:
      creationTimestamp: null
      name: prometheus-k8s-db
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 10Gi
      selector:
        matchLabels:
          app: prometheus-k8s
    status:
      phase: Pending
status:
  observedGeneration: 1
  replicas: 1

Could you try the latest Prometheus v2.0.0-beta.0 and set a memory limit? That should make the linux kernel evict memory when necessary.

I'm happy to take suggestions on how to improve the automatic tuning of Prometheus storage parameters based on the memory request as well.

Prometheus 2.0 is now the standard everywhere in this repo, and should solve your problems. Feel free to report new issues or re-open this one if you continue to have problems.


Yeelight becomes unavailable in HA

Home Assistant release with the issue:

0.77.1
Last working Home Assistant release (if known):
n/a
Operating environment (Hass.io/Docker/Windows/etc.):

Virtualenv on Raspberry Pi
Component/platform:

https://www.home-assistant.io/components/light.yeelight/
Description of problem:
Periodically my Yeelight bulb throws this error in the log and becomes unavailable (sometimes for a few minutes, sometimes for much longer):
2018-09-08 14:27:29 ERROR (Thread-21) [homeassistant.components.light.yeelight] Unable to update bulb status: Bulb closed the connection.

During that period of "unavailability" Yeelight itself works just fine with my MiHome application (including an automation that I still have there).
Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):
light:
  - platform: yeelight
    devices:
      <IP_ADDRESS>:
        name: yeelight

Traceback (if applicable):
n/a
Additional information:
This issue has been reported many times on the forum (see https://community.home-assistant.io/t/yeelight-unable-to-update-bulb-status-bulb-closed-the-connection/51147 and https://community.home-assistant.io/t/yeelight-bulb-errors/51517 ), but I can't find a GitHub issue.
Thanks!

When that happens, you could try to see if yeecli still works (https://gitlab.com/stavros/yeecli/) to rule out whether the problem is in the platform or in the bulb connectivity.

same here, is there a solution to this problem?

Can the other persons in this issue check if by using the latest HASS version + the fix suggested by @sblantipodi fixes their issue? Hopefully the problem is now gone and we can close this one. Thanks!

@altersis I didn't try it, but according to documentation (https://www.home-assistant.io/components/light.yeelight/) use_music_mode is False by default, and I never explicitly set it to True.
I think I experienced this issue once per month, not more.  So, it's not easy to say whether it's fixed or not.  Well, maybe I didn't see it for a long time already.
Personally, I'm ok to close this issue now.  I can open a new one, if needed.
Thanks!


How to set the size of single ORC file? Why each of my ORC file is only 1kb?

I use JsonORCReaderWriter with Snappy compression.
I set:
secor.max.file.size.bytes=100000
secor.max.file.age.seconds=60
But it gave me tons of 1kb ORC file. Is it possible to control the size of single ORC file?
Also how to configure some orc file relevant parameters like "orc.compress.size", "orc.stripe.size", etc? I didn't see those in commons.

Not familiar with ORC.  But I think for the small 1KB file, you can set
secor.max.file.age.seconds to be bigger value, otherwise you will get
smaller file becomes 1 minute is up.
On Wed, Dec 13, 2017 at 5:59 PM, Grace<EMAIL_ADDRESS>wrote:

I use JsonORCReaderWriter with Snappy compression.
I set:
secor.max.file.size.bytes=100000
secor.max.file.age.seconds=60
But it gave me tons of 1kb ORC file. Is it possible to control the size of
single ORC file?
Also how to configure some orc file relevant parameter like
"orc.compress.size", "orc.stripe.size", etc? I didn't see those in commons.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/pinterest/secor/issues/384, or mute the thread
https://github.com/notifications/unsubscribe-auth/AHCX_7Iyhxwzig7UCw8SwNGk6iwqRaU_ks5tAID-gaJpZM4RBcGv
.

If you use current orc feature in secor it will always give you 0 file size
whenever you will call  writer.getRawDataSize() until you closed the writer.
So in current secor if you are using orc, you can only rely on
secor.max.file.age.seconds  properties.
On Thu, Dec 14, 2017 at 12:21 PM, Henry Haiying Cai <
<EMAIL_ADDRESS>wrote:

Not familiar with ORC. But I think for the small 1KB file, you can set
secor.max.file.age.seconds to be bigger value, otherwise you will get
smaller file becomes 1 minute is up.
On Wed, Dec 13, 2017 at 5:59 PM, Grace<EMAIL_ADDRESS>wrote:

I use JsonORCReaderWriter with Snappy compression.
I set:
secor.max.file.size.bytes=100000
secor.max.file.age.seconds=60
But it gave me tons of 1kb ORC file. Is it possible to control the size
of
single ORC file?
Also how to configure some orc file relevant parameter like
"orc.compress.size", "orc.stripe.size", etc? I didn't see those in
commons.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/pinterest/secor/issues/384, or mute the thread
<https://github.com/notifications/unsubscribe-auth/AHCX_
7Iyhxwzig7UCw8SwNGk6iwqRaU_ks5tAID-gaJpZM4RBcGv>

.

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/pinterest/secor/issues/384#issuecomment-351624229,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHcVM8wevPGqnP5n9oxt0R4eUzATd8Byks5tAMVhgaJpZM4RBcGv
.

--
Regards,
Lovenish Goyal
M: +91<PHONE_NUMBER>* | Skype:  lovenishgoyal*

Thanks for the help. Things become fine when data volume come in within time interval ---max.file.age.seconds is large. We should set this parameter according to the volume of traffic.


Slot child boolean props not boolean if not passing boolean to component.

Version
3.2.31
Reproduction link
sfc.vuejs.org/
Steps to reproduce
What is expected?
expected both to be booleans
What is actually happening?
 components props.disabled is a string

Ran in to this bug when fixing this:
https://github.com/cdmoro/bootstrap-vue-3/pull/240

This is normal behavior. A vnode's props property contains the raw props. When a component instance is created for the vnode, the raw props are processed, and part of that if to cast boolean props correctly.
We can't reliably know during compilation that the vnode will represent a component (vs. a normal element), and thus fall back to the HTML behavior: custom boolean attributes are added tp an element by using an empty string as the value:
el.setAttribute('my-attribute', '')

then, when we later at runtime know that the vnode represents a component and the prop is a boolean, we cast it before exposing it to the component as $props etc.

Thai is expected and has been discussed already in other issues


fatal: repository 'https://github.com/fians/Ink.git/' not found

When running bower install on the demo app it stop with this. Apparently fians does not have a repo by the name ink anymore or it's private now.

Hi @astroanu , I just now did a install for a fresh ionic app and it worked perfectly. Following is my trace
bower install ionic-material
bower ionic#1.0.0-rc.4      not-cached git://github.com/driftyco/ionic-bower.git#1.0.0-rc.4
bower ionic#1.0.0-rc.4         resolve git://github.com/driftyco/ionic-bower.git#1.0.0-rc.4
bower ionic-material#*          cached git://github.com/zachsoft/Ionic-Material.git#0.0.1
bower ionic-material#*        validate 0.0.1 against git://github.com/zachsoft/Ionic-Material.git#*
bower ionic#1.0.0-rc.4        download https://github.com/driftyco/ionic-bower/archive/v1.0.0-rc.4.tar.gz
bower ionic#1.0.0-rc.4        progress received 1.2MB of 1.2MB downloaded, 98%
bower ionic#1.0.0-rc.4         extract archive.tar.gz
bower ionic#1.0.0-rc.4    invalid-meta ionic is missing "ignore" entry in bower.json
bower ionic#1.0.0-rc.4        resolved git://github.com/driftyco/ionic-bower.git#1.0.0-rc.4
bower angular-sanitize#1.3.13       not-cached git://github.com/angular/bower-angular-sanitize.git#1.3.13
bower angular-sanitize#1.3.13          resolve git://github.com/angular/bower-angular-sanitize.git#1.3.13
bower angular#1.3.13                not-cached git://github.com/angular/bower-angular.git#1.3.13
bower angular#1.3.13                   resolve git://github.com/angular/bower-angular.git#1.3.13
bower angular-ui-router#0.2.13          cached git://github.com/angular-ui/ui-router.git#0.2.13
bower angular-ui-router#0.2.13        validate 0.2.13 against git://github.com/angular-ui/ui-router.git#0.2.13
bower angular-animate#1.3.13        not-cached git://github.com/angular/bower-angular-animate.git#1.3.13
bower angular-animate#1.3.13           resolve git://github.com/angular/bower-angular-animate.git#1.3.13
bower angular-sanitize#1.3.13         download https://github.com/angular/bower-angular-sanitize/archive/v1.3.13.tar.gz
bower angular#1.3.13                  download https://github.com/angular/bower-angular/archive/v1.3.13.tar.gz
bower angular-animate#1.3.13          download https://github.com/angular/bower-angular-animate/archive/v1.3.13.tar.gz
bower angular-sanitize#1.3.13          extract archive.tar.gz
bower angular-sanitize#1.3.13         resolved git://github.com/angular/bower-angular-sanitize.git#1.3.13
bower angular-animate#1.3.13           extract archive.tar.gz
bower angular-animate#1.3.13          resolved git://github.com/angular/bower-angular-animate.git#1.3.13
bower angular#1.3.13                   extract archive.tar.gz
bower angular#1.3.13                  resolved git://github.com/angular/bower-angular.git#1.3.13
bower ionic-material#~0.0.1            install ionic-material#0.0.1
bower ionic#1.0.0-rc.4                 install ionic#1.0.0-rc.4
bower angular-ui-router#0.2.13         install angular-ui-router#0.2.13
bower angular-sanitize#1.3.13          install angular-sanitize#1.3.13
bower angular-animate#1.3.13           install angular-animate#1.3.13
bower angular#1.3.13                   install angular#1.3.13

ionic-material#0.0.1 www/lib/ionic-material
└── ionic#1.0.0-rc.4

ionic#1.0.0-rc.4 www/lib/ionic
├── angular#1.3.13
├── angular-animate#1.3.13
├── angular-sanitize#1.3.13
└── angular-ui-router#0.2.13

angular-ui-router#0.2.13 www/lib/angular-ui-router
└── angular#1.3.13

angular-sanitize#1.3.13 www/lib/angular-sanitize
└── angular#1.3.13

angular-animate#1.3.13 www/lib/angular-animate
└── angular#1.3.13

are you sure its a library used by Ionic-Material ?

I had the same problem. I then deleted www/lib/ionic-material and ran 'bower install ionic-material' again. This time it worked.

Yep the problem is still there, here's my trace.
$ bower install
bower not-cached    https://github.com/fians/Ink.git#~0.5.5
bower resolve       https://github.com/fians/Ink.git#~0.5.5
bower cached        git://github.com/driftyco/ionic-bower.git#1.0.0-rc.2
bower validate      1.0.0-rc.2 against git://github.com/driftyco/ionic-bower.git
#1.0.0-rc.2
bower cached        git://github.com/zachsoft/Ionic-Material.git#0.0.1
bower validate      0.0.1 against git://github.com/zachsoft/Ionic-Material.git#0
.0.1
bower cached        git://github.com/driftyco/ionic.git#0.9.27
bower validate      0.9.27 against git://github.com/driftyco/ionic.git#~0.9.27
bower cached        git://github.com/angular/bower-angular.git#1.2.12
bower validate      1.2.12 against git://github.com/angular/bower-angular.git#1.
2.12
bower cached        git://github.com/angular/bower-angular-animate.git#1.2.12
bower validate      1.2.12 against git://github.com/angular/bower-angular-animat
e.git#1.2.12
bower cached        git://github.com/angular/bower-angular-sanitize.git#1.2.12
bower validate      1.2.12 against git://github.com/angular/bower-angular-saniti
ze.git#1.2.12
bower cached        git://github.com/angular-ui/ui-router.git#0.2.7
bower validate      0.2.7 against git://github.com/angular-ui/ui-router.git#0.2.
7
Username for 'https://github.com': bower cached        git://github.com/angular/
bower-angular.git#1.3.13
bower validate      1.3.13 against git://github.com/angular/bower-angular.git#1.
3.13
astroanu
Password for<EMAIL_ADDRESS>bower ECMDERR       Failed to execute "git ls-remote --tags --heads https://gith
ub.com/fians/Ink.git", exit code of #128 remote: Repository not found. fatal: re
pository 'https://github.com/fians/Ink.git/' not found

Additional error details:
remote: Repository not found.
fatal: repository 'https://github.com/fians/Ink.git/' not found

I have no idea why bower is asking me my github credentials. @jyskit your solution works. After running bower install ionic-material the bower.json updated to "ionic-material": "~0.0.1" but the bower.json on demo states "ionic-material": "0.0.1". There's been a patch after 0.0.1?

I am having this issue as well. Just did a fresh download and went to the demo folder and typed bower install ionic-material only to be met with that error above.
bower ECMDERR       Failed to execute "git ls-remote --tags --heads https://github.com/fians/Ink.git", exit code of #128 remote: Repository not found. fatal: repository 'https://github.com/fians/Ink.git/' not found

The demo has an outdated version of ionic-material. The offending repo (https://github.com/fians/Ink.git) is listed as dependency in "lib/ionic-material/.bower.json". For now, just replace that line with this one:
"waves": "0.6"

Then run "bower install" again.


workspace_status.sh: Simplify git/image tagging logic

What type of PR is this?
/kind cleanup
What this PR does / why we need it:
Follow-up to my review comments in https://github.com/kubernetes-sigs/k8s-container-image-promoter/pull/301#pullrequestreview-678116216.
workspace_status.sh: Simplify git/image tagging logic

Match commit/date logic from k/test-infra@6b0cbad
Ensure image tag is present in stable-status.txt
Alpha-sort variables
Add tags for GCB runs
Add GCB images check

Signed-off-by: Stephen Augustus<EMAIL_ADDRESS>/hold for additional cleanups in cloudbuild.yaml
Which issue(s) this PR fixes:

Special notes for your reviewer:
Does this PR introduce a user-facing change?

NONE

From local GCB invocation: https://console.cloud.google.com/cloud-build/builds/785ffc68-9c69-4af0-82e8-95408399535d?project=k8s-staging-artifact-promoter
INFO: Analyzed target //:push-cip (2 packages loaded, 24 targets configured).
INFO: Found 1 target...
[0 / 3] [Prepa] BazelWorkspaceStatusAction stable-status.txt
[31 / 37] GoCompilePkg external/com_github_google_go_cmp/cmp/cmp.a [for host]; 0s linux-sandbox ... (2 actions, 1 running)
Target //:push-cip up-to-date:
  bazel-bin/push-cip
INFO: Elapsed time: 2.858s, Critical Path: 2.21s
INFO: 29 processes: 29 linux-sandbox.
INFO: Build completed successfully, 37 total actions
INFO: Running command line: bazel-bin/push-cip
INFO: Build completed successfully, 37 total actions
2021/06/20 00:04:27 Destination {STABLE_IMG_REGISTRY}/{STABLE_IMG_REPOSITORY}/{STABLE_IMG_NAME}-auditor:latest was resolved to gcr.io/k8s-staging-artifact-promoter/cip-auditor:latest after stamping.
2021/06/20 00:04:27 Destination {STABLE_IMG_REGISTRY}/{STABLE_IMG_REPOSITORY}/{STABLE_IMG_NAME}-auditor:{STABLE_IMG_TAG} was resolved to gcr.io/k8s-staging-artifact-promoter/cip-auditor:v20210619-v1.337.0-15-g89f2c0b after stamping.
2021/06/20 00:04:27 Destination {STABLE_IMG_REGISTRY}/{STABLE_IMG_REPOSITORY}/{STABLE_IMG_NAME}:{STABLE_IMG_TAG} was resolved to gcr.io/k8s-staging-artifact-promoter/cip:v20210619-v1.337.0-15-g89f2c0b after stamping.
2021/06/20 00:04:27 Destination {STABLE_IMG_REGISTRY}/{STABLE_IMG_REPOSITORY}/{STABLE_IMG_NAME}:latest was resolved to gcr.io/k8s-staging-artifact-promoter/cip:latest after stamping.
2021/06/20 00:04:28 Successfully pushed Docker image to gcr.io/k8s-staging-artifact-promoter/cip-auditor:latest
2021/06/20 00:04:28 Successfully pushed Docker image to gcr.io/k8s-staging-artifact-promoter/cip-auditor:v20210619-v1.337.0-15-g89f2c0b
2021/06/20 00:04:28 Successfully pushed Docker image to gcr.io/k8s-staging-artifact-promoter/cip:latest
2021/06/20 00:04:29 Successfully pushed Docker image to gcr.io/k8s-staging-artifact-promoter/cip:v20210619-v1.337.0-15-g89f2c0b
PUSH
DONE

Accompanying PR in k/test-infra: https://github.com/kubernetes/test-infra/pull/22619

/test all

/test ls

/test pull-cip-image-cip

@justaugustus: The following test failed, say /retest to rerun all failed tests:
Test name 	Commit 	Details 	Rerun command
pull-cip-image-cip 	198cac7 link /test pull-cip-image-cip
Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR.

Alright. Now we have some signal for the image push pre-submit to fix in a follow-up.
/hold cancel

/skip pull-cip-image-cip

/override pull-cip-image-cip
(This shouldn't have blocked the merge)


MS Graph subscription for messages in Teams channel not reliable

Steps to reproduce
We’re using a MS Graph subscription to monitor incoming messages in a teams channel. Those subscriptions work well usually, but we got a couple of reports from customers that some messages were missing.
We thus went in to investigate and created a test channel where we have a subscription running and post a message every 3 minutes to the channel. We are usually getting a notification about the posted message, but once or twice per day it is missing. This means, that we're simply seem to not receiving a notification from MS Graph for this one message. The next message posted 3 minutes later is then just fine again.
We have checked everything on our side, that we could think of that could cause this to happen:

We properly react to lifecycle events for the subscription
The only lifecycle event we got during the last 36 hours was “reauthorizationRequired”. No "missed” or "subscriptionRemoved” events.
We checked that we handle all events received from MS Graph within the time limits documented (3 seconds), which we now always do (we usually return a 200 or 202 status within a few milliseconds)

Is this a known bug, or are there additional things we need to do to reliably receive notifications for the subscription?
Expected behavior
We get an event from MS Graph at our subscription endpoint for each message posted in the Teams channel.
Actual behavior
Once or twice per day, we do not get notified about a new message posted in MS Teams. We do not get a 'missed' lifecycle event neither, so we have no way of knowing that we missed a message except for polling.
Error details
No response

@laknoll -Thanks for reporting your issue.
We will check this at our end and will get back to you.

@laknoll - Can you share details for the message which was missed? MessageId, TeamId, ChannelId, Timestamp (of posting), SubscriptionId

Sorry for coming back a bit late on this one. I’ve been on vacation.
Here are a list of events we didn’t receive just very recently:
Tenant: 93d5c58d-0714-4030-88b6-7935da85ab71
Channel<EMAIL_ADDRESS>Message<PHONE_NUMBER>510: Monitor 11:16:05
Message<PHONE_NUMBER>383: Monitor 11:13:05
Message<PHONE_NUMBER>649: Monitor 11:10:05
Message<PHONE_NUMBER>277: Monitor 11:07:05
Message<PHONE_NUMBER>055: Monitor 11:04:05
Message<PHONE_NUMBER>130: Monitor 11:01:05
Message<PHONE_NUMBER>949: Monitor 10:58:05
Message<PHONE_NUMBER>026: Monitor 10:55:05
Message<PHONE_NUMBER>010: Monitor 10:52:05
Message<PHONE_NUMBER>690: Monitor 10:49:05
Message<PHONE_NUMBER>054: Monitor 10:46:05
The ID of the subscription is 3b833b40-1844-453f-898c-c0d9d50205b9
Can you please re-open the issue? We are still experiencing it, with sporadic failures earlier, but almost complete loss of all events in the last 24 hours.

Hello @laknoll -Thank you for providing the details. We are currently checking with the engineering team and will be sure to update you as soon as we have any information.

These messages from early October, it is past the 30 days time period. Do you have new messages? Otherwise were these messages edited recently?


iOS crash opening camera

iOS: This crash is gone without starting Atlantis.

Thanks, I will check out this week 👍

I'm also experiencing app crashes after Proxyman update to 3.0.0

We do have the crash in iOS 15 or above.

Working with @wayne800 we discovered the crash breakpoint is inside a Proxyman method.

Thanks @zhejia0428 @wayne800. I'm working on it now 👍

@zhejia0428 @wayne800
I tested with iOS Simulator 15.2 and My iPad 15.2, but I could not reproduce it. The code is successfully executed without crashing.

Code
    @IBAction func uploadBtnOnClick(_ sender: Any) {
        let data = "123".data(using: .utf8)!

        DispatchQueue.global(qos: DispatchQoS.QoSClass.background).async {
            let request = try! URLRequest(url: "https://httpbin.org/anything", method: .post, headers: nil)
            let task = URLSession.shared.uploadTask(with: request, from: data) { data, _, _ in
                if let data = data {
                    print(String(data: data, encoding: .utf8))
                }
            }
            task.resume()
        }

    }

It seems you're using the old Atlantis version, please try to upgrade to Atlantis 1.6.0 and test again 👍
If you don't mind, please share with me Upload Swift code? I would like to run on my machine.


Implement create_autospec

Sometimes, it isn't possible for me to create instances of mocked classes, because I don't have the dependencies. So I can't call
mock = Mock(MyClass())

but I'd rather use
mock = create_autospec(MyClass)

I didn't find this functionalitz in asynctest. Is this planned?

On Wednesday, March 8, 2017, Sebastian Meßmer<EMAIL_ADDRESS>wrote:

Sometimes, it isn't possible for me to create instances of mocked classes,
because I don't have the dependencies. So I can't call
mock = Mock(MyClass())
but I'd rather use
mock = create_autospec(MyClass)
I didn't find this functionalitz in asynctest. Is this planned?

That would be great.

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Martiusweb/asynctest/issues/37, or mute the thread
https://github.com/notifications/unsubscribe-auth/ACLFI08BUWWV4nRfBlpYnnkKXajRwTJTks5rjtqCgaJpZM4MXBFl
.

Hi,
Thanks for the report.
I've never used create_autospec myself, the feature is not "planned" but I will look at how it can be implemented. Unfortunately I don't have much time to update asynctest at the moment so I can't give an ETA.

relates to #46. Once create_autospec() is supported, patch() methods need to be overridden in order to support the autospec argument. It is also called in NonCallableMock.__getattr__().

This is available in the PR/autospec branch.
Feedback is welcome!


chore(deps): upgrade dev dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-dev-dependencies-k8s-27-main" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 2446

Questions ?
Please refer to the Backport tool documentation


⚠ Bofrost.de has degraded performance

In 9539eae, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1177 ms

Resolved: Bofrost.de performance has improved in 3e2fb5c after 6 minutes.


espcoredump: Add option to prepend user-specified data to coredump (IDFGH-2225)

I am looking for comment on this draft PR. This is a modification we needed for a commercial product, but I believe the community would benefit from this capability being baked into the IDF.

Background
The coredump feature can provide crucial information from IoT devices in the field back to a manufacturer's cloud. However, interpretation of those coredumps requires some metadata which is not present in the dump itself:

hash of corresponding ELF file (essential)
app version (useful)
project name (useful)
app build datetime (useful, can even replace hash of ELF file)

This data could be added to the coredump at time of upload, however this introduces the possibility of a mismatch between the FW version which crashed and the FW version doing the uploading.
Furthermore, it is useful to have additional context around the crash, such as:

last console messages
list of errors which occurred on that boot

Current PR
This PR proposes a user-driven solution where an sdkconfig option enables the pre-pending of a block of "userdata" prior to the regular coredump. It is then the responsibility of the manufacturer's cloud to strip the userdata prior to passing the remainder of the coredump into espcoredump.py.
One awkward point here is, I found it necessary to prepend the data_len as the first word of coredump---prior to userdata---so that esp_core_dump_image_get can delimit the dump and successfully mmap and CRC check.
I have implemented this solution in a commercial product, using AWS S3 for uploads, AWS Lambda for decoding the coredumps, and Sentry for reporting the crashes. It is immensely valuable.
Suggestion
The proposed solution gives maximum flexibility to the app developer, but perhaps a different approach would be more in the spirit of ESP-IDF:

We could instead extend the format of the coredump to (either always or optionally) add the esp_app_desc_t structure, which has all the metadata needed. Then the espcoredump.py program could continue to be run against the whole coredump partition. Espcoredump.py could even check the hash of the ELF provided and warn if it does not match. Best of all, the app developer would not need to write any code to take advantage of this feature.

It is still desirable to allow a userdata block to be provided (say, as one of the records in the standard coredump format), so that the app developer can provide a list of errors or console messages, or perhaps other data that is useful for that specific application developer to debug. --- But I see this as more of a roadmap issue, let's make sure we don't preclude this being eventually possible, no need for the current PR to allow arbitrary userdata if the version metadata is embedded.

NOTE: I originally posted about this on the forum, but I believe that a draft PR is a more productive place to discuss. (https://esp32.com/viewtopic.php?f=13&t=13047)

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

[Purpose of force-push was to update committer email to appease @CLAassistant]

@chrismerck Thanks for the contribution.

heads up @igrr the CI seems to be stuck in a loop. I've gotten ~100 emails over the past few days about some error. Pic attached.

@chrismerck Really sorry about this email spam. I think I understand what's happened:
We have an hourly scheduled GitHub Action that runs in the repo to sync new PRs into our JIRA tracker. (This is because otherwise PR events run in the context of the originating repo, not our repo.)
The scheduled Action is also running in your fork, but of course it fails there because your fork doesn't have any of the credentials configured that our repo has: https://github.com/chrismerck/esp-idf/actions?query=workflow%3A"Sync+remain+PRs+to+Jira"
This was an unexpected side effect of adding this schedule, sorry!
You should be able to disable Actions from running at all in your repo here: https://github.com/chrismerck/esp-idf/settings/actions - which will stop the spam.
I'll add a check in our internally-oriented actions that causes them to pass silently if they're not running as part of the "espressif" organization. Still a bit wasteful that all our forks will be spinning up a docker container once an hour to do nothing, but I can't see any fix for that!

You should be able to disable Actions from running at all in your repo here:

That was easy! Thanks. I was more concerned that we were consuming inordinate amounts of espressif CPU cycles :)

Any thoughts on the PR? Or how others solve this issue without having the metadata?

@chrismerck In upcoming IDF v4.1 we are changing coredump format from bin to ELF, but keeping backward compatibility with old binary format (updated script can parse it).
Regarding you suggestions:

Coredump ELF format will include SHA256 for app's ELF it was generated for, using this you can clearly determine app's ELF file.
App's version and project name, from my point of view should be embedded into app ELF file. It seems to be more convenient place. In any case coredump cannot be decoded w/o program ELF and you will need to keep it for dumps analysis. So I do not see the reason to duplicate this info in coredump.

@gerekon Thank you for suggesting a solution based on v4.1. I'm now undertaking to upgrade our products to v4.1-beta1 (no small task it seems), and will try as you suggest. I intend to share my findings here and close the issue within 3 weeks.

I'm going to close the PR since the ELF file hash has been included into the core dumps since IDF v4.1.


PYTHONPATH can break editable packages

I haven't traced the issue down to the setuptools details yet but here is the symptom :
https://github.com/pypa/pip/issues/4261
TL;DR if a path is present in PYTHONPATH when installing (--editable -> setup.py develop ) a package , that path is not added to easy-install.pth.
We probably need a more detailed (and setuptools focused) report.

You've demonstrated the unexpected behavior in the upstream ticket, but let's see if we can demonstrate the issue in a more distilled fashion using setuptools only.
In my initial attempt, I was unsuccessful:
$ mkdir issue-1005
$ cd issue-1005
$ python -m venv .env
$ . .env/bin/activate
(.env) $ cat > setup.py
import setuptools
setuptools.setup(name='foo', version='1.0', packages=['foo_pkg'])
(.env) $ mkdir foo_pkg
(.env) $ touch foo_pkg/__init__.py
(.env) $ PYTHONPATH=$(pwd) python setup.py develop -q
running develop
running egg_info
creating foo.egg-info
writing foo.egg-info/PKG-INFO
writing dependency_links to foo.egg-info/dependency_links.txt
writing top-level names to foo.egg-info/top_level.txt
writing manifest file 'foo.egg-info/SOURCES.txt'
reading manifest file 'foo.egg-info/SOURCES.txt'
writing manifest file 'foo.egg-info/SOURCES.txt'
running build_ext
Creating /Users/jaraco/issue-1005/.env/lib/python3.6/site-packages/foo.egg-link (link to .)
Adding foo 1.0 to easy-install.pth file

Installed /Users/jaraco/issue-1005
Processing dependencies for foo==1.0
Finished processing dependencies for foo==1.0
(.env) $ cat .env/lib/python3.6/site-packages/easy-install.pth
/Users/jaraco/issue-1005

Even when I use pip on Flask, I don't have the issue:
(.env) $ git clone -q https://github.com/mitsuhiko/flask.git
(.env) $ cat .env/lib/python3.6/site-packages/easy-install.pth
(.env) $ PYTHONPATH=$(pwd)/flask pip install -v --no-deps -e flask
Obtaining file:///Users/jaraco/issue-1005/flask
  Running setup.py (path:/Users/jaraco/issue-1005/flask/setup.py) egg_info for package from file:///Users/jaraco/issue-1005/flask
    Running command python setup.py egg_info
    running egg_info
    writing Flask.egg-info/PKG-INFO
    writing dependency_links to Flask.egg-info/dependency_links.txt
    writing entry points to Flask.egg-info/entry_points.txt
    writing requirements to Flask.egg-info/requires.txt
    writing top-level names to Flask.egg-info/top_level.txt
    /Users/jaraco/issue-1005/.env/lib/python3.6/site-packages/setuptools/dist.py:331: UserWarning: Normalizing '0.13-dev' to '0.13.dev0'
      normalized_version,
    warning: manifest_maker: standard file '-c' not found

    reading manifest file 'Flask.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    warning: no previously-included files matching '*.py[co]' found anywhere in distribution
    no previously-included directories found matching 'docs/_build'
    no previously-included directories found matching 'docs/_themes'
    writing manifest file 'Flask.egg-info/SOURCES.txt'
  Source in ./flask has version 0.13.dev0, which satisfies requirement Flask==0.13.dev0 from file:///Users/jaraco/issue-1005/flask
Installing collected packages: Flask
  Found existing installation: Flask 0.13.dev0
    Not uninstalling flask at /Users/jaraco/issue-1005/flask, outside environment /Users/jaraco/issue-1005/.env
  Running setup.py develop for Flask
    Running command /Users/jaraco/issue-1005/.env/bin/python3 -c "import setuptools, tokenize;__file__='/Users/jaraco/issue-1005/flask/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" develop --no-deps
    running develop
    running egg_info
    writing Flask.egg-info/PKG-INFO
    writing dependency_links to Flask.egg-info/dependency_links.txt
    writing entry points to Flask.egg-info/entry_points.txt
    writing requirements to Flask.egg-info/requires.txt
    writing top-level names to Flask.egg-info/top_level.txt
    /Users/jaraco/issue-1005/.env/lib/python3.6/site-packages/setuptools/dist.py:331: UserWarning: Normalizing '0.13-dev' to '0.13.dev0'
      normalized_version,
    warning: manifest_maker: standard file '-c' not found

    reading manifest file 'Flask.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    warning: no previously-included files matching '*.py[co]' found anywhere in distribution
    no previously-included directories found matching 'docs/_build'
    no previously-included directories found matching 'docs/_themes'
    writing manifest file 'Flask.egg-info/SOURCES.txt'
    running build_ext
    Creating /Users/jaraco/issue-1005/.env/lib/python3.6/site-packages/Flask.egg-link (link to .)
    Adding Flask 0.13.dev0 to easy-install.pth file
    Installing flask script to /Users/jaraco/issue-1005/.env/bin

    Installed /Users/jaraco/issue-1005/flask
Successfully installed Flask
Cleaning up...
(.env) $ cat .env/lib/python3.6/site-packages/easy-install.pth
/Users/jaraco/issue-1005/flask

So on first blush, I'm unable to replicate your issue.
But more importantly, as reported, I'm not even sure this is an issue we wish to tackle. It doesn't strike me as unreasonable that if the installer is in an environment where the package is already on sys.path that it would choose not to add the redundant .pth entry.
So to proceed, we need two things: first, an example that can be readily replicated on late versions of Python and Setuptools (without pip); and second, a justification for why the use-case is valid (i.e. an answer to why would anyone want to set PYTHONPATH and setup.py develop the package?).

Rationale :
A user set PYTHONPATH in a shell environment.
He can also start other shells ( with his PYTHONPATH set a different way ).
Having the installed files content depending on PYTHONPATH makes the
install quite brittle : the installed environment will work as expected
with that PYTHONPATH value only, and not with a different one.
Use case :
I am using Python with ROS (http://www.ros.org) , which entails a lot of
different shells, potentially with different setups...
ROS uses PYTHONPATH heavily to build an environment from multiple install
prefix. So manipulating PYTHONPATH is common place.
Also ROS still relies on distutils, and custom "init.py" interpreting
files in other places to achieve the "editable install" effect.
I am currently working to bring ROS usage of python up to date, as much as
I can, by relying on setuptools and the current way to do things in Python.
In that context a user creates an editable install, and then run it
multiple times, from different shells with potentially different
configurations.
I will post here again when I can reproduce only with setuptools. It s
likely also that the version that we are using impacts the behavior as ROS
is still using python 2.7 and I was testing on ubuntu trusty where the
system python setup is quite old.
On Apr 8, 2017 10:57 PM, "Jason R. Coombs"<EMAIL_ADDRESS>wrote:

You've demonstrated the unexpected behavior in the upstream ticket, but
let's see if we can demonstrate the issue in a more distilled fashion using
setuptools only.
In my initial attempt, I was unsuccessful:
$ mkdir issue-1005
$ cd issue-1005
$ python -m venv .env
$ . .env/bin/activate
(.env) $ cat > setup.py
import setuptools
setuptools.setup(name='foo', version='1.0', packages=['foo_pkg'])
(.env) $ mkdir foo_pkg
(.env) $ touch foo_pkg/init.py
(.env) $ PYTHONPATH=$(pwd) python setup.py develop -q
running develop
running egg_info
creating foo.egg-info
writing foo.egg-info/PKG-INFO
writing dependency_links to foo.egg-info/dependency_links.txt
writing top-level names to foo.egg-info/top_level.txt
writing manifest file 'foo.egg-info/SOURCES.txt'
reading manifest file 'foo.egg-info/SOURCES.txt'
writing manifest file 'foo.egg-info/SOURCES.txt'
running build_ext
Creating /Users/jaraco/issue-1005/.env/lib/python3.6/site-packages/foo.egg-link (link to .)
Adding foo 1.0 to easy-install.pth file
Installed /Users/jaraco/issue-1005
Processing dependencies for foo==1.0
Finished processing dependencies for foo==1.0
(.env) $ cat .env/lib/python3.6/site-packages/easy-install.pth
/Users/jaraco/issue-1005
Even when I use pip on Flask, I don't have the issue:
(.env) $ git clone -q https://github.com/mitsuhiko/flask.git
(.env) $ cat .env/lib/python3.6/site-packages/easy-install.pth
(.env) $ PYTHONPATH=$(pwd)/flask pip install -v --no-deps -e flask
Obtaining file:///Users/jaraco/issue-1005/flask
Running setup.py (path:/Users/jaraco/issue-1005/flask/setup.py) egg_info for package from file:///Users/jaraco/issue-1005/flask
Running command python setup.py egg_info
running egg_info
writing Flask.egg-info/PKG-INFO
writing dependency_links to Flask.egg-info/dependency_links.txt
writing entry points to Flask.egg-info/entry_points.txt
writing requirements to Flask.egg-info/requires.txt
writing top-level names to Flask.egg-info/top_level.txt
/Users/jaraco/issue-1005/.env/lib/python3.6/site-packages/setuptools/dist.py:331: UserWarning: Normalizing '0.13-dev' to '0.13.dev0'
normalized_version,
warning: manifest_maker: standard file '-c' not found
reading manifest file 'Flask.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no previously-included files matching '*.py[co]' found anywhere in distribution
no previously-included directories found matching 'docs/_build'
no previously-included directories found matching 'docs/_themes'
writing manifest file 'Flask.egg-info/SOURCES.txt'

Source in ./flask has version 0.13.dev0, which satisfies requirement Flask==0.13.dev0 from file:///Users/jaraco/issue-1005/flask
Installing collected packages: Flask
Found existing installation: Flask 0.13.dev0
Not uninstalling flask at /Users/jaraco/issue-1005/flask, outside environment /Users/jaraco/issue-1005/.env
Running setup.py develop for Flask
Running command /Users/jaraco/issue-1005/.env/bin/python3 -c "import setuptools, tokenize;file='/Users/jaraco/issue-1005/flask/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" develop --no-deps
running develop
running egg_info
writing Flask.egg-info/PKG-INFO
writing dependency_links to Flask.egg-info/dependency_links.txt
writing entry points to Flask.egg-info/entry_points.txt
writing requirements to Flask.egg-info/requires.txt
writing top-level names to Flask.egg-info/top_level.txt
/Users/jaraco/issue-1005/.env/lib/python3.6/site-packages/setuptools/dist.py:331: UserWarning: Normalizing '0.13-dev' to '0.13.dev0'
normalized_version,
warning: manifest_maker: standard file '-c' not found
reading manifest file 'Flask.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no previously-included files matching '*.py[co]' found anywhere in distribution
no previously-included directories found matching 'docs/_build'
no previously-included directories found matching 'docs/_themes'
writing manifest file 'Flask.egg-info/SOURCES.txt'
running build_ext
Creating /Users/jaraco/issue-1005/.env/lib/python3.6/site-packages/Flask.egg-link (link to .)
Adding Flask 0.13.dev0 to easy-install.pth file
Installing flask script to /Users/jaraco/issue-1005/.env/bin

Installed /Users/jaraco/issue-1005/flask

Successfully installed Flask
Cleaning up...
(.env) $ cat .env/lib/python3.6/site-packages/easy-install.pth
/Users/jaraco/issue-1005/flask
So on first blush, I'm unable to replicate your issue.
But more importantly, as reported, I'm not even sure this is an issue we
wish to tackle. It doesn't strike me as unreasonable that if the installer
is in an environment where the package is already on sys.path that it would
choose not to add the redundant .pth entry.
So to proceed, we need two things: first, an example that can be readily
replicated on late versions of Python and Setuptools (without pip); and
second, a justification for why the use-case is valid (i.e. an answer to
why would anyone want to set PYTHONPATH and setup.py develop the package?).
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/pypa/setuptools/issues/1005#issuecomment-292719761,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AANgSGoDKoPqRVP0mZ5wVU18zi4C9LE4ks5rt5JKgaJpZM4MykCB
.

Firstly, I was able to reproduce the behavior you had, but with python2.7 :
alexv@AlexV-Linux:~$ mkvirtualenv issue-1005
New python executable in /home/alexv/.virtualenvs/issue-1005/bin/python
Installing setuptools, pip, wheel...done.
(issue-1005) alexv@AlexV-Linux:~$ git clone -q https://github.com/mitsuhiko/flask.git
(issue-1005) alexv@AlexV-Linux:~$ PYTHONPATH=$(pwd)/flask pip install -v --no-deps -e flask
Obtaining file:///home/alexv/flask
  Running setup.py (path:/home/alexv/flask/setup.py) egg_info for package from file:///home/alexv/flask
    Running command python setup.py egg_info
    /home/alexv/.virtualenvs/issue-1005/local/lib/python2.7/site-packages/setuptools/dist.py:334: UserWarning: Normalizing '0.13-dev' to '0.13.dev0'
      normalized_version,
    running egg_info
    creating Flask.egg-info
    writing requirements to Flask.egg-info/requires.txt
    writing Flask.egg-info/PKG-INFO
    writing top-level names to Flask.egg-info/top_level.txt
    writing dependency_links to Flask.egg-info/dependency_links.txt
    writing entry points to Flask.egg-info/entry_points.txt
    writing manifest file 'Flask.egg-info/SOURCES.txt'
    reading manifest file 'Flask.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    warning: no previously-included files matching '*.py[co]' found anywhere in distribution
    no previously-included directories found matching 'docs/_build'
    no previously-included directories found matching 'docs/_themes'
    writing manifest file 'Flask.egg-info/SOURCES.txt'
  Source in ./flask has version 0.13.dev0, which satisfies requirement Flask==0.13.dev0 from file:///home/alexv/flask
Installing collected packages: Flask
  Running setup.py develop for Flask
    Running command /home/alexv/.virtualenvs/issue-1005/bin/python -c "import setuptools, tokenize;__file__='/home/alexv/flask/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" develop --no-deps
    /home/alexv/.virtualenvs/issue-1005/local/lib/python2.7/site-packages/setuptools/dist.py:334: UserWarning: Normalizing '0.13-dev' to '0.13.dev0'
      normalized_version,
    running develop
    running egg_info
    writing requirements to Flask.egg-info/requires.txt
    writing Flask.egg-info/PKG-INFO
    writing top-level names to Flask.egg-info/top_level.txt
    writing dependency_links to Flask.egg-info/dependency_links.txt
    writing entry points to Flask.egg-info/entry_points.txt
    reading manifest file 'Flask.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    warning: no previously-included files matching '*.py[co]' found anywhere in distribution
    no previously-included directories found matching 'docs/_build'
    no previously-included directories found matching 'docs/_themes'
    writing manifest file 'Flask.egg-info/SOURCES.txt'
    running build_ext
    Creating /home/alexv/.virtualenvs/issue-1005/lib/python2.7/site-packages/Flask.egg-link (link to .)
    Adding Flask 0.13.dev0 to easy-install.pth file
    Installing flask script to /home/alexv/.virtualenvs/issue-1005/bin

    Installed /home/alexv/flask
Successfully installed Flask
Cleaning up...
(issue-1005) alexv@AlexV-Linux:~$ cat ~/.virtualenvs/issue-1005/
bin/                include/            lib/                local/              pip-selfcheck.json
(issue-1005) alexv@AlexV-Linux:~$ cat ~/.virtualenvs/issue-1005/lib/python2.7/
_abcoll.py                   copy_reg.py                  genericpath.py               locale.pyc                   posixpath.py                 site.pyc                     sre_parse.pyc                UserDict.py
_abcoll.pyc                  copy_reg.pyc                 genericpath.pyc              no-global-site-packages.txt  posixpath.pyc                sre_compile.py               sre.py                       UserDict.pyc
abc.py                       distutils/                   lib-dynload/                 ntpath.py                    re.py                        sre_compile.pyc              stat.py                      warnings.py
abc.pyc                      encodings/                   linecache.py                 orig-prefix.txt              re.pyc                       sre_constants.py             stat.pyc                     warnings.pyc
codecs.py                    fnmatch.py                   linecache.pyc                os.py                        site-packages/               sre_constants.pyc            types.py                     _weakrefset.py
codecs.pyc                   fnmatch.pyc                  locale.py                    os.pyc                       site.py                      sre_parse.py                 types.pyc                    _weakrefset.pyc
(issue-1005) alexv@AlexV-Linux:~$ cat ~/.virtualenvs/issue-1005/lib/python2.7/site-packages/easy-install.pth
/home/alexv/flask

But this is already the case in the upstream issue. The problem is that if, just after, I do :
(issue-1005) alexv@AlexV-Linux:~$ git clone -q https://github.com/kennethreitz/requests
(issue-1005) alexv@AlexV-Linux:~$ PYTHONPATH=$(pwd)/flask pip install -v --no-deps -e requests
Obtaining file:///home/alexv/requests
  Running setup.py (path:/home/alexv/requests/setup.py) egg_info for package from file:///home/alexv/requests
    Running command python setup.py egg_info
    running egg_info
    creating requests.egg-info
    writing requirements to requests.egg-info/requires.txt
    writing requests.egg-info/PKG-INFO
    writing top-level names to requests.egg-info/top_level.txt
    writing dependency_links to requests.egg-info/dependency_links.txt
    writing manifest file 'requests.egg-info/SOURCES.txt'
    reading manifest file 'requests.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    warning: no files found matching 'test_requests.py'
    writing manifest file 'requests.egg-info/SOURCES.txt'
  Source in ./requests has version 2.13.0, which satisfies requirement requests==2.13.0 from file:///home/alexv/requests
Installing collected packages: requests
  Running setup.py develop for requests
    Running command /home/alexv/.virtualenvs/issue-1005/bin/python -c "import setuptools, tokenize;__file__='/home/alexv/requests/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" develop --no-deps
    running develop
    running egg_info
    writing requirements to requests.egg-info/requires.txt
    writing requests.egg-info/PKG-INFO
    writing top-level names to requests.egg-info/top_level.txt
    writing dependency_links to requests.egg-info/dependency_links.txt
    reading manifest file 'requests.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    warning: no files found matching 'test_requests.py'
    writing manifest file 'requests.egg-info/SOURCES.txt'
    running build_ext
    Creating /home/alexv/.virtualenvs/issue-1005/lib/python2.7/site-packages/requests.egg-link (link to .)
    Adding requests 2.13.0 to easy-install.pth file

    Installed /home/alexv/requests
Successfully installed requests
Cleaning up...
(issue-1005) alexv@AlexV-Linux:~$ cat ~/.virtualenvs/issue-1005/lib/python2.7/site-packages/easy-install.pth
/home/alexv/requests

Flask is now gone...
In your setuptools example, you have only one directory with one package.
To reproduce, I think we need two directories and two packages :
alexv@AlexV-Linux:~$ mkdir issue-1005
alexv@AlexV-Linux:~$ cd issue-1005/
alexv@AlexV-Linux:~/issue-1005$ mkdir foo_repo
alexv@AlexV-Linux:~/issue-1005$ mkdir bar_repo
alexv@AlexV-Linux:~/issue-1005$ python -m virtualenv .env
New python executable in /home/alexv/issue-1005/.env/bin/python
Installing setuptools, pip, wheel...done.
alexv@AlexV-Linux:~/issue-1005$ . .env/bin/activate
(.env) alexv@AlexV-Linux:~/issue-1005$ cat > foo_repo/setup.py
import setuptools
setuptools.setup(name='foo', version='1.0', packages=['foo_pkg'])
(.env) alexv@AlexV-Linux:~/issue-1005$ cat > bar_repo/setup.py
import setuptools
setuptools.setup(name='bar', version='1.0', packages=['bar_pkg'])
(.env) alexv@AlexV-Linux:~/issue-1005$ mkdir foo_repo/foo_pkg
(.env) alexv@AlexV-Linux:~/issue-1005$ mkdir bar_repo/bar_pkg
(.env) alexv@AlexV-Linux:~/issue-1005$ touch foo_repo/foo_pkg/__init__.py
(.env) alexv@AlexV-Linux:~/issue-1005$ touch bar_repo/bar_pkg/__init__.py
(.env) alexv@AlexV-Linux:~/issue-1005$ PYTHONPATH=$(pwd)/foo_repo python foo_repo/setup.py develop -q
running develop
running egg_info
creating foo.egg-info
writing foo.egg-info/PKG-INFO
writing top-level names to foo.egg-info/top_level.txt
writing dependency_links to foo.egg-info/dependency_links.txt
writing manifest file 'foo.egg-info/SOURCES.txt'
error: package directory 'foo_pkg' does not exist
(.env) alexv@AlexV-Linux:~/issue-1005$ cd foo_repo/
(.env) alexv@AlexV-Linux:~/issue-1005/foo_repo$ PYTHONPATH=$(pwd) python setup.py develop -q
running develop
running egg_info
creating foo.egg-info
writing foo.egg-info/PKG-INFO
writing top-level names to foo.egg-info/top_level.txt
writing dependency_links to foo.egg-info/dependency_links.txt
writing manifest file 'foo.egg-info/SOURCES.txt'
reading manifest file 'foo.egg-info/SOURCES.txt'
writing manifest file 'foo.egg-info/SOURCES.txt'
running build_ext
Creating /home/alexv/issue-1005/.env/lib/python2.7/site-packages/foo.egg-link (link to .)
Adding foo 1.0 to easy-install.pth file

Installed /home/alexv/issue-1005/foo_repo
Processing dependencies for foo==1.0
Finished processing dependencies for foo==1.0
(.env) alexv@AlexV-Linux:~/issue-1005/foo_repo$ cat ../.env/lib/python2.7/site-packages/easy-install.pth
/home/alexv/issue-1005/foo_repo
(.env) alexv@AlexV-Linux:~/issue-1005/foo_repo$ cd ../bar_repo/
(.env) alexv@AlexV-Linux:~/issue-1005/bar_repo$ PYTHONPATH=/home/alexv/issue-1005/foo_repo python setup.py develop -q
running develop
running egg_info
creating bar.egg-info
writing bar.egg-info/PKG-INFO
writing top-level names to bar.egg-info/top_level.txt
writing dependency_links to bar.egg-info/dependency_links.txt
writing manifest file 'bar.egg-info/SOURCES.txt'
reading manifest file 'bar.egg-info/SOURCES.txt'
writing manifest file 'bar.egg-info/SOURCES.txt'
running build_ext
Creating /home/alexv/issue-1005/.env/lib/python2.7/site-packages/bar.egg-link (link to .)
Adding bar 1.0 to easy-install.pth file

Installed /home/alexv/issue-1005/bar_repo
Processing dependencies for bar==1.0
Finished processing dependencies for bar==1.0
(.env) alexv@AlexV-Linux:~/issue-1005/bar_repo$ cat ../.env/lib/python2.7/site-packages/easy-install.pth
/home/alexv/issue-1005/bar_repo

So here we can see the path /home/alexv/issue-1005/foo_repo that was in the PYTHONPATH has been removed from the easy-install.pth file when installing bar_pkg via python setup.py develop.

Aha. That helps. So it's the easy-install.pth cleanup that's apparently implicated, probably in easy_install.easy_install.update_pth, and that function relies on state from other functions, so it's not a simple routine to read.
I don't know when I'll have time to dig deeper, so if you have the time and drive, the next step will be to trace the code during the install of this second package and see if you can detect where the foo_repo is getting removed from the path.

I m on my first adventure inside setuptools code, so I m not sure I understand much yet...
I tried to debug with PyCharm, but Pycharm also modify the PYTHONPATH with the current projects path, depending what you launch and the order of the projects in the UI, so it s a bit tricky to find... Maybe they were attempting to work around the problem we are having...
Anyway using pdb (maybe setuptools.sandbox ?) might be needed to get the exact behavior but I m not familiar with all this.
In case it is useful I started https://github.com/asmodehn/setuptools-1005
With two project foo and bar, what seems to happen as far as I understand is, tracing the relevant steps :

https://github.com/pypa/setuptools/blob/master/setuptools/command/easy_install.py#L473 self.all_site_dirs will contain whatever was set in PYTHONPATH.
https://github.com/pypa/setuptools/blob/master/setuptools/command/easy_install.py#L1561 for line in f will check each line of easy-install.pth file
https://github.com/pypa/setuptools/blob/master/setuptools/command/easy_install.py#L1575 self.paths.pop() will remove lines that are in seen which has a similar content to self.sitedirs
https://github.com/pypa/setuptools/blob/master/setuptools/command/easy_install.py#L1551 Just after calling self._load(), self.paths will contain the paths from an existing easy-install.pth, minus the current one (that we are installing), as well as any other ones listed in sys.path.
https://github.com/pypa/setuptools/blob/master/setuptools/command/easy_install.py#L1176 we add the current dist to self.pth_file, which will add again the path of the current package (that we removed previously) to self.pth_file.paths
https://github.com/pypa/setuptools/blob/master/setuptools/command/easy_install.py#L1182 self.pth_file.save() writes the file.

I am not sure what is the intent behind removing, from the easy-install.pth file, all the paths that are in PYTHONPATH... Removing the currently installing package makes sense, but all the ones in PYTHONPATH ?

Hello! I ran into this as well. As others have pointed out, the cleanup function here is a little over-eager.
It's easy to repro as well.
$ python3 -m venv env
$ source env/bin/activate
$ python -m pip install --upgrade setuptools pip
$ vim setup.py
$ cat setup.py
from setuptools import setup

setup(name="repro", version="1")

$ # easy-install.pth doesn't exist
$ cat $(python -c 'import site; print(site.getsitepackages()[0])')/easy-install.pth
$ python setup.py develop
$ # now easy-install.pth exists, contains the path to here
$ cat $(python -c 'import site; print(site.getsitepackages()[0])')/easy-install.pth

$ # add some random other directory that exists to easy-install.pth
$ echo $HOME >> $(python -c 'import site; print(site.getsitepackages()[0])')/easy-install.pth
$ python setup.py develop
$ # easy-install.pth contents are unaffected
$ cat $(python -c 'import site; print(site.getsitepackages()[0])')/easy-install.pth

$ # but do the same thing with PYTHONPATH
$ PYTHONPATH=$HOME python setup.py develop
$ # oops, random other stuff is removed from easy-install.pth based on PYTHONPATH
$ cat $(python -c 'import site; print(site.getsitepackages()[0])')/easy-install.pth

Do you agree that this is a bug / would you accept a PR fixing this?


WIP support quota of cluster-scoped resources

Within a logical cluster, all corev1.ResourceQuota resources in the kcp-system namespace that are annotated with quota.kcp.dev/cluster-scoped=true will be considered when calculating quota usage and evaluating admission.
If you create a quota like
apiVersion: v1
kind: ResourceQuota
metadata:
  annotations:
    quota.kcp.dev/cluster-scoped: "true"
  name: quota
spec:
  hard:
    count/namespaces: "10"

this will limit the total # of namespaces in the logical cluster to 10.
This also has the side effect of being able to provide cluster-wide quota for namespace-scoped resources. For example, if you have count/configmaps, the status will equal the total # of configmaps in the logical cluster, across all its namespaces.

Replaced by #97