Feature/417 File upload integration

What this PR does / why we need it:
File upload works now, integration test is added
Which issue(s) this PR closes:

Closes #417

Special notes for your reviewer:
Suggestions on how to test this:
Upload some file to a dataset.
Does this PR introduce a user interface change? If mockups are available, please link/include them here:
No interface changes.
Is there a release notes update needed for this change?:
Something like "added files upload feature"
Additional documentation:

coverage: 97.76% (+0.006%) from 97.754%
when pulling<PHONE_NUMBER>18c6bf8d23992fbb5cf32789905c21 on feature/417-upload-integration
into 0933f3f402ee8ae44a1c3f8b2fe1257ca022490a on develop.

Hi @ErykKul , thanks for addressing the requested changes.
I am seeing fails in the e2e tests, could you take a look at them?
If they keep failing try increasing the cypress command timeout like I did in this PR maybe that will help.

@g-saracca Thanks! It fixed the test that was initially failing. I did notice that my file upload test was also failing after the DTO refactoring, I fixed it as well. It looks like all tests are passing now.

I could not reproduce the .java files upload issue, I uploaded a bunch of them, without any problem. I used Firefox, I will also try Chrome and see from there. I do not see anything specific to the file type preventing some kinds of files from being uploaded, the file type is hard-coded to 'Content-Type': 'application/octet-stream' in DirectUploadClient.ts
As for the content length header: it is also being set in DirectUploadClient.ts (line 69). I assume that the warning is that it was not set? The upload itself works, I get files uploaded and downloaded, so I assume it is not the cause of the problems...
The progress is also set from the same file, only the calls from the lines 46 and 53 work. It looks like the progress update at line 119 never gets called. So the progress is first set to 10% when upload starts, and to 100% when its finished. It looks like the UI does exactly that.
At the first glance, the problems you mention do not seem to be related to this PR.

I could reproduce the problem with chromium, with firefox I can upload java files, I can't with chromium. Strange...

It turns out that FireFox does recognize java files and gives them a correct content-type, but chromium does not. I have hard-coded it to application/octet-stream, it fixed the upload problem.

application/octet-stream is the default type when uploading, it basically means that we let Dataverse figure it out, either through the configuration or with JHOVE. I checked, the uploaded files get the correct mime-type after upload. I think I confused the header being passed to the s3 with the file type passed to Dataverse, the one passed to Dataverse was not hardcoded, but set to a value chosen by the browser. That is why it worked with FireFox, but not with Chromium.

@GPortas Can you look at it again? Thanks!

I just discovered another problem: when uploading many files, the upload can get stuck. I am looking at it now.

@qqmyers  Chromium was giving an empty string as mime type, which was (I guess) rejected by Dataverse, I can try detecting that specific case - invalid mime type provided by the browser. I will also dig deeper into it and check the log of Dataverse to see what exactly happened.

@g-saracca The problem I am having with stuck uploads is very similar to the checkbox problem I was having and that you noticed; it worked fine with mocks, but worked incorrectly in the real SPA (I see the same behavior for the semaphores: function being wrongly called several times, while in the code only one call is possible, the func inside the onChange was also called multiple times for the checkbox, while there was only one change). Together with the mime-type thing, I need to go deeper into it, so I am moving this PR back to "in progress"

Ah - OK - we might not handle an empty/missing value, so checking and assuming that's application/octet-stream on the client or server side might be better than just always hardcoding.

Hi @ErykKul please point me out the part of the semaphore code or function that it is being called multiple times maybe I can find out what is the problem.
I do think this part of the code below is a little bit hard to control with a useEffect, as it will re run everytime fileUploaderState changes, and as it's not a primitive it will run all the time because it cant really compare it to the previous state. Maybe you can find a solution that doesn't require a useEffect.
  useEffect(() => {
    setFiles((newFiles) =>
      newFiles.filter((x) => {
        const res = !FileUploadTools.get(x, fileUploaderState).removed
        if (!res) {
          cleanFileState(x)
        }
        return res
      })
    )
  }, [fileUploaderState, cleanFileState])

Try, just as an experiment, using useDeepCompareEffect (import { useDeepCompareEffect } from 'use-deep-compare') instead of useEffect, it will deep compare fileUploaderState to detect a change, but checkout the performance monitor with the dev tools please because it can consume quite a lot of resources perhaps by uploading several files.

@qqmyers
I updated the code and the octet-stream is now only used if browser failed to detect the mime type (it fix the problem with chromium and .java files):
uploadedFile.fileType === '' ? 'application/octet-stream' : uploadedFile.fileType

@g-saracca
Thanks! I used that in the code, it does not look like it had much impact, but it pointed me to where the real problem was! It was the upload effect that run each time when files state was changed, that on its turn was changed on each fileUploadState change. I simplified the code and replaced my semaphore by a real one from async-mutex package. The code looks much better now and runs more smoothly. Can you re-review? Thanks!

Hi @ErykKul great!
Could be nice to add a comment on this line on why the need for a ternary, so future devs knows why.
uploadedFile.fileType === '' ? 'application/octet-stream' : uploadedFile.fileType
If you think useDeepCompareEffect was not part of the solution please remove it and check if everything keeps working correctly, what do you think?
Here 👇 , setFiles((newFiles) => the callback args (newFiles)  should be (currentFiles) as the callback of a stateSetter always have the current state, so is clear what this code is doing.
  useDeepCompareEffect(() => {
    setFiles((newFiles) =>
      newFiles.filter((x) => {
        const res = !FileUploadTools.get(x, fileUploaderState).removed
        if (!res) {
          cleanFileState(x)
        }
        return res
      })
    )
  }, [fileUploaderState, cleanFileState])

I reverted to the useEffect, added the comment, etc. I also removed the test that failed. It is less useful now, since the custom semaphore is no longer used and does not need to be tested. It also turned out to be flaky, since I had rerun all the tests locally and they all passed.

The integration test that failed is not linked to the file upload code. It might be related to the s3 storage? In worst case, after each integration test run we leave some garbage on the s3 bucket. But even if that is the case, I am still not sure why that test suddenly failed. Maybe I should increase the timeout for the integration tests again?

Hi @ErykKul, things I noticed:

Still getting a Refused to set unsafe header "Content-Length" error in console when uploading a .jpg file.
Progress bar doesn't seem to we showing the progress updating correctly, just increase one time and then the file is completely uploaded and removed from the file drop zone.

I have added the gap. I think that the header warning is something that the js-client sets. I can look at it, as well as improving the progress updates (I think that one would also require changes at the js-client).

@ErykKul Thanks for addressing the changes. I have retested the feature for .java files and it works great.
I think this is ready to be merged, and open a separate issue in js-dataverse to review the header warning and progress updates.

I tried fixing the header and progress bar issue: https://github.com/IQSS/dataverse-client-javascript/pull/187
I will test it locally now. I will let you know if it worked. It is fine for me if it will be a separate issue.

I think it fixed it, I will add it to this PR, we can revert it if needed.

The progress bar moves nicely and there are no errors in the log. However, multipart upload does not work as it should, it looks like it "resets" with every part (starts from 0 and never reaches 100%). I will try fixing it, it should be easy to do (I think that my assumption on the index and part size were incorrect, or I messed up the formula).

I think that it was a correct behavior: resetting was due to the upload failing, from the log it looks like uploading first part always failed with some retries (maybe the file is too large for the test-bucket)? Anyway, it is the best I could do for now. I updated the dependency again, after a small fix on the multipart progress updates. I will stop committing now, such that the review and QA can continue. Thanks @g-saracca and @GPortas

@ErykKul you made changes to the file upload use case on the js-dataverse repo?

If that is the case we should first I think , review and approve the JS-dataverse PR 👍🏼

Yes, it was a small change in the js-dataverse. It is not urgent, I think it is most important to get it right, so I think it is a good idea to take a look at my change at the js-dataverse first: PR 187


replace package_available with module_available

What does this PR do?
switch to rather use module_available until this is resolved: https://github.com/Lightning-AI/lightning/pull/16595#issuecomment-1413347875
Before submitting

[ ] Was this discussed/approved via a GitHub issue? (not for typos and docs)
[x] Did you read the contributor guideline, Pull Request section?
[x] Did you make sure your PR does only one thing, instead of bundling different changes together?
[ ] Did you make sure to update the documentation with your changes? (if necessary)
[ ] Did you write any new necessary tests? (not for typos and docs)
[ ] Did you verify new and existing tests pass locally with your changes?
[ ] Did you list all the breaking changes introduced by this pull request?
[ ] Did you update the CHANGELOG? (not for typos, docs, test updates, or minor internal changes/refactors)

PR review
Anyone in the community is welcome to review the PR.
Before you start reviewing, make sure you have read the review guidelines. In short, see the following bullet-list:

[x] Is this pull request ready for review? (if not, please submit in draft mode)
[x] Check that all items from Before submitting are resolved
[x] Make sure the title is self-explanatory and the description concisely explains the PR
[x] Add labels and milestones (and optionally projects) to the PR so it can be classified

Did you have fun?
Make sure you had fun coding 🙃
cc @borda @tchaton @carmocca @justusschock @awaelchli

Have you checked why the spec is None for the lightning package? See the implementation:

yes, will check just want to patch it until we have it resolved :)


Not found in ast index file

对这个项目很感兴趣，但我是一个靠GPT4来指导我部署anytext的新新手，请问我这是碰到什么问题了？（GPT貌似都有些束手无策了）
(anytext) C:\Windows\System32\Anytext>python inference.py
2024-01-03 14:23:34,487 - modelscope - INFO - PyTorch version 2.1.2+cu118 Found.
2024-01-03 14:23:34,489 - modelscope - INFO - TensorFlow version 2.13.0 Found.
2024-01-03 14:23:34,489 - modelscope - INFO - Loading ast index from C:\Users\HP.cache\modelscope\ast_indexer
2024-01-03 14:23:34,572 - modelscope - INFO - Loading done! Current index file version is 1.10.0, with md5 026f7c772a5d4e347142d024af000099 and a total number of 946 components indexed
2024-01-03 14:23:35,808 - modelscope - INFO - Use user-specified model revision: v1.1.0
2024-01-03 14:23:38,550 - modelscope - WARNING - ('PIPELINES', 'my-anytext-task', 'my-custom-pipeline') not found in ast index file
2024-01-03 14:23:38,551 - modelscope - INFO - initiate model from C:\Users\HP.cache\modelscope\hub\damo\cv_anytext_text_generation_editing
2024-01-03 14:23:38,552 - modelscope - INFO - initiate model from location C:\Users\HP.cache\modelscope\hub\damo\cv_anytext_text_generation_editing.
2024-01-03 14:23:38,555 - modelscope - INFO - initialize model from C:\Users\HP.cache\modelscope\hub\damo\cv_anytext_text_generation_editing
2024-01-03 14:23:38,559 - modelscope - WARNING - ('MODELS', 'my-anytext-task', 'my-custom-model') not found in ast index file
A matching Triton is not available, some optimizations will not be enabled.
Error caught was: No module named 'triton'
OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.
OMP: Hint This means that multiple copies of the OpenMP runtime have been linked into the program. That is dangerous, since it can degrade performance or cause incorrect results. The best thing to do is to ensure that only a single OpenMP runtime is linked into the process, e.g. by avoiding static linking of the OpenMP runtime in any library. As an unsafe, unsupported, undocumented workaround you can set the environment variable KMP_DUPLICATE_LIB_OK=TRUE to allow the program to continue to execute, but that may cause crashes or silently produce incorrect results. For more information, please see http://www.intel.com/software/products/support/.
(anytext) C:\Windows\System32\Anytext>

Hi, maybe try this:
pip install triton==2.0.0

嗨，也许试试这个：
pip install triton==2.0.0

C:\Windows\system32>pip install triton==2.0.0
ERROR: Could not find a version that satisfies the requirement triton==2.0.0 (from versions: none)
ERROR: No matching distribution found for triton==2.0.0
我意识到这可能是个很简单的错误，但我没有任何基础，有点无从下手，如果您能继续指点我，我将万分感激

Brief research suggests that pip install triton is not possible on Windows

简短的研究表明 pip install triton 在 Windows 上是不可能的

我在triton的github上也看到相关的内容


⚠ ClamAV has degraded performance

In 65201f3, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 126 ms

Resolved: ClamAV performance has improved in d805bdc.


Disincentivizing All-Caps Headlines on Stacker News

Is your feature request related to a problem? Please describe.
The number of posts with all-caps headlines on Stacker News seems to be rising lately, and it is clear by now that the primary purpose of all-caps headlines is to evoke stronger emotions from readers. The capitalization of every headline letter doesn't actually give readers any additional information about a topic... it just makes people feel like they're being yelled at.
Describe the solution you'd like
To fix this problem, Stacker News should implement a capital letter threshold for all post headlines (manually-generated links, auto-generated links, discussions, ads, polls, jobs, and bounties).
If a headline includes more than 12 capital letters, the poster will receive a notice directly above the "post" button that says "because you've used more than 12 capital letters in your heading, your post will cost 100x more" or something similar.
This means that if a poster would otherwise be charged 1 sat to post, their all-caps title will cost 100 sats. If they would otherwise be charged 10 sats for their post, their all-caps title will cost 1,000 sats, and on and on.
The number 12 is high enough that people who include acronyms or many short, capitalized words in their titles will not be penalized, but those who insist on capitalizing every letter in their title will. The 100x increase in posting cost is also high enough that it will either disincentivize people from creating all-caps titles, or it will generate far more rewards for other stackers.
Additional context
By enforcing this new threshold, we can also remove our current defenses against all-caps titles.
Our current defense system doesn't allow the second letter of the title for manually-generated link posts to be capitalized. However, there are still many all-caps titles that persist across SN despite this rule, and well-intentioned posters that want to refer to acronyms in their link titles have the unfortunate side effect of having the second letter in their acronym turned into a lowercase letter.

we can also remove our current defenses against all-caps titles.

What are those defenses?

I can work on this one. It seems pretty similar to my most recent PR (#588) in that it's fee-related, so it's probably a good next issue for me to tackle.


Feature/apply smida report

I'll merge it for now, but will hold it's application on production, because we need to make some internal UAT first.
Can you meanwhile investigate if we can apply dates to the connections. Dates are there, but it might be tricky to find when someone has been appointed or dismissed


add forceLock to assessment model [#155570985]

Adds forceLock attribute in support of https://www.pivotaltracker.com/story/show/155570985
Please see impact-manage PR for QA instructions.

It looks like you got blown up by a dependency lint error:
Expected all versions of ember-inflector to satisfy "2.1.0", but found
            ember-cli-impact-core
            ├──<EMAIL_ADDRESS>            └─┬ ember-data
              └──<EMAIL_ADDRESS>
Let me know if you need help with that one.


Updating the GC to a later version

In the last month and more I have been hit with the dreaded Invalid memory Access crash caused by the GC.
It took me a while to track down which and what was going wrong, I have also conversed with @z64 in the discord about this same issue we both had in production environments.
The issue has been fixed in commit https://github.com/ivmai/bdwgc/commit/9245e1154d271b9fd69c5c6de75c6ac37f3badc4 and I have tested this new commit for the past few days in multiple situations

release
non-release
MT Enabled
MT Disabled

All of those have been proved to be stable and fixed the crash issues I have been seeing.
The issue is self explanatory based on the GC fix message, but an example crash looks like:
mmap(PROT_NONE) failed
Invalid memory access (signal 11) at address 0x0
[0x56420982e310] print_backtrace at /usr/share/crystal/src/exception/call_stack.cr:129:5
[0x5642082e5453] __crystal_sigfault_handler at /usr/share/crystal/src/signal.cr:348:3
[0x7f87b4dfe980] ???
[0x7f87b3fc3a10] abort +560
[0x564209879bd5] ???
[0x564209880129] GC_unmap_old +121
[0x56420986c50a] GC_finish_collection +1114
[0x56420986bd60] GC_try_to_collect_inner +336
[0x56420986d0c4] GC_collect_or_expand +196
[0x564209870fab] GC_alloc_large +235
[0x5642098716a3] GC_generic_malloc +307
[0x564209871821] GC_malloc_kind_global +225
[0x564209871d51] GC_realloc +209
[0x56420836ff1d] realloc at /usr/share/crystal/src/gc/boehm.cr:120:5
[0x56420827d117] __crystal_realloc64 at /usr/share/crystal/src/gc.cr:46:3

If there are others who want to test it, in our docker I just did
# Install Crystal
RUN curl -fsSL https://crystal-lang.org/install.sh | bash
RUN apt install -y crystal libz-dev libgmp-dev libyaml-dev libxml2-dev libssl-dev \
  autoconf autotools-dev automake libtool build-essential

# Remove the static libgc.a
RUN rm /usr/lib/crystal/lib/libgc.a
# Install bdw-gc for fix by commit 9245e1154d271b9fd69c5c6de75c6ac37f3badc4
RUN git clone https://github.com/ivmai/bdwgc.git && \
  cd bdwgc && \
  git checkout 9245e1154d271b9fd69c5c6de75c6ac37f3badc4 && \
  git clone git://github.com/ivmai/libatomic_ops.git && \
  ./autogen.sh && \
  ./configure --enable-large-config --prefix=/usr && \
  make -j CFLAGS=-DNO_GETCONTEXT && \
  make install

note the the removing of the static GC otherwise it won't "take"

I'm glad that the upstream patch is still showing its usefulness.
If it can be applied on top of 8.0.4 (latest release) then I think we can put it in distribution-scripts.
Yet that will mean that it could not be available on other distributions since there is no tagged release with that patch.

I know @z64 tried to patch the latest release with this commit, maybe he can provide some info on his tries.

@bcardiff https://github.com/ivmai/bdwgc/commit/9245e1154d271b9fd69c5c6de75c6ac37f3badc4 does not cleanly apply on top of v8.0.4 directly, as there were other changes to touched files in between 8.0.4 -> 9245e11.
Applied patch to 'allchblk.c' with conflicts.
Applied patch to 'headers.c' cleanly.
Applied patch to 'include/private/gc_priv.h' cleanly.
Applied patch to 'include/private/gcconfig.h' with conflicts.
Applied patch to 'mark.c' cleanly.
Applied patch to 'os_dep.c' cleanly.

I will spare the diff, its a little long.
I briefly started looking in to compensating for those unrelated changes, but I don't have the time alotted to dig in to a new C codebase of this size to confidently move the required changes.
I will also point out there is a sister commit for Dragonfly that IIRC Crystal supports: https://github.com/ivmai/bdwgc/commit/eba47d9d1197fa1dc3c68bc0813dc2364a13fd89

Maybe we should just start a petition for a new bdwgc release? It should be about time.

@Sija started it: https://github.com/ivmai/bdwgc/issues/368

https://github.com/ivmai/bdwgc/releases/tag/v8.0.6 🚀

Actually, the stackbottom patch is not included in 8.0.6. It's only in https://github.com/ivmai/bdwgc/releases/tag/v8.2.0 which is labeled as a pre-release. The next stable release (including that patch) is 8.2.2 scheduled for Devember (don't ask me about that versioning scheme 🤷).
Waiting some more weeks for 8.2.2 shouldn't be a huge issue.
But we could consider upgrading to 8.2.0 since it should fix the issues reported in the OP. I wouldn't want to introduce another patch for that, but using a pre-release might be fine. The open issues (why it's a pre-release and not a stable release) are named in https://github.com/ivmai/bdwgc/issues/368#issuecomment-929945678. That doesn't seem too much of a stopper for us.

This issue is related to #42

Nice! thanks @straight-shoota :grin:

@straight-shoota is it right Crystal 1.2.2 with libgc 8.2.0 does not have stackbottom patch is included?
I open issue in https://github.com/ivmai/bdwgc/issues/410 seems it is same problem.

That patch has been upstreamed and is included in 8.2.0 (https://github.com/ivmai/bdwgc/commit/5668de71107022a316ee967162bc16c10754b9ce).

@straight-shoota in this case we have this problem back, or it is new one.

What makes you think your issue is related to the stackbottom patch? It would be helpful if you could provide more information. Please open a new issue for that here, including information on how to reproduce it.
Makes sense to track and cross-reference this both here and in  https://github.com/ivmai/bdwgc/issues/410 until a reason is confirmed.

It is related to https://github.com/ivmai/bdwgc/issues/324 is confirmed here https://github.com/ivmai/bdwgc/issues/410#issuecomment-1010663011
@straight-shoota  will open new issue later after any progress

@straight-shoota Was resolved in https://github.com/ivmai/bdwgc/issues/410#issuecomment-1047462074


refactor: Replace url.parse with new URL()

I think this is the last thing we need to do in order to release the 3.x alpha release.
Replacing the url.parse API here doesn't break our tests:
https://github.com/bitinn/node-fetch/blob/3b452b8e1f280142d78d5a33abf945d77c25ea59/src/request.js#L51
However, trying to use the new WHATWG API here:
https://github.com/bitinn/node-fetch/blob/3b452b8e1f280142d78d5a33abf945d77c25ea59/src/request.js#L54
throws some errors:
><EMAIL_ADDRESS>test /home/akepinski/dev/node-fetch
> cross-env BABEL_ENV=test mocha --require @babel/register --throw-deprecation test/test.js

  node-fetch
    ✓ should return a promise
    1) should return a promise
(node:11807) UnhandledPromiseRejectionWarning: FetchError: request to http://localhost:30001/hello failed, reason: connect ECONNREFUSED <IP_ADDRESS>:80
    at ClientRequest.<anonymous> (/home/akepinski/dev/node-fetch/src/index.js:113:11)
    at ClientRequest.emit (events.js:210:5)
    at Socket.socketErrorListener (_http_client.js:406:9)
    at Socket.emit (events.js:210:5)
    at emitErrorNT (internal/streams/destroy.js:92:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)
(node:11807) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)

  1 passing (35ms)
  1 failing

  1) node-fetch
       should return a promise:
     Uncaught DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
      at emitDeprecationWarning (internal/process/promises.js:153:11)
      at processPromiseRejections (internal/process/promises.js:205:13)
      at processTicksAndRejections (internal/process/task_queues.js:94:32)

npm ERR! Test failed.  See above for more details.

Trying to use the new API here also breaks our tests, but with more precise errors:
175 passing (2s)
  29 failing

  1) node-fetch
       should follow redirect code 301:
     FetchError: request to http://localhost:30001/inspect failed, reason: connect ECONNREFUSED <IP_ADDRESS>:80
      at ClientRequest.<anonymous> (src/index.js:113:11)
      at Socket.socketErrorListener (_http_client.js:406:9)
      at emitErrorNT (internal/streams/destroy.js:92:8)
      at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  2) node-fetch
       should follow redirect code 302:
     FetchError: request to http://localhost:30001/inspect failed, reason: connect ECONNREFUSED <IP_ADDRESS>:80
      at ClientRequest.<anonymous> (src/index.js:113:11)
      at Socket.socketErrorListener (_http_client.js:406:9)
      at emitErrorNT (internal/streams/destroy.js:92:8)
      at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  3) node-fetch
       should follow redirect code 303:
     FetchError: request to http://localhost:30001/inspect failed, reason: connect ECONNREFUSED <IP_ADDRESS>:80
      at ClientRequest.<anonymous> (src/index.js:113:11)
      at Socket.socketErrorListener (_http_client.js:406:9)
      at emitErrorNT (internal/streams/destroy.js:92:8)
      at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  4) node-fetch
       should follow redirect code 307:
     FetchError: request to http://localhost:30001/inspect failed, reason: connect ECONNREFUSED <IP_ADDRESS>:80
      at ClientRequest.<anonymous> (src/index.js:113:11)
      at Socket.socketErrorListener (_http_client.js:406:9)
      at emitErrorNT (internal/streams/destroy.js:92:8)
      at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  5) node-fetch
       should follow redirect code 308:
     FetchError: request to http://localhost:30001/inspect failed, reason: connect ECONNREFUSED <IP_ADDRESS>:80
      at ClientRequest.<anonymous> (src/index.js:113:11)
      at Socket.socketErrorListener (_http_client.js:406:9)
      at emitErrorNT (internal/streams/destroy.js:92:8)
      at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  6) node-fetch
       should follow redirect chain:
     FetchError: request to http://localhost:30001/redirect/301 failed, reason: connect ECONNREFUSED <IP_ADDRESS>:80
      at ClientRequest.<anonymous> (src/index.js:113:11)
      at Socket.socketErrorListener (_http_client.js:406:9)
      at emitErrorNT (internal/streams/destroy.js:92:8)
      at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  7) node-fetch
       should follow POST request redirect code 301 with GET:
     FetchError: request to http://localhost:30001/inspect failed, reason: connect ECONNREFUSED <IP_ADDRESS>:80
      at ClientRequest.<anonymous> (src/index.js:113:11)
      at Socket.socketErrorListener (_http_client.js:406:9)
      at emitErrorNT (internal/streams/destroy.js:92:8)
      at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  8) node-fetch
       should follow PATCH request redirect code 301 with PATCH:
     FetchError: request to http://localhost:30001/inspect failed, reason: connect ECONNREFUSED <IP_ADDRESS>:80
      at ClientRequest.<anonymous> (src/index.js:113:11)
      at Socket.socketErrorListener (_http_client.js:406:9)
      at emitErrorNT (internal/streams/destroy.js:92:8)
      at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  9) node-fetch
       should follow POST request redirect code 302 with GET:
     FetchError: request to http://localhost:30001/inspect failed, reason: connect ECONNREFUSED <IP_ADDRESS>:80
      at ClientRequest.<anonymous> (src/index.js:113:11)
      at Socket.socketErrorListener (_http_client.js:406:9)
      at emitErrorNT (internal/streams/destroy.js:92:8)
      at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  10) node-fetch
       should follow PATCH request redirect code 302 with PATCH:
     FetchError: request to http://localhost:30001/inspect failed, reason: connect ECONNREFUSED <IP_ADDRESS>:80
      at ClientRequest.<anonymous> (src/index.js:113:11)
      at Socket.socketErrorListener (_http_client.js:406:9)
      at emitErrorNT (internal/streams/destroy.js:92:8)
      at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  11) node-fetch
       should follow redirect code 303 with GET:
     FetchError: request to http://localhost:30001/inspect failed, reason: connect ECONNREFUSED <IP_ADDRESS>:80
      at ClientRequest.<anonymous> (src/index.js:113:11)
      at Socket.socketErrorListener (_http_client.js:406:9)
      at emitErrorNT (internal/streams/destroy.js:92:8)
      at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  12) node-fetch
       should follow PATCH request redirect code 307 with PATCH:
     FetchError: request to http://localhost:30001/inspect failed, reason: connect ECONNREFUSED <IP_ADDRESS>:80
      at ClientRequest.<anonymous> (src/index.js:113:11)
      at Socket.socketErrorListener (_http_client.js:406:9)
      at emitErrorNT (internal/streams/destroy.js:92:8)
      at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  13) node-fetch
       should obey maximum redirect, reject case:

      AssertionError: expected { type: 'system',
  name: 'FetchError',
  errno: 'ECONNREFUSED',
  code: 'ECONNREFUSED',
  erroredSysCall: [Error: connect ECONNREFUSED <IP_ADDRESS>:80] } to have property 'type' of 'max-redirect', but got 'system'
      + expected - actual

      -system
      +max-redirect

      at /home/akepinski/dev/node-fetch/node_modules/chai-as-promised/lib/chai-as-promised.js:302:22
      at processTicksAndRejections (internal/process/task_queues.js:93:5)

  14) node-fetch
       should obey redirect chain, resolve case:
     FetchError: request to http://localhost:30001/redirect/301 failed, reason: connect ECONNREFUSED <IP_ADDRESS>:80
      at ClientRequest.<anonymous> (src/index.js:113:11)
      at Socket.socketErrorListener (_http_client.js:406:9)
      at emitErrorNT (internal/streams/destroy.js:92:8)
      at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  15) node-fetch
       should follow redirect code 301 and keep existing headers:
     FetchError: request to http://localhost:30001/inspect failed, reason: connect ECONNREFUSED <IP_ADDRESS>:80
      at ClientRequest.<anonymous> (src/index.js:113:11)
      at Socket.socketErrorListener (_http_client.js:406:9)
      at emitErrorNT (internal/streams/destroy.js:92:8)
      at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  16) node-fetch
       should set redirected property on response when redirect:
     FetchError: request to http://localhost:30001/inspect failed, reason: connect ECONNREFUSED <IP_ADDRESS>:80
      at ClientRequest.<anonymous> (src/index.js:113:11)
      at Socket.socketErrorListener (_http_client.js:406:9)
      at emitErrorNT (internal/streams/destroy.js:92:8)
      at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  17) node-fetch
       should allow custom timeout on redirected requests:

      AssertionError: expected { type: 'system',
  name: 'FetchError',
  errno: 'ECONNREFUSED',
  code: 'ECONNREFUSED',
  erroredSysCall: [Error: connect ECONNREFUSED <IP_ADDRESS>:80] } to have property 'type' of 'request-timeout', but got 'system'
      + expected - actual

      -system
      +request-timeout

      at /home/akepinski/dev/node-fetch/node_modules/chai-as-promised/lib/chai-as-promised.js:302:22
      at processTicksAndRejections (internal/process/task_queues.js:93:5)

  18) node-fetch
       should allow redirects to be aborted:

      AssertionError: expected { type: 'system',
  name: 'FetchError',
  errno: 'ECONNREFUSED',
  code: 'ECONNREFUSED',
  erroredSysCall: [Error: connect ECONNREFUSED <IP_ADDRESS>:80] } to have property 'name' of 'AbortError', but got 'FetchError'
      + expected - actual

      -FetchError
      +AbortError

      at /home/akepinski/dev/node-fetch/node_modules/chai-as-promised/lib/chai-as-promised.js:302:22
      at processTicksAndRejections (internal/process/task_queues.js:93:5)

  19) node-fetch
       should allow redirected response body to be aborted:

      AssertionError: expected { type: 'system',
  name: 'FetchError',
  errno: 'ECONNREFUSED',
  code: 'ECONNREFUSED',
  erroredSysCall: [Error: connect ECONNREFUSED <IP_ADDRESS>:80] } to have property 'name' of 'AbortError', but got 'FetchError'
      + expected - actual

      -FetchError
      +AbortError

      at /home/akepinski/dev/node-fetch/node_modules/chai-as-promised/lib/chai-as-promised.js:302:22
      at processTicksAndRejections (internal/process/task_queues.js:93:5)

  20) node-fetch
       should remove internal AbortSignal event listener after request and response complete without aborting:
     AssertionError: expected promise to be fulfilled but it was rejected with 'FetchError: request to http://localhost:30001/inspect failed, reason: connect ECONNREFUSED <IP_ADDRESS>:80'

  21) node-fetch
       should support fetch with Request instance:
     FetchError: request to http://localhost:30001/hello failed, reason: connect ECONNREFUSED <IP_ADDRESS>:80
      at ClientRequest.<anonymous> (src/index.js:113:11)
      at Socket.socketErrorListener (_http_client.js:406:9)
      at emitErrorNT (internal/streams/destroy.js:92:8)
      at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  22) node-fetch
       should support fetch with Node.js URL object:
     FetchError: request to http://localhost:30001/hello failed, reason: connect ECONNREFUSED <IP_ADDRESS>:80
      at ClientRequest.<anonymous> (src/index.js:113:11)
      at Socket.socketErrorListener (_http_client.js:406:9)
      at emitErrorNT (internal/streams/destroy.js:92:8)
      at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  23) node-fetch
       should support fetch with WHATWG URL object:
     FetchError: request to http://localhost:30001/hello failed, reason: connect ECONNREFUSED <IP_ADDRESS>:80
      at ClientRequest.<anonymous> (src/index.js:113:11)
      at Socket.socketErrorListener (_http_client.js:406:9)
      at emitErrorNT (internal/streams/destroy.js:92:8)
      at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  24) node-fetch
       should support overwrite Request instance:
     FetchError: request to http://localhost:30001/inspect failed, reason: connect ECONNREFUSED <IP_ADDRESS>:80
      at ClientRequest.<anonymous> (src/index.js:113:11)
      at Socket.socketErrorListener (_http_client.js:406:9)
      at emitErrorNT (internal/streams/destroy.js:92:8)
      at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  25) node-fetch
       supports supplying a lookup function to the agent:
     FetchError: request to http://localhost:30001/inspect failed, reason: connect ECONNREFUSED <IP_ADDRESS>:80
      at ClientRequest.<anonymous> (src/index.js:113:11)
      at Socket.socketErrorListener (_http_client.js:406:9)
      at emitErrorNT (internal/streams/destroy.js:92:8)
      at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  26) node-fetch
       supports supplying a famliy option to the agent:
     FetchError: request to http://localhost:30001/inspect failed, reason: connect ECONNREFUSED <IP_ADDRESS>:80
      at ClientRequest.<anonymous> (src/index.js:113:11)
      at Socket.socketErrorListener (_http_client.js:406:9)
      at emitErrorNT (internal/streams/destroy.js:92:8)
      at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  27) Request
       should override signal on derived Request instances:
     TypeError [ERR_INVALID_URL]: Invalid URL: test
      at onParseError (internal/url.js:243:9)
      at new URL (internal/url.js:319:5)
      at new Request (src/request.js:59:16)
      at Context.<anonymous> (test/test.js:2617:26)
      at processImmediate (internal/timers.js:439:21)

  28) Request
       should allow removing signal on derived Request instances:
     TypeError [ERR_INVALID_URL]: Invalid URL: test
      at onParseError (internal/url.js:243:9)
      at new URL (internal/url.js:319:5)
      at new Request (src/request.js:59:16)
      at Context.<anonymous> (test/test.js:2629:26)
      at processImmediate (internal/timers.js:439:21)

  29) external encoding
       data uri
         should accept data uri of plain text:

      AssertionError: expected '' to equal 'Hello World!'
      + expected - actual

      +Hello World!

      at equal (test/test.js:2835:44)

npm ERR! Test failed.  See above for more details.

Sorry for the late reply, I will look into it when available.
But the tests appear to fail to completely unrelated issues. Can we please get the CI back to a working state before proceeding to troubleshoot this issue?
https://travis-ci.org/bitinn/node-fetch/jobs/619760485

@bitinn Tests are fixed in #703

@xxczaki @Richienb I have re-ran the tests, the build is now passing (I don't know how should accept data uri of plain text test fail for the push but the PR passes), please remove utf8 package dependency and we can merge this 👍

@bitinn We haven't migrated parseUrl to new URL for all of the instances yet...

@xxczaki @Richienb
I have figured out exactly why this is happening:
When we parse the URL object in request.js, we use ... spread syntax to read its properties, but this doesn't work with new URL() object (its a completely different URL object from the ones created by url.parse()).
Then in index.js we check for options.protocol in order to determine the request protocol, which defaults to https when protocol property is missing. Of course a request to http://localhost:30001/hello using https.request will result in ECONNREFUSED
I have branch with a fix, but it's not complete, some of the tests require new Request() and new Response() to support any URL input, which new URL can't do without a base parameter. So I guess we either need to prevent these edge cases. Or use a default base when URL is not absolute.
I am too busy to fix these so please follow up on this problem :)
https://github.com/bitinn/node-fetch/tree/new-url-parser

@bitinn It's currently late at night for me at the moment (UTC+12) so I'll take this tomorrow.

Take your time, we are not in a rush here :)
Also new URL() relative url parsing issue is known, documented by Timothy as always: https://github.com/nodejs/node/issues/12682

Ok, so I was working with David's branch and here is what I did:

To handle relative URLs I created a parseURL function (inspiration), which is basically a wrapper around new URL. It uses a solution suggested here, which isn't perfect.

Now only 2 tests fail:
  202 passing (2s)
  2 failing

  1) node-fetch
       should reject with error if url is protocol relative:

      AssertionError: expected promise to be rejected with an error including 'Only absolute URLs are supported' but got 'Only HTTP(S) protocols are supported'
      + expected - actual

      -Only HTTP(S) protocols are supported
      +Only absolute URLs are supported

  2) Request
       should support arbitrary url:

      AssertionError: expected 'relative:///anything' to equal 'anything'
      + expected - actual

      -relative:///anything
      +anything

      at Context.equal (test/test.js:2735:22)
      at processImmediate (internal/timers.js:439:21)

I think we might need to release the 3.x version with the deprecated url.parse(), as it looks like new URL() still has some important issues (like the one with relative URLs).

@xxczaki In that case, we should use a ponyfill for url.parse t

@bitinn I've introduced the detection of whether the URL is absolute or not (regex was taken from here). I've also changed the error message, as you suggested.
Now, should we stop supporting relative URLs and throw a custom error instead? Or maybe we should do something else?
cc @bitinn @Richienb

I think we should throw an Error stating that we don’t support relative URL yet. To me this is not possible without the “context”, so even if we workaround it, node-fetch still won’t do the same thing as browsers’ fetch.
I think we should also throw if you create a Request or Response manually with relative URL.
(From my phone)

On Feb 20, 2020, at 3:28, Antoni Kepinski<EMAIL_ADDRESS>wrote:

@bitinn I've introduced the detection of whether the URL is absolute or not (regex was taken from here). I've also changed the error message, as you suggested.
Now, should we stop supporting relative URLs and throw a custom error instead? Or maybe we should do something else?
cc @bitinn @Richienb
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

@bitinn Ok, these tests fail:
1) should override signal on derived Request instances
2) should allow removing signal on derived Request instances
3) should default to null as body
4) should support arbitrary url
5) should support ArrayBuffer as body
6) should support Uint8Array as body
7) should support DataView as body

1, 2 and 4 are related to arbitrary URLs. 3, 5, 6 and 7 do not specify the URL (so the Response class assumes it's an empty string).

@jimmywarting what's your thought on this? obvious we would like to support arbitrary URL but the new URL() just couldn't handle it without some nasty hacks.

I also made an attempt to get in the new URL long time ago. but i also stumble upon some failing tests then.
It would be an nice addition to get in the new URL for sure. Even if it meant that we got some new failing test and possible some breaking changes. like throwing an error for constructing request with a relative  url. But that's maybe something that we can fix arbitrary URL after this.

@xxczaki
Let's go with no arbitrary url for now?

3, 5, 6 and 7 do not specify the URL (so the Response class assumes it's an empty string).

We can fix these by supplying a placeholder url

1, 2 and 4 are related to arbitrary URLs

If we can use full URL and fix these, do so; otherwise make changes to the test itself to reflect the changes
And finally, please update UPGRADE doc to reflect this, thx a lot on your efforts to move this forward!

@Richienb Yes, just removed it :smile:

Using this opportunity, I did some small refactoring:

Split tests into different files (though the main one is still huge)
Removed ignored xo rules to improve code quality

can you point me to changed tests now that there are refactoring going on, I can't see which tests are changed?

Here are the changes: https://github.com/node-fetch/node-fetch/pull/701/commits/dec40659ca25ef1ec6a7967d16c0c8b5626df38c
TL;DR:

Deleted one test (should support arbitrary url)
Updated others by supplying a placeholder URL.

Note: In the above commit I used a wrong placeholder URLs ${base}/hello, instead of ${base}hello. Fixed it in https://github.com/node-fetch/node-fetch/pull/701/commits/ac60e7a012f793985d674ac4fec666fd90e008e5.

Feels like this PR is getting little out of context and being rather large and doing unrelated changes towards just changing parse with url... more to review.

@jimmywarting I can remove the refactoring commits and create a separate PR for that. However, since this is probably the last PR before the 3.x release, I wanted to include them in it.

I went through the actual changes on tests and main codebase again, they look fine to me.
Travis CI show the number of tests are correct (206, vs the 207 in v3.x branch currently).
I have one final question though:
Did we test UTF-8 URL support? The actual goal of using new URL()?

@jimmywarting I can remove the refactoring commits and create a separate PR for that. However, since this is probably the last PR before the 3.x release, I wanted to include them in it.
you don't have to but just remember that till next time

@bitinn Will something like this do the trick?
it('URLs are encoded as UTF-8', () => {
	const url = 'http://example.com/möbius';

	fetch(url).then(res => expect(res.url).to.equal('http://example.com/m%C3%B6bius'));
});

@bitinn Will something like this do the trick?
it('URLs are encoded as UTF-8', () => {
	const url = 'http://example.com/möbius';

	fetch(url).then(res => expect(res.url).to.equal('http://example.com/m%C3%B6bius'));
});

I think so, but better to use a local url with our test server script, if it's possible. And of course verify the test fails with current v3 branch, otherwise we are not fixing issues like #245 and #233

@bitinn Everything seems to be working fine :smile:

Then I think it’s time to merge and put v3 out!
(whether we should beta it first, can be discussed in the main thread)
(From my phone)

On Mar 13, 2020, at 1:03, Antoni Kepinski<EMAIL_ADDRESS>wrote:

@bitinn Everything seems to be working fine 😄
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.


Smartcard Redirection

Migrate the smartcard redirection plugin to 1.0.

@atong-tcs: anything done so far?

started porting to the new threading and dr api, but nothing ready for checkin.

Let us posted about any news and progress on that.

Any testing so far? Build with -DWITH_PCSC
xfreerdp --plugin rdpdr --data scard:scard ...

I tried latest git version of FreeRDP, smartcards are redirected with no problems to W2003 and W2008R2 servers.

In this case I wll close this issue and if something shows up we start a new one.

Greetings terrible,
Your comment was sort of cryptic, so I must ask: Were you able use your Smartcard(s) to actually log in on the WS2008R2?

Which first stable version after 0.7.3 of the FreeRDP will work with Smartcard, 1.0, 1.1? My customer is using FreeRDP 0.7.3. I know this version does not work with Smartcard after reading the mailing list. My platform is RHEL 5.2 (Linux kernel 2.6.18 32-bit) with Windows 7 Pro 64-bit. Thanks!


Shell0002/update2015eds

@doneill thanks for your updates - have completed readmes as requested. Also note I changed tools version in DeviceLocation demo that you'd updated to Android 2.2 alpha (as opening in released Android Studio 2.1 gave gradle sync errors). Apologies for tardiness.

Looks good @shellygill will merge.


Closes #16: [Feature] - Add support for OTLP exporters (tracing and metrics)

Closes #16

This change is

I just ran the tests locally and they work fine.
I've also just rebased this feature branch to the main branch


Fix the bug that repeated execution of resume will generate errors on swow

… swow engine

https://github.com/hyperf/engine-swow/commit/d7b6da09d622e67b5b39e7fd1a81ea35f55e970c


google group posting disabled?

I just tried to post to the google group, and it failed. I couldn't do it either using the email interface nor the web interface.
looking at the group, it looks like it's set to
Access
Anyone can view content.
Anyone can apply to join.
Only managers can post.
Only members can view the list of members.

Thanks, I had accidentally mis-configured the permissions, trying to prevent spam. I fixed this now.


:tada: feat: Adaptation to Figma Design

Issue
This pull request refers to Issue #63

[ ] Does not apply to this pull request

Description
UX text modeling, AlertDialog layout.
Adaptation to Figma for bold text, spacing on the home page, text size and alertdialog and DatePickerState updated
Types of changes

[ ] New feature (non-breaking change which adds functionality).
[ ] Bug fix (non-breaking change which fixes an issue).
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected).

What changed:

[x] UI
[ ] Business rule
[ ] Documentation
[ ] Gradle or Build
[ ] Navigation
[ ] Tests
[ ] Resource files
[ ] Project architecture
[ ] Code style

Checklist

[x] Have tested the changes.
[x] Met all the acceptance requirements of this task.
[x] Verified if branch is up-to-date with develop (if not - rebase it or merge it).
[x] Resolve git conflicts

If any of the acceptance criteria are not met, please explain why below
What is the criteria? Why it is different?

Foram adicionados a novas alterações recomendadas.
Verificar por favor.


Istio CA taking up all CPU if 2 are running

I found this while running e2e tests in minikube, in multiple namespaces.
It's very likely to happen in k8s, but harder to notice the cooling fan going at full speed :-)
1535 root      20   0   43.2m  23.2m  62.7  1.2  52:37.94 R istio_ca
647 root      20   0    0.0m   0.0m  41.8  0.0 960:37.16 S kswapd0
14471 root      20   0   41.1m  20.1m  25.5  1.0  35:20.40 S istio_ca
1535 root      20   0   43.2m  23.2m  73.3  1.2  52:59.96 S istio_ca
14471 root      20   0   41.1m  20.1m  43.3  1.0  35:33.41 S istio_ca
16247 root      20   0   41.1m  19.3m  36.6  1.0  35:11.83 S istio_ca

which column is for cpu usage?

Costin, please provide more info, i.e., what is the minikube setup in terms
of CPU/memory. I remember we have specific CPU requirements for bookinfo
example in GKE/minikube.
Tao
On Fri, Dec 22, 2017 at 8:51 AM Wencheng Lu<EMAIL_ADDRESS>wrote:

which column is for cpu usage?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/istio/istio/issues/2317#issuecomment-353635641, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AXQIZta3_tvmo3BHHvBgNVexUd3M_K9Rks5tC94MgaJpZM4RLL0W
.

--
Tao

I'll try to reproduce it - I didn't see much in the logs, after removing
the test namespace the cpu fan went back to normal.
Try running the e2e tests on a cluster that has istio-sysyem installed, and
check if cpu increases.
On Dec 22, 2017 16:13, "Tao Li"<EMAIL_ADDRESS>wrote:

Costin, please provide more info, i.e., what is the minikube setup in terms
of CPU/memory. I remember we have specific CPU requirements for bookinfo
example in GKE/minikube.
Tao
On Fri, Dec 22, 2017 at 8:51 AM Wencheng Lu<EMAIL_ADDRESS>wrote:

which column is for cpu usage?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/istio/istio/issues/2317#issuecomment-353635641, or
mute
the thread
<https://github.com/notifications/unsubscribe-auth/AXQIZta3_
tvmo3BHHvBgNVexUd3M_K9Rks5tC94MgaJpZM4RLL0W>
.

--
Tao
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/istio/istio/issues/2317#issuecomment-353693730, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAFI6sjFMHmQYwm1kUPqYjEF-M8z7GsJks5tDEWkgaJpZM4RLL0W
.

Feel free to assign it back if the issue still exists.


add contributor

add contributor

@all-contributors please add @mh-cbon for code, ideas, research, design, data, test, bug, doc, blog, example, tutorial, tool, platform, review,  question, maintenance and infra

@all-contributors please add @mh-cbon for code, ideas, research, design, data, test, bug, doc, blog, example, tutorial, tool, platform, review,  question, maintenance and infra

@all-contributors please add @mh-cbon for code, ideas, research, design, data, test, bug, doc, blog, example, tutorial, tool, platform, review, question, maintenance and infra

thx

@all-contributors please add @solvingj for code, bug, userTesting


initialized project, created dispatcher, ulistener, and utransport

Issue #1

@hostilechild007 great work so far, just FYI please rename ulink to upclient to be consistent with the "rebranding" we recently did.  this means that the folder should be "up-client-socket-python". btw there is a folder inside of a folder with the same name...


How could I add "SYNONYM" as a keyword for syntax highlight?

We'll add it in the next version.
If there are some other HSQLDB keywords which are not highlighted - please tell.

http://hsqldb.org/doc/guide/lists-app.html
COMPARABLE
CURRENT_CATALOG
ELSEIF
END_EXEC
FIRST_VALUE
HANDLER
ITERATE
LAST_VALUE
LEAD
LEAVE
LIKE_REGEX
LOOP
MAX_CARDINALITY
NCHAR
NCLOB
NTH_VALUE
NTILE
OCCURRENCES_REGEX
OFFSET
PERIOD
POSITION_REGEX
RESIGNAL
SIGNAL
STACKED
SUBSTRING_REGEX
TRANSLATE_REGEX
TRIM_ARRAY
UNTIL
VALUE


fixed deadlock on Stop when in connecting state

My proposal to fix:
https://github.com/dotnet/aspnetcore/issues/25729

Looks good thanks!
Could we also add this to line 151 to cover all the spots?

Sure!

Looks good thanks!
Could we also add this to line 151 to cover all the spots?

Sure!

@gonzo-coder Do you have time to make the update? Otherwise I can see if I have write permissions to your branch to update it.

@gonzo-coder Do you have time to make the update? Otherwise I can see if I have write permissions to your branch to update it.

@BrennanConroy Ok! I'll give you write permission to my fork, because I have no time right now to test properly this change. But! I have tested current code in my fork in production and it worked well. Original issue fixed. Is this 151-line fix really worth a hassle? Better is often the enemy of good enough.

@BrennanConroy Ok! I'll give you write permission to my fork, because I have no time right now to test properly this change. But! I have tested current code in my fork in production and it worked well. Original issue fixed. Is this 151-line fix really worth a hassle? Better is often the enemy of good enough.

It follows the exact same pattern as the rest of the code changes, and it wont make things worse. I'll fix it 👍

It follows the exact same pattern as the rest of the code changes, and it wont make things worse. I'll fix it 👍

Thanks for fixing this!

Thanks for fixing this!


Increase timeout for semantic diagnostics in tests

AFAICT getting semantic diagnostics takes more than 5 seconds if a specific SDK/compiler combination is used for the first time, increase the timeout to make the test pass.

@swift-ci Please smoke test

@swift-ci Please test

I think that makes sense. I’ll take a look at it in a follow-up PR (rdar://91615376)


Accept array value for requireNewlineBeforeBlockStatements and disallowNewlineBeforeBlockStatements

When one of requireNewlineBeforeBlockStatements  or disallowNewlineBeforeBlockStatements is set to true, we have to put all opening curly brace on the same line or on a new line as the preceding statement, which leads to code like this:
using requireNewlineBeforeBlockStatements = true:
function bad()
{
    var obj =
    {
        val: true
    };

    return {
        data: obj
    };
}

if (cond)
{
    foo();
}

for (var e in elements)
{
    bar(e);
}

using disallowNewlineBeforeBlockStatements= true:
function good(){
    var obj = {
        val: true
    };

    return {
        data: obj
    };
}

if (cond){
    foo();
}

for (var e in elements){
    bar(e);
}

But, I would like to have my code looks like this instead:
function good() {
    var obj = {
        val: true
    };

    return {
        data: obj
    };
}

if (cond)
{
    foo();
}

for (var e in elements)
{
    bar(e);
}

The difference is that if and for statements have their opening curly brace on a new line, whereas all other blocks opening curly brace stay on the same line, so it's basically a mix of the two rules.
To achieve this, requireNewlineBeforeBlockStatements and disallowNewlineBeforeBlockStatements should accept an array of values likes this:
{
     "disallowNewlineBeforeBlockStatements": ["function", "object", "return"],
     "requireNewlineBeforeBlockStatements": ["if", "for", "while"],
}

With this, this code would be OK (opening curly brace of if should be on new line, but opening curly brace of functions should not):
function good() {
}

if (good)
{
    good();
}

and both of the following should be KO:
function bad()
{
}

if (good)
{
    good();
}

function good() {
}

if (bad) {
    good();
}

What do you think ? I can try to implement it you're ok with that but don't wan't to or can't do it.

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/4483440-accept-array-value-for-requirenewlinebeforeblockstatements-and-disallownewlinebeforeblockstatements?utm_campaign=plugin&utm_content=tracker%2F281640&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F281640&utm_medium=issues&utm_source=github).

Rules disallowKeywordsOnNewLine and requireKeywordsOnNewLine may be relevant here as well.

Rules disallowKeywordsOnNewLine and requireKeywordsOnNewLine may be relevant here as well.

@pomeh are you still interested?

Cleaning up some older/inactive issues: going to close and mark as orphaned so we can reopen again at a later time if anyone has PR


Balder/introduce common termnode parent

@havardpe PR

@havardpe Just review, I will coordinate merge after #6078 is in.


debcopyright.vim: support for Files-Included

Full support (including for components) was finished with this commit: https://salsa.debian.org/debian/devscripts/-/commit/ee90dad7712a7db1e9541b405e065a08d29d62f8

@josch Could you update the Last Change date in the header?

@josch Could you update the Last Change date in the header?

Thank you, done! :slightly_smiling_face:

thanks both


Create 0000-01-02-sd8917.md

created a branch, created a file and made a commit, and opened a pull request

created a branch, created a file and made a commit, and opened a pull request


Missing required argument in useButton (in useSelect example) and other doc findings

🙋 Documentation Request
When going through the docs to create a select component with Typescript I noticed that in the example the ref argument was missing in the useButton hook.
Going through the docs I found some other small things:

In the collections example item.name is used but it seems like it should be section.name.
A few imports are missing in the useListBox example.

I'm working on a PR right now, so it should be solved soon. Let me know your thoughts!

I noticed that in other examples imports are also missing (e.g. in the useSelect example useSelect is not imported), so I'm guessing this is intended?

@tristandubbeld Thanks for helping fix this! Some of the missing imports that you may find (such as the useSelect one you mentioned) aren't in the examples because they are imported further up in the mdx file. Adding the same import to the example then results in a build error due to duplicate declarations unfortunately, something we'll have to figure out a fix for.


failed to build apk

I have failed to build the final apk on debug that works but cannot

I have tried this more 2 weeks now but the issue is not being same case no sdk found any help

Duplicate of #46, you should update your plugin's compileSdkVersion from 27 to 28.
By the way , I have submit a PR(#54) to fix this problem, and waiting for merge...

#54 fix it


Reached heap limit Allocation failed - JavaScript heap out of memory when update SAP Cloud SDK v1.46.0 to v3.21.0

Issue Description
We are encountering error " - JavaScript heap out of memory" when building the nodejs application after update SAP Cloud SDK v1.46.0 to v3.21.0 .
Important information:

Update SAP Cloud SDK v1.46.0 to v3.21.0 .

Expected outcome
Able to build the MTA successfully after update the SDK

Actual outcome
Encounter "ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory" upon the build

Steps attempted to resolve the issue
N/A

In case of issues with any of our VDMs:
N/A

What happens when a request is performed directly via an HTTP client tool such as Postman?
N/A

In case that succeeds please provide details on the request such as URL, query parameters, header parameters, prerequisite requests (e.g. CSRF token), etc.
N/A

Potentially missing information (open questions you might have)
N/A

Impact / Priority

Affected development phase: Development
Impact: e.g. Impaired
Timeline: Go-Live is in 2 months
Error Message
ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory

Project Details

SDK Version: v3.21.0

Link to GitHub repo:
Project type, for example:

[ ] None of the above:

Platform:

[ ] Cloud Foundry

Checklist

[ ] Checked out the documentation and Stack Overflow
[ ] Description provided with all relevant information
[ ] Exception and stack trace provided
[ ] Attached debug logs
[ ] Attached dependency tree
[ ] Provided Cloud SDK version & link to relevant source code

Please open Javascript issues on the Javascript repository


FileNotFoundException when using SSH to build from source dependencies

I forked a library for an immediate fix for an issue and attempted to build that code from source, using the following:
sourceControl {
    gitRepository(java.net.URI.create("ssh://git@github.company.com/ZakTaccardi/forked-repo.git")) {
        producesModule(..)
    }
}

This worked locally for me, but failed on our CI servers with the following exception:
Caused by: com.jcraft.jsch.JSchException: java.io.FileNotFoundException: /home/tools/.ssh/id_github_rsa (No such file or directory)
	at com.jcraft.jsch.KeyPair.load(KeyPair.java:543)
	at com.jcraft.jsch.IdentityFile.newInstance(IdentityFile.java:40)
	at com.jcraft.jsch.JSch.addIdentity(JSch.java:406)
	at com.jcraft.jsch.JSch.addIdentity(JSch.java:366)
	at org.eclipse.jgit.transport.JschConfigSessionFactory.getJSch(JschConfigSessionFactory.java:372)
	at org.eclipse.jgit.transport.JschConfigSessionFactory.createSession(JschConfigSessionFactory.java:308)
	at org.eclipse.jgit.transport.JschConfigSessionFactory.createSession(JschConfigSessionFactory.java:175)
	at org.eclipse.jgit.transport.JschConfigSessionFactory.getSession(JschConfigSessionFactory.java:105)
	... 258 more
Caused by: java.io.FileNotFoundException: /home/tools/.ssh/id_github_rsa (No such file or directory)
	at com.jcraft.jsch.Util.fromFile(Util.java:508)
	at com.jcraft.jsch.KeyPair.load(KeyPair.java:540)
	... 265 mor

After looking at how our CI has ssh setup, I noticed it was using an .ssh/config file, while I am not locally. My guess is that the CI server setup is doing something modern/fancy with .ssh/config and the outdated jsch lib that Gradle uses internally ends up thinking that /home/tools/.ssh/id_github_rsa - when it in fact, does not.
Updating the ssh lib to something more modern would likely solve this issue - something along the lines of https://github.com/gradle/gradle/issues/19028
Your Environment
Using Gradle 7.4
Issue occurred on both these VMs

OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n  7 Dec 2017
OpenSSH_8.6p1, LibreSSL 2.8.3 (MacOS)

Did not occur on my local MacOS 11.16.3

OpenSSH_8.1p1, LibreSSL 2.7.3

Hey @ZakTaccardi ,
8.7 nightlies have an updated JGit / SSH setup.
Could you try and see if it solves the issue?

Assuming it's addressed by 8.7.


"Sporadic" playing

I love lutebot 3.0, but every time I use it, after a few minutes it will break down. When I start a song, lutebot will only play sporadically - 2 seconds or so of music every 1-2 seconds, skipping over parts of the song. This is (usually) fixed - for some reason - when I exit out, right click the run file and hit 'troubleshoot compatibilty' and reopen lutebot. And as a side note - if I try to refresh the song, enter a new midi file or change keybinds during the times when its broken, it sends back an error, saying the path to the Profiles folder was blocked.
I don't know if this is something that I'm doing wrong, as I'm new to this, or if its the programs issue. Let me know if this is something you've encountered before, or if its something you've seen happen to people who didn't set it up correctly, or whatever. If you need screenshots or recordings of the problem, I can provide them.
Thank you!

Usually if there are problems accessing files it'll just crash, so this is a bit weird.
Running as administrator may work
But also make sure the folder and executable are not in a protected folder, like Program Files.  Documents, Downloads, etc are all fine.
Antivirus might be scanning the files constantly and having problems?  Or your HD may be full.  No idea, really


Cancel verification key being overwritten during external linking

When I login with an external provider (e.g. Facebook), I get two simultaneous emails--an "account created" email and an "account linked" email. My "account created" email has a link to cancel the verification. However, the verification key is no longer valid, since it's been overwritten by a new one from the account linking.

You can always customize those emails, and maybe just for that scenario (meaning logging in via external provider).

I'm not sure this will work. The "account created" event happens before the "linked account added" event. So there's no way to know if I should hide the cancel link in the "account created" email. Also, is there a way to include the verification key in the "linked account added" email? The verification key that's included in the UserAccountEvent object is the hashed value. Thanks.

Sorry, I misinterpreted the behavior I'm seeing. The problem isn't that the verification key is overwritten. It is in fact the correct verification key. The problem is that there is no way to delete the newly added account by clicking on the "Cancel request" link the "account created" email. This is because the "linked account added" event caused the LastLogin on the user record to be updated. So the user is no  longer considered a new account.

Ah ok... good catch. Do you have a suggestion on how to fix it?

Maybe you could re-implement the VerificationKeyPurpose value of "VerifyAccount." It's currently commented out in VerificationKeyPurpose.cs. You could delete the user record if IsAccountVerified is false and VerificationKeyPurpose is "VerifyAccount."  A side note to this is our company has "RequireAccountVerfication" set to false, so a user is immediately logged in. But it seems a little odd (bad?) that LastLogin on the user record isn't set, even though the user is actually logged in. It's not set until they log in a second time.

Or add a new column for "has logged in" (or "is new" or somesuch) that specifically tracks this scenario. I used to have this distinction a while back... and of course i forgot why i changed it.

But wouldn't a new "has logged in" column serve the same purpose as the LastLogin column being set to a non-null value? I guess we need to determine in what state the user record can be deleted via a cancel request. I could imagine a scenario where a user has never verified his email, has logged in a hundred times, but then goes back to his original "account created" email and attempts to cancel the request. Should his user record be deleted?

Yes, agreed. But given that I don't foresee making this change, I'll close this issue. Thanks.


Feature - add Kubecost CUR + Spot integration (incl. Cross-account)

Such that we can demo Kubecost w/ CUR + Spot, include these integrations as part of the kubecost installation values + relevant IAM & Bucket permissions that are required.
May require a second instantiation to configure the billing account + bucket for cross-account permissions.

Thanks for opening this feature request @jsamuel1!  I haven't looked too closely at this Kubecost integration.
Can you share a bit more how you see this integration happening?  Can you share links to documentation as well?
Let's do some scoping and brainstorming in this Issue and after we have a good idea of how to implement I'll start working on it.


"update = false" is more friendly

i believe it is not nessery to check update everytime, it take much more time

A good point, but it's not worth disabling it at all, I suspect I need to make it possible to check updates once a day/week/month.

I changed the behavior.
The check_updates parameter has been renamed to update_frequency and now include:

always - formerly true.
never - formerly false.
day - now by default.
week - optional.
month - optional.


Fullscreen transparent window is not transparent, distorted and non-functional.

Issues

If fullscreen and transparent flags are both set to true, the fullscreen window displayed is completely white and not transparent.
If the transparent flag is set to true and fullscreen flag is set to false, using specific allowed dimensions on the windows size (see #2170 ), a transparent window is displayed. Triggering this window to go fullscreen using F11 (Windows) key results in a distorted window with a portion transparent and a portion white. See image below.

Configuration

System: Windows 7 (x64)
Electron version: 0.29.1

Steps to reproduce

For issue 1, Use this app configuration with default_app:

var app = require('app');
var BrowserWindow = require('browser-window');

var mainWindow = null;

// Quit when all windows are closed.
app.on('window-all-closed', function() {
  app.quit();
});

app.on('ready', function() {
  mainWindow = new BrowserWindow({
    width: 800,
    height: 400,
    'auto-hide-menu-bar': true,
    'use-content-size': true,
    transparent: true,
    fullscreen:true,
    frame: false,
  });
  mainWindow.loadUrl('file://' + __dirname + '/index.html');
  mainWindow.focus();
});

For issue 2, use this app configuration with default_app and go fullscreen (F11 on Windows):

var app = require('app');
var BrowserWindow = require('browser-window');

var mainWindow = null;

// Quit when all windows are closed.
app.on('window-all-closed', function() {
  app.quit();
});

app.on('ready', function() {
  mainWindow = new BrowserWindow({
    width: 800,
    height: 400,
    'auto-hide-menu-bar': true,
    'use-content-size': true,
    transparent: true,
    fullscreen:false,
    frame: false,
  });
  mainWindow.loadUrl('file://' + __dirname + '/index.html');
  mainWindow.focus();
});

Can anybody confirm this issue on other platforms (Linux, Mac)? @delvedor, are you facing this issue on your Windows system?
What do you think? @zcbenz

I have this issue only on pc (Windows 7), the same code under Mac works.
The "funny" thing is that under a Virtualized Windows 7 (via Parallels) I have not this problem.

Do you have Aero disabled? There are many many bugs with transparent windows when it is disabled

@paulcbetts as I said in #2170:
In both Windows 7 machines I have DWM enabled and running (in fact, both are using aero).

@delvedor, I think this issue and issue #2170 are related to a common bug. Since both issues are happening on native windows installation, it is possible that it could be related to windows specific chromium issue.

I found something. Turns out it's related to the behavior of chromium with Windows. Check here, https://code.google.com/p/chromium/issues/detail?id=417947.
What do you think? @delvedor, @paulcbetts, @zcbenz

I'm merging this to #1690.


RR Lyrae example notebook

While we discuss offline about supporting too many demo notebooks like #59, I'm also opening this PR with the RR Lyrae example, just so it's logged somewhere. We can close this and #59 if we want to suggest these NBs elsewhere (jdat notebooks?) in the future.
~Waiting for: jdaviz 3.8~

Note: this notebook depends on the changes in https://github.com/spacetelescope/jdaviz/pull/2567, which has been merged but not released.

Closed in favor of https://github.com/kecnry/lcviz-demos/pull/3


Binarytree.java

Please read the NOTE FOR CONTRIBUTORS.md file, create issues and get your code assigned. Then I'll accept the code :)


This needs to be change!!!

Very important change necessary.

Another very important thing to change

Another very important thing to change


Dock stacks no longer persist

I'm not entirely sure what's happened, but whenever the dock is restarted the stacks are gone. This is on a new installation of Sierra.
Any ideas?

Nevermind, just blanket deleted my prefs for the Dock and started again.
defaults delete com.apple.dock; killall Dock

Okay, so one of the dock commands causes the Dock to forget its layout on restart. Not sure which yet.

Hmm, I can’t seem to reproduce this issue. Feel free to reopen with reproduction steps.


Update tool dep management

Objective
Fix tool dep management ala newrelic/newrelic-client-go#593

This was resolved with https://github.com/newrelic/tutone/commit/d6f6574cc2649d031076dfdd50305ea558ed1411


FIDO2 authentication

Would be a nice extension to this. I'm currently working on getting it to work on the server too, I already have creation and validation of credentials running in Blazor WASM, tested with fingerprint scanner but should use whatever the machine offers. I'll update here when I have the whole thing properly working, then we can check if it makes sense to integrate that (and probably make it nicer than whatever I'm building right now).

Sounds good to me.

Progress: https://blazor-webauthn.onrender.com/
Waiting on information about whether or not we put some of that into the Fido2 lib or even the compiler though (https://github.com/passwordless-lib/fido2-net-lib/issues/371)

I don't really know much about Fido but I'll see what I can find out to see if I can help. I got COVID so it's put a damper on my ability to be intelligent but I'm recovering.
What we can do is put this as an option when making the template. I think I know how to do that in the template.json

Can we add a whole db table and a few new files with that option? I never worked with templates. I'll try to make changes  as separated as possible.


left-sidebar: Make the background-color of unread_count consistent on…

After Change ->

@timabbott , @alya , the first commit here makes the required change for the issue #21358.

Cool, thanks! Could you:

Post the before/after screenshots next to each other?
Post screenshots for unmuted and muted streams, as discussed in the issue?

And also:

Post a screenshot of what it would look like if you made the stream counters match the topic counters, rather than the other way around? I'm not sure whether that might look better.

The screenshots should also demonstrate the unread counters in the top part of the left sidebar in the current version on main, to address this part of the issue: "and same as All messages and PMs"

Once we settle on a color, we should make sure unreads in the right sidebar match as well.

OK, so here we go ->
For STREAMS/TOPICS ->
Before ->

After ->

For All PMs and each Private message ->
Before ->

After ->

For unmuted and muted topics ->
Before ->

After ->

And the last work around ->
comparing by swaping the color vice-versa ->

I've ensured that this PR now changes the color of all unread count pills in dark theme to same color so as to maintain consistency.

@jai2201 could you please post an updated screenshot of the whole app window? Thanks!

Sure @alya  --

Also, I posted them here ->
https://chat.zulip.org/#narrow/stream/101-design/topic/unread.20pills.20in.20dark.20theme.20.2321374/near/1353704

Cool, thanks! I pulled down the PR and it looks fine to me. @amanagr would you be up for giving this a code review?

LGTM

@timabbott , Can you please take a look at it.

Merged, thanks @jai2201!


[Windows] Fix compilation errors of tvm_runtime_static.lib

Currently the tvm_runtime_static.lib target fails to compile on Windows with errors such as
Error C2491 '__gnu_h2f_ieee': definition of dllimport function not allowed tvm_runtime_static C:\Users\Administrator\Documents\tvm\src\runtime\builtin_fp16.cc 46

This PR fixes this issue.

I think we will still need sort @zhiics

The CI failure should not be related. We need to rebase against upstream.


Revert adding the datalake prefix for list path API in protocol layer…

…'s options.
Pull Request Checklist
Please leverage this checklist as a reminder to address commonly occurring feedback when submitting a pull request to make sure your PR can be reviewed quickly:
See the detailed list in the contributing guide.

[x] C++ Guidelines
[x] Doxygen docs
[x] Unit tests
[x] No unwanted commits/changes
[x] Descriptive title/description

[x] PR is single purpose
[x] Related issue listed

[x] Comments in source
[x] No typos
[x] Update changelog
[x] Not work-in-progress
[x] External references or docs updated
[x] Self review of PR done
[x] Any breaking changes?

/azp run cpp - storage

/azp run cpp - storage

What's the motivation of this change?

What's the motivation of this change?

What's the motivation of this change?

When generating the protocol layer I found the original change was done during find&replace and is not wanted.

What's the motivation of this change?

When generating the protocol layer I found the original change was done during find&replace and is not wanted.


Support for Port Expander

Just an idea: pin count of the raspi gpio port is very limited. The PCF8574 is a popular port expander with an I2C interface. It would be great if your homebridge plugin could forward this device. The config could then look like this:
{
"device": "light",
"name": "Light",
"gpio": {
"PCF8574": 0,
"port": 0
}
}
Where "PCF8574" defines the bus address (up to 8 PCF8574 devices can be addressed) and "port" defines the port number of the addressed PCF8574

Sorry, I have no experience with SPI and I don't have the port expander.


How to run tensorflow 2.4.0 on ARM Mac using Rosetta 2

Please make sure that this is a build/installation issue. As per our GitHub Policy, we only address code/doc bugs, performance issues, feature requests and build/installation issues on GitHub. tag:build_template
System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04): MacBook Pro Apple M1 chip, macOS Big Sur version 11.1
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device: N/A
TensorFlow installed from (source or binary): binary
TensorFlow version: 2.4.0
Python version: 3.8.2
Installed using virtualenv? pip? conda?: pip3
Bazel version (if compiling from source):
GCC/Compiler version (if compiling from source):
CUDA/cuDNN version: I don't know what that means
GPU model and memory: No GPU

Describe the problem
Python code import tensorflow leads to zsh: illegal hardware instruction  python3 and the Python Console stops. I would like to enter additional commands after importing tensorflow rather than the Python Console stopping.
Provide the exact sequence of commands / steps that you executed before running into the problem

Install Python 3.8 using homebrew in a Rosetta 2 terminal
In Rosetta 2 terminal:

which python3
/usr/bin/python3

Create virtual environment:
python3 -m venv /Users/daniel/TFTest/venv

Activate virtual environment
/Users/daniel/TFTest/venv/bin/activate

which python3
/Users/daniel/TFTest/venv/bin/python3

pip install --upgrade pip

pip3 install --upgrade tensorflow

python3
import tensorflow

gives output:
zsh: illegal hardware instruction  python3
Any other info / logs
Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached.
I am aware of this repository: https://github.com/apple/tensorflow_macos . But I would like to use tensorflow 2.4.0 rather than the experimental version from the Apple repository.

Not sure if this is obvious to others but it wasn't completely obvious to me: if you install Bazel (the regular x86-64 version for mac) and use it through Rosetta 2 to compile Tensorflow from source, then it will compile without the (unsupported by Rosetta 2) AVX instruction set. I'm currently able to run both Tensorflow 1.15.0 and Tensorflow 2.5.0 using this method. Hope this is of any help :)

Not sure if this is obvious to others but it wasn't completely obvious to me: if you install Bazel (the regular x86-64 version for mac) and use it through Rosetta 2 to compile Tensorflow from source, then it will compile without the (unsupported by Rosetta 2) AVX instruction set. I'm currently able to run both Tensorflow 1.15.0 and Tensorflow 2.5.0 using this method. Hope this is of any help :)

@isamilefchik  Thank you, your reply was very helpful and not obvious for me. Following the instruction at https://www.tensorflow.org/install/source#macos_1 together with the solution from the issue at https://github.com/tensorflow/tensorflow/issues/45434 allowed me to install tensorflow.

@isamilefchik  Thank you, your reply was very helpful and not obvious for me. Following the instruction at https://www.tensorflow.org/install/source#macos_1 together with the solution from the issue at https://github.com/tensorflow/tensorflow/issues/45434 allowed me to install tensorflow.

@danielplatt Happy to hear it!

@danielplatt Happy to hear it!

We currently cannot support Mac ARM. There is less than one developer than can focus on build issues on all 3 operating systems.
Hence, support has to come from the the community. There is SIG Build that focuses on build related issues on several other platforms, leaving us to only focus on the pip packages we officially bless.

We currently cannot support Mac ARM. There is less than one developer than can focus on build issues on all 3 operating systems.
Hence, support has to come from the the community. There is SIG Build that focuses on build related issues on several other platforms, leaving us to only focus on the pip packages we officially bless.

I want to confirm what @danielplatt  and @isamilefchik said about getting Tensorflow to work on rosetta. I did the following steps:

Build from source while running a terminal using rosetta
Updated the bash script that makes the .whl file #45434
I am pretty sure that I needed to rename the wheel to say 10_16 instead of 11_1, but hard to say if that was necessary.

This let me run the entire local keras tfx tutorial, which was my goal. I also was able to use tensorflow probability.

I want to confirm what @danielplatt  and @isamilefchik said about getting Tensorflow to work on rosetta. I did the following steps:

Build from source while running a terminal using rosetta
Updated the bash script that makes the .whl file #45434
I am pretty sure that I needed to rename the wheel to say 10_16 instead of 11_1, but hard to say if that was necessary.

This let me run the entire local keras tfx tutorial, which was my goal. I also was able to use tensorflow probability.

The sed issue is resolved by #46147. We will likely cherrypick this one on the 2.4 branch before doing a patch release.

The sed issue is resolved by #46147. We will likely cherrypick this one on the 2.4 branch before doing a patch release.

Could someone say how long it takes to build TensorFlow from source for M1 mac? I tried it, and it took a significant time.

As you can see, the screenshot (not even finished btw) was taking 1.8575 hours for just argmax_op.cc

Could someone say how long it takes to build TensorFlow from source for M1 mac? I tried it, and it took a significant time.

As you can see, the screenshot (not even finished btw) was taking 1.8575 hours for just argmax_op.cc

@ben-xD I think you're nearly finished

@ben-xD I think you're nearly finished

@ben-xD All I can say is that is was done when I came back to the computer after 5 hours.

@ben-xD All I can say is that is was done when I came back to the computer after 5 hours.

Unfortunately TF takes a long to compile on all operating systems. There are a lot of C++ templates to expand and a lot of code to optimize.

Unfortunately TF takes a long to compile on all operating systems. There are a lot of C++ templates to expand and a lot of code to optimize.

@easadler How did you get tf-probability running, did you also install from source?
More generally, would installing from source allow Numpy, Panada, Scipy, etc. to be used on Rosetta 2?

@ben-xD : mine took almost 3 hours to finish, on a M1 Mac
INFO: Elapsed time: 9644.520s, Critical Path: 450.54s
INFO: 19332 processes: 1088 internal, 18244 local.
INFO: Build completed successfully, 19332 total actions

I want to confirm what @danielplatt and @isamilefchik said about getting Tensorflow to work on rosetta. I did the following steps:

Build from source while running a terminal using rosetta
Updated the bash script that makes the .whl file #45434
I am pretty sure that I needed to rename the wheel to say 10_16 instead of 11_1, but hard to say if that was necessary.

This let me run the entire local keras tfx tutorial, which was my goal. I also was able to use tensorflow probability.

I can also install tensorflow that runs on Rosetta successfully following your steps, @easadler.
Especially, I have to rename the .whl file from 11_0 to 10_16 to pip it.
Thank you for sharing the guide 👍

Not sure if this is obvious to others but it wasn't completely obvious to me: if you install Bazel (the regular x86-64 version for mac) and use it through Rosetta 2 to compile Tensorflow from source, then it will compile without the (unsupported by Rosetta 2) AVX instruction set. I'm currently able to run both Tensorflow 1.15.0 and Tensorflow 2.5.0 using this method. Hope this is of any help :)

Hello, is there any way that you can give me a copy of your Tensorflow 1.15 whl? It crashes on me when I'm trying to build it from source.

@Eieyron Sure. Here's a link to both the wheels I built for 1.15.0 and 2.5.0:
https://drive.google.com/drive/folders/11cACNiynhi45br1aW3ub5oQ6SrDEQx4p?usp=sharing

These steps worked for me:
# 1.) I installed some brew packages before even installing python (notice that I am using Rosetta brew and not my default arm brew)
/usr/local/bin/brew install zlib
/usr/local/bin/brew install bzip2
/usr/local/bin/brew install sqlite
/usr/local/bin/brew install libiconv
/usr/local/bin/brew install libzip
/usr/local/bin/brew install xz

# 2.) install bazelisk and gsed
/usr/local/bin/brew install bazelisk
/usr/local/bin/brew install gnu-sed

# 3.) switch to your Rosetta python env (I use python 3.8.5 installed with rosetta-brew's pyenv)

# 4.) clone tf repo
git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow

# 5.) change sed to gsed here in ./bazel-bin/tensorflow/tools/pip_package/build_pip_package.sh (https://github.com/tensorflow/tensorflow/issues/45434#issuecomment-739635923)

# 6.) run configure and say No to gpu options
./configure

# 7.) build (this runs between 2 and 3 hours; 100% CPU all the time)
bazel build //tensorflow/tools/pip_package:build_pip_package

# 8.) create whl
./bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

# 9.) install tf via pip
pip install /tmp/tensorflow_pkg/tensorflow-2.5.0-cp38-cp38-macosx_11_0_x86_64.whl

Voila!

After following the above, I get:
ERROR: tensorflow-2.5.0-cp38-cp38-macosx_11_0_x86_64.whl is not a supported wheel on this platform.

on install. I am installing into an Anaconda env, so it should be Intel, so this error confuses me.

@fonnesbeck I couldn't figure out how to change the name of the wheel to make it work besides just renaming it to be version/machine agnostic. For example, I renamed my tensorflow 2.5.0 wheel to tensorflow-2.5.0-py3-none-any.whl and pip accepted it.

You can find detailed instructions regarding TF installation on Mac M1 using Rosetta here:
https://drive.google.com/drive/folders/1-d6aZNrlsJLFciJuVpo1-dXWptEMo22h?usp=sharing
Note that there is also a .whl file generated for TF 2.4.1 and Python 3.8.5. Enjoy!
(and thanks to the others that commented above me for outlining the solution!).

@d-dawg78 I get an "Access Denied" error message when clicking that link. Have you selected the right sharing settings?

@danielplatt Edited, does the link work now?

@Eieyron Sure. Here's a link to both the wheels I built for 1.15.0, 2.4.1, and 2.5.0:
https://drive.google.com/drive/folders/11cACNiynhi45br1aW3ub5oQ6SrDEQx4p?usp=sharing

@isamilefchik which version of python did you use for these wheels?

@ugoscaiella 3.7

Why is this even an issue any more, isn't there a native version available already? It simply requires Monterey to function.

Why is this even an issue any more, isn't there a native version available already? It simply requires Monterey to function.

Where is this native version for Monterey? Any links/documentation you can share, I've searched but can't find it?

This is available: https://developer.apple.com/metal/tensorflow-plugin/

Thanks, I knew about that hack, but it's not what I thought you meant by a native version being available.

Wait, so that thing Apple is describing there still requires Rosetta'd Intel TensorFlow?

As of 2.7.0 TensorFlow prebuilt binary still does not run on M1 mac. The x86_64 binary under rosetta 2 will crash due to illegal instructions.

This is possibly because it assumes that since all recent Intel Macs have AVX or AVX2, it's safe to use that instruction set without actually asking the CPU if it supports it. Rosetta 2 does not, and indicates as such with its cpuid results.

@Eieyron Sure. Here's a link to both the wheels I built for 1.15.0, 2.4.1, and 2.5.0:
https://drive.google.com/drive/folders/11cACNiynhi45br1aW3ub5oQ6SrDEQx4p?usp=sharing

Many thanks for sharing the wheels. I got the following error when I try to install the 2.5.0 version on macOS Monterey with an M1 Pro SoC (sharing only the last part of error stack trace as it's too long to be pasted here):
ERROR: Could not find a version that satisfies the requirement h5py~=3.1.0 (from tensorflow) (from versions: 2.2.1, 2.3.0b1, 2.3.0, 2.3.1, 2.4.0b1, 2.4.0, 2.5.0, 2.6.0, 2.7.0rc2, 2.7.0, 2.7.1, 2.8.0rc1, 2.8.0, 2.9.0rc1, 2.9.0, 2.10.0, 3.0.0rc1, 3.0.0, 3.1.0, 3.2.0, 3.2.1, 3.3.0, 3.4.0, 3.5.0, 3.6.0)
ERROR: No matching distribution found for h5py~=3.1.0

Leaving this here as it's the official docs for compilation... https://www.tensorflow.org/install/source

Is there a way to install Tensorflow 2.7.0 using Rosetta 2? On an M1 Mac and specifically need this version

@Eieyron Sure. Here's a link to both the wheels I built for 1.15.0, 2.4.1, and 2.5.0:
https://drive.google.com/drive/folders/11cACNiynhi45br1aW3ub5oQ6SrDEQx4p?usp=sharing

Thanks a lots.
BTW, I also tried to compile 1.15.5 on M1, and faced a lot of errors and deps problems,  i.e. bazel, numpy, etc.
So. I'd like to know how do you compile 1.15 on M1 and solve the related problems, could u please share some HOWTO instructions?

This is error i get
from tensorflow.python._pywrap_tensorflow_internal import *
ImportError: Python version mismatch: module was compiled for Python 3.7, but the interpreter version is incompatible: 3.8.15 (default, Oct 11 2022, 21:52:37)
Does anyone have binaries for 3.8.15


Update static and dns seeds for mainnet and testnet

~Mainnet static seeds are 10% of active MNs plus 100 MNs running behind Tor. Testnet static seeds are all currently enabled MNs.~
Seeds are generated using updated scripts and instructions now. Onion seeds are not hardcoded but listed in tor.md instead now with a note that they are hosted by one entity.
Dropping (test.)dnsseed.masternode.io dns seeds because they are down atm.

nACK, as discussed in Slack. The way MNs were selected is suboptimal. Instead, we should update makeseeds.py to work with protx list instead and then use that list. The advantage is that we can filter for MNs owned by the same people or hosted in the same location (ASN filtering).
Please see ab47413f63977c583ae4c2c407426eedac123efb and 8656a6b3cdf69a36f35277cf9d63a746a9651eaf

Ah, and the list in https://github.com/dashpay/dash/commit/8656a6b3cdf69a36f35277cf9d63a746a9651eaf can be easily verified by using the protx list from block 1185168. Running makeseeds.py and generate-seeds.py with the resulting protx list should result in exactly the same list of IPs.

I forgot to run generate-seeds.py, which I've done in 8656a6b3cd now

Rebased and reworked this using new script from #3235 with no manual intervention, tor nodes are in tor.md now. Updated PR description accordingly.


feat(build): Set up release workflow (#37)

Provide a release workflow and jrelease.yaml for automatic release builds.
relates to #37

Currently work in progress, a copy from the recipe repo.
The current changelog, it will have to be tweaked with labelers, categories and rewriters:
CHANGELOG.md

I would use this change as a starting point and would like to merge that. From then on, I could create a branch and operate on the branch to finalize the release workflow / configuration. In order to be able to do this, the workflow has once to be on master.

Sure, we really need to get this working to push the beta-2 release out. It has so many changes and improvements compared to beta-1 that the release of beta-2 should be a priority.

This should be a good starting point now.
@javahippie If you don't mind then I'll merge that.

platform:
  replacements:
    aarch_64: aarch64
``

Copied this from JReleaser's configuration. Not sure when this will become relevant, likely when we start shipping executable distributions, e.g. Operaton as executable for Mac via homebrew.
Quite sure that we do not need this ATM.

I'll work on the configuration anyway with the next steps. This is just the starting point.


Counting timer in alert

How can i display a counting label in alert? Like in Tinder, for example, when you exceeded your likes/superlikes limit

JSSAlertView, doesn't support this functionality you would have to modify the code.

I can make pr, if you want this functionality. It looks and works nice ;)

Sure, it would be awesome.


[Bug]: weird camera on certain stages

Tweaks version
outrun2006tweaks-1a4c22b4f8c6c5684c07a49fccc3d646a0889441
Describe your issue here (please attach the OutRun2006Tweaks.log file with your report, you can drag+drop it into the text area)

OutRun2006Tweaks.log
I've played a round of reverse 15c on time attack mode and this happens when entering giant statues stage.

also if you get some misses on some of the stages, the camera weirdly jitters, or facing on the wrong angle.
Uploading 屏幕录制 2024-08-04 151416~1.mp4…

You got the Shuttle in the Giant Statues stage ahah.

This didn't happen with me when I tried it just now, so whatever caused it doesn't seem to be consistent.


Add support to fully ignore links, issue #54

This PR adds support to fully ignore links (i.e. prevent walking through them), as opposed to the existing "exclude links" functionality, which doesn't draw the links but walks them anyway.

looks good, thanks 👌


Delete "stable" branch after 0.15.0 release (Oct 2020)

Leaving this as a reminder. We created a "stable" branch last week to update the stable docs with the new style/footer ahead of releasing. We won't need that in place anymore once the release goes out.

I did this last week!


Take it button

Down by the assignment section, we need a small "take it" checkbox that is default on.   What this would do is that ---IF-- i do not choose to assign the case to someone else, then by default the case would be assigned to me when i click on a status button.
This will eliminate a few pesky extra clicks.

Current Implementation: By default if no agent is assigned to a ticket and you reply to the ticket it will by default assign you to the ticket on reply.


Provide visual feedback if entered API address is up/down/invalid

This should be a quick win:
Reuse animation from  "Add connection" on Peers screen for newly added "API address" section on Settings screen
Namely:

red border when value is not a valid JSON/Multiaddr/URL
green when valid
cube animation when connecting

red border + orange error message if failed to connect
switch to status page if connection was successful

Yes please 😊

User will be entering API address either on Status or Settings screen, so cube animation on entire screen should be enough (Settings screen already hides config when connection is down).

Displaying the cube just inside the component is a little inconsistent visually - let's use the entire screen, with a white screen behind the cube in the same manner as how it slightly whites out the "add peer" modal.
I'm going to put this in the 2.12 milestone and the "Quick Fixes" column for now.


switch to using pygame.mixer instead of playsound

also make playing of sounds non-blocking, to make undo more reasonable


Add codegen name for seq_no in GetResponse

As titled.

Closing as agreed during the type spec meeting.


Add new features from v<IP_ADDRESS>

Work in progress, I'll release v<IP_ADDRESS> docs when this is done.

This is more or less done, I'll give it one more review in the next days and then release the new version.


Best practice for global theme and shared component

With the objective in mind to reduce style duplication, I curious to see what people do for global theming.
Objectif of this task :

Identify style duplication in the mockup consider complete in the figma.
Reuse the style in at least two components / page

We could explore a tool such as tailwind for the project and setup some styling rules! 👍
There should be an NX integration to setup the initial config! 😄

nx tailwind
Although it is for react, it could be compatible for react-native!