Scrolling toolbox upwards through dragging is broken

Expected Behavior
When dragging on the background of the toolbox, it is expected that the toolbox properly scrolls up and down.
Actual Behavior
Scrolling down works fine. But once the toolbox is scrolled down, it can no longer be scrolled up (by dragging on the background). Additionally, the scrolling behavior gets wonky in general and its hard to navigate the toolbox by the user.
Steps to Reproduce
We can reproduce this in the vertical playground on develop:

Checkout develop branch
Open the vertical playground
Start a drag operation on the toolbox: click-down on any empty space in the toolbox and drag the mouse down -> toolbox will properly scroll downwards. Scroll all the way down and release.
Now we will want to perform the same operation and simply drag back up. So: click on any empty space in the toolbox, drag upwards -> nothing happens! BUG
Additionally, at this point these operations, dragging the toolbox to scroll it become very wonky.

This bug got introduced with this commit: https://github.com/LLK/scratch-blocks/commit/06fa507dbbb989df09e7f18b8dfed475d8af664d. It is the 1st commit on which this bug occurs, any previous SHA's on develop do not have this bug. Any way to tag user bigeyex on this here?
Operating System and Browser
Mac OS, both on Safari and Chrome

@bigeyex
@thisandagain I would recommend reverting that commit for now.

Hmm, interesting. Sorry for introducing this bug.
I proposed another solution in pr874,
using the scrollTop instead of viewTop when calculating scrollbar position when dragging.
This will solve the "nudge a little when refreshing" without introducing new scroll problems.
How about that? Return what belongs to Caesar back to Caesar...

Thanks for reporting @MichaelZawadzki and thanks for the quick turnaround on a patch @bigeyex.
@rschamp do you mind taking a look at this today? I am also able to reproduce the issue by attempting to scroll the blocks palette using two finger (drag) scroll on a MacBook Pro.

Fixed in #874

Yup seems fixed now (even with that original offending line in there). So looks good from a quick test. We'll report if we see any issues as we use/test more with the latest version. Thanks!


Make the GUI translatable to more languages

A lot of the people helping out to make this great program are native English speakers, but lets say a user in Sweden can't read English as good as they read Swedish and the program's GUI is seen in English and there's no way to change to Swedish because it doesn't exist or any other language for that matter.
As a solution I'd like to see that this program uses Weblate to sync translations when people save the changes.
There are no known solutions to my knowledge.

Ping! Is the setup for this extremely hard? I'm not angry, but rather eager to help start translating it. :)


Add filtering option that only shows non-public methods

I lost interest in this project a long time ago, mostly due to the limitations of its implementation. Today I added a note that this project is no longer maintained to its documentation and closed all open tickets. Feel free to continue to work on this in a fork.


MSID: 91611 Version: 2 DOI: 10.1101/2<IP_ADDRESS>5634

MSID: 91611
Version: 2
Preprint DOI: https://doi.org/10.1101/2<IP_ADDRESS>5634
Step 1. Awaiting reviews
Editorial to post reviews via hypothesis
Useful links:

DocMap: https://data-hub-api.elifesciences.org/enhanced-preprints/docmaps/v2/by-publisher/elife/get-by-manuscript-id?manuscript_id=91611
New model tracking: https://docs.google.com/spreadsheets/d/1_fHaoOy7hjyocptKtVJRijeNpUY4hBS7Ck_aVmx6ZJk/
Reviews on sciety: https://sciety.org/articles/activity/10.1101/2<IP_ADDRESS>5634

For trouble shooting (e.g. no Docmaps available):

DocMap issue addressing: https://miro.com/app/board/uXjVNCwK6EI=/
Explore DataHub DocMaps API: https://lookerstudio.google.com/reporting/4c2f0368-babb-4beb-b5b3-497e7e7b0f08/page/ejphD
Unmatched submissions and preprints: https://lookerstudio.google.com/u/0/reporting/9f86204f-3bf7-477c-9b18-5c5ef141bf69/page/p_gxi57ha93c
Unmatched manuscripts spreadsheet: https://docs.google.com/spreadsheets/d/15QcK8w-ssB7109RQEDtFpJPZ0J5HTGxoHa_2TtpMBbg/edit#gid=1336081641

Step 2. Preview reviewed preprint
Production QC content ahead of publication
Instructions:

QC preview: https://prod--epp.elifesciences.org/previews/91611v2
Update ticket with any problems (add blocked label)
When QC OK, add QC OK label to ticket and add publication date and time to https://docs.google.com/spreadsheets/d/1amAlKvdLcaDp5W8Z8g77NmkwbMF5n_u89ArSqPMO8jg
Move card to next column
(At end of the day post link in #enhanced-preprint and ask for PDF to be generated)

Useful links:

Preprint DOI :  https://doi.org/10.1101/2<IP_ADDRESS>5634
Confirm reviews returned by EPP: https://prod--epp.elifesciences.org/api/reviewed-preprints/91611/v2/reviews
To update the MECA path in the docmap: https://docs.google.com/spreadsheets/d/1mctCQuNFBjSn97Lihy7_vBO6z7-N-oqyLv4clyi6zHg

Step 3: Awaiting search reindex
This step adds the reviewed preprint to the homepage: https://elifesciences.org
The search reindex is triggered once an hour. We need the reviewed preprint to be indexed as the search application serves the journal homepage.
Useful links:

Jenkins pipeline to reindex search can be triggered sooner or monitored here: https://alfred.elifesciences.org/job/process/job/process-reindex-reviewed-preprints/

Step 4: Published! PDF requested
Waiting for PDF to be generated
Useful links:

PDF tracking: https://docs.google.com/spreadsheets/d/106_XeDjmuBae7gexOTNzg60lapeqjl2aRn9DzupGyS8/

Step 5: Introduce PDF to data folder and git repo
Upload PDF to relevent folder in git repo https://github.com/elifesciences/enhanced-preprints-data/
Step 6: Done!

[ ] Kettle is on!

Thanks Fred, I have fixed this one.
On Wed, 3 Apr 2024 at 09:30, Fred Atherden @.***> wrote:

Assigned #3219
https://github.com/elifesciences/enhanced-preprints-import/issues/3219
to @FionaBryant https://github.com/FionaBryant.
—
Reply to this email directly, view it on GitHub
https://github.com/elifesciences/enhanced-preprints-import/issues/3219#event-12337520581,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ARMNBZCP4U2NGZ3PJPILJBLY3O433AVCNFSM6AAAAABE2TOI7GVHI2DSMVQWIX3LMV45UABCJFZXG5LFIV3GK3TUJZXXI2LGNFRWC5DJN5XDWMJSGMZTONJSGA2TQMI
.
You are receiving this because you were assigned.Message ID:
<elifesciences/enhanced-preprints-import/issue/3219/issue_event/12337520581
@github.com>

--
Fiona Bryant
Senior Editorial Assistant, eLife
--
elifesciences.org https://elifesciences.org
eLife Sciences
Publications, Ltd is a limited liability non-profit non-stock corporation
incorporated in the State of Delaware, USA, with company number 5030732,
and is registered in the UK with company number FC030576 and branch number
BR015634 at the address Westbrook Centre, Milton Road, Cambridge, CB4 1YG.

Thanks!


Docker option in installation does not work

https://github.com/threefoldtech/jumpscaleX/blob/master/docs/Installation/install.md
Using the installation guide python3 /tmp/install.py -3 -y -c fails. I didn't dig deeper, but it seems that even if you're using the development branch, it still clones development_type inside the docker even though I can see in the code that the default branch is development.

it works now.

It turns out that regardless of the branch and repo location you link the installer from on your host, it clones the repos needed in /root/code/. And apparently I already had repos cloned there but they were checked out on development_types. It seems that if the installer finds the repos, it doesnt checkout the correct branch.

OK, will check it

working on ubuntu docker installer

Changelog:  https://github.com/threefoldtech/jumpscaleX/commit/fc1272281bb3f9f62cb35791c202dd258ceade6d

[Fix] install docker with a specified branch. -default: 'development'-
[Fix] install docker with a code exists under installation path.

Changelog: https://github.com/threefoldtech/jumpscaleX/commit/5652544448e5a7bd3ad95ce96e43a452f82afc80

[Fix] add branch checker to avoid checkout if installation branch is the current one, to avoid uncommitted changes loss

There are two scenarios:
1- No jumpscaleX found under installation dir:

Will clone jsx with selected branch (default: development) and install from it.

2- jumpscaleX found under installation dir:

Install from same branch:

Will install jsx from existing code.

Install from other branch:

Will stash the existing code, checkout to selected branch, update it to latest commit then install from it.

Verified

the installer with option in docker and with all other options , consider that pip3 is already installed and didn't install it neither in install.py nor InstallTools.py
stderr:
    /tmp/jumpscale/scripts/46033.sh: line 4: pip3: command not found

CANNOT CONTINUE

can't reproduce it , so i'll close it again , will open it if i found this error again


Round constraint in optimizer

Hi - Given a decision variable x, I was wondering if I could impose the following type of constraint:
(|x| / v) >= round(to nearest 100)
where v is a vector of same size as x.
I am trying to round the LHS to the nearest 100 amounts. Thank you.

You may add 50 (half of 100) to your variable and use a slightly modified floor as shown here with an integer variable.


Timber excerpt does not strip content of

Expected behavior
Given a post with the content:
[gallery ids="1,2,3"] Hello world!
I'd expect the following excerpt to be generated by get_preview():
Hello world! or perhaps Caption for attachment #1 ... Hello world!
Actual behavior
Excerpt contains a bunch of CSS selectors:
.gallery { margin: 1em 0 0 -.5em; overflow: hidden; ...
Steps to reproduce behavior
Create a post that begins with a shortcode that outputs CSS before HTML. In my case, the [gallery] shortcode returns a Twig template like this:
<style>
.gallery {
  margin: 1em 0 0 -.5em;
  overflow: hidden;
}
.gallery__item {
  margin: 0;
  ...
}
</style>
<section class="gallery">
...
</section>

Timber strips tags in excerpts, which is great, but it doesn't distinguish between tags that contain content (e.g. <p>, <a>, <h2>) and <style> or <script> tags. In this case, it strips the wrapping <style> but includes its content in the excerpt.
What version of WordPress, PHP and Timber are you using?
WordPress 4.7.2, PHP 7.0, Timber 1.2.3
How did you install Timber? (for example, from GitHub, Composer/Packagist, WP.org?)
Via WP.org as a plugin.

@pranksinatra — good news! I made a fix for this in #1339. I'll push it out in the next version!

Just a heads up that this is now fixed in the PostPreview, but not in the Post->get_preview() function.

@pranksinatra thanks for that heads-up. I should have deprecated get_preview a while ago. I've added that note now (but have also applied the fix since I know it's used in plenty of places)


add cscope/vim key mappings

Signed-off-by: Luc Ma<EMAIL_ADDRESS>

Hi @lucmann

Is there a demo I can see of how this could be used?
Could you extend README.me with these keybindings
Could you pick another key combination than CTRL-\ (this would be very hard to type on e.g. Germanic keyboards, like the Danish)

Thanks!


Error: STEAM_ACCOUNT_NAME must be set in the environment

Hello. I'm trying to create a TF2 trading bot following the tf2autobot instructions but I keep getting this message every time I try to start up the bot.
$ node dist/app.js
C:\Users\snowd\OneDrive\Desktop\Trading Bot\tf2autobot\dist\classes\Options.js:1
215
throw new Error('STEAM_ACCOUNT_NAME must be set in the environment');
^
Error: STEAM_ACCOUNT_NAME must be set in the environment
at Object.loadOptions (C:\Users\snowd\OneDrive\Desktop\Trading Bot\tf2autobo
t\dist\classes\Options.js:1215:15)
at Object. (C:\Users\snowd\OneDrive\Desktop\Trading Bot\tf2autobo
t\dist\app.js:45:27)
at Module._compile (internal/modules/cjs/loader.js:1085:14)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
at Module.load (internal/modules/cjs/loader.js:950:32)
at Function.Module._load (internal/modules/cjs/loader.js:790:12)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js
:76:12)
at internal/main/run_main_module.js:17:47

I most certainly added my steam bot username exactly as it is spelled in the .env file where it says STEAM_ACCOUNT_NAME, so I have no idea what else it could be. I also noticed that a lot of the java scripts are giving me syntax errors whenever I click on them out of curiosity. This is all really new to me but I'm sure I can figure it out if someone could give me some help. If someone could possibly give me a walkthrough or an explanation of how to fix the problem, I would really appreciate it. Any other details that I could provide just let me know. :)

Hello, this is a common error. Kindly read the solution here: https://github.com/TF2Autobot/tf2autobot/wiki/Common-Errors#startup-errors

If you need any further help, join our Discord server and ask in #help channel.


Zwave config parameters not updating

Make sure you are running the latest version of Home Assistant before reporting an issue.
You should only file an issue if you found a bug. Feature and enhancement requests should go in the Feature Requests section of our community forum:
Home Assistant release (hass --version):
0.62.0
Python release (python3 --version):
Python 3.6.3
Component/platform:
Zwave
Description of problem:
When trying to change config parameters using both the Zwave control panel and zwave services the update fails to apply and reverts back to previous values.
Expected:
Config parameters to update to new specified value.
Additional info:
2018-01-29 17:49:06.629 Info, mgr,     Refreshing node 12: COMMAND_CLASS_SWITCH_MULTILEVEL index = 0 instance = 1 (to confirm a reported change)
2018-01-29 17:49:06.630 Detail, Node012, Queuing (Send) SwitchMultilevelCmd_Get (Node=12): 0x01, 0x09, 0x00, 0x13, 0x0c, 0x02, 0x26, 0x02, 0x25, 0x95, 0x7f
2018-01-29 17:49:06.630 Detail,
2018-01-29 17:49:06.630 Info, Node012, Sending (Send) message (Callback ID=0x95, Expected Reply=0x04) - SwitchMultilevelCmd_Get (Node=12): 0x01, 0x09, 0x00, 0x13, 0x0c, 0x02, 0x26, 0x02, 0x25, 0x95, 0x7f
2018-01-29 17:49:06.638 Detail, Node012,   Received: 0x01, 0x04, 0x01, 0x13, 0x01, 0xe8
2018-01-29 17:49:06.638 Detail, Node012,   ZW_SEND_DATA delivered to Z-Wave stack
2018-01-29 17:49:06.678 Detail, Node012,   Received: 0x01, 0x05, 0x00, 0x13, 0x95, 0x00, 0x7c
2018-01-29 17:49:06.678 Detail, Node012,   ZW_SEND_DATA Request with callback ID 0x95 received (expected 0x95)
2018-01-29 17:49:06.679 Info, Node012, Request RTT 48 Average Request RTT 54
2018-01-29 17:49:06.679 Detail,   Expected callbackId was received
2018-01-29 17:49:06.755 Detail, Node012,   Received: 0x01, 0x09, 0x00, 0x04, 0x00, 0x0c, 0x03, 0x26, 0x03, 0x1f, 0xc7
2018-01-29 17:49:06.755 Detail,
2018-01-29 17:49:06.755 Info, Node012, Response RTT 124 Average Response RTT 127
2018-01-29 17:49:06.755 Info, Node012, Received SwitchMultiLevel report: level=31
2018-01-29 17:49:06.755 Detail, Node012, Refreshed Value: old value=31, new value=31, type=byte
2018-01-29 17:49:06.755 Detail, Node012, Changes to this value are not verified
2018-01-29 17:49:06.755 Detail, Node012,   Expected reply and command class was received
2018-01-29 17:49:06.756 Detail, Node012,   Message transaction complete
2018-01-29 17:49:06.756 Detail,
2018-01-29 17:49:06.756 Detail, Node012, Removing current message
2018-01-29 17:49:06.756 Detail, Node012, Notification: ValueChanged

The log you provide does not show any attempt of setting a config parameter. Could you try again, and provide a snippet from both homeassistant.log and ozw_log.txt from the attempt?


HSEARCH-3103 Sorts on multi-valued fields

https://hibernate.atlassian.net/browse/HSEARCH-3103
Based on #2243, which should be merged first.
This supersedes #2224. I kept the core of the original solution by @wklaczynski , with the following additions:

Rewrote the tests:

They can now be run from the commandline: they used to only work when run from within the IDE)
They actually test the feature: they used to always pass, because we expected the documents to be returned in the exact order they were indexed, which is what happens when the sort doesn't do anything at all... and incidentally, that's exactly the case we were in, because a small bug in the implementation.
They test all field types (not just integer/long/double/float).

Fixed several bugs in the implementation that I noticed thanks to the tests
Added more explicit error messages in some edge cases (attempt to sort on a median of a field in a nested document, to sort on the sum of a temporal field, ...)
Changed the default sort mode from "always MIN" to "MIN for ascending sort, MAX for descending sort", to match Elasticsearch's behavior.
Implemented sorts on multi-valued string fields
Implemented distance sorts on multi-valued geo-point fields
Documented the feature

Thanks. I addressed your comments and force-pushed. I will merge after we merge #2229 , because I expect some conflicts.

Rebased on master just now and started a build for all supported environments: https://ci.hibernate.org/job/hibernate-search/job/PR-2244/9/

... and there's a bug in ES 5.6. I disabled some tests for ES 5.6. Second attempt: https://ci.hibernate.org/job/hibernate-search/job/PR-2244/11/


register

@JuliaRegistrator register()

Registration pull request created: JuliaRegistries/General/77598
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.1.0 -m "<description of version>" 8d4ac5d513e7c72a7b0f02c3852c1d7349f72f77
git push origin v0.1.0

@JuliaRegistrator register()

Registration pull request updated: JuliaRegistries/General/77598
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.1.0 -m "<description of version>" b8aef4a1ee46698baba7ed4807dd4d86254fdb0f
git push origin v0.1.0

@JuliaRegistrator register()

Registration pull request updated: JuliaRegistries/General/77598
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.1.0 -m "<description of version>" c339e1d4ab11fc48ed4bf65ea602b2d838f68207
git push origin v0.1.0

@JuliaRegistrator register()

Registration pull request updated: JuliaRegistries/General/77598
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.1.0 -m "<description of version>" a43f8491214d53417b05011f9a1441558525a003
git push origin v0.1.0


Feature/add jenkinsfile

Credential Scan and Junit test of pipeline

Have you tested this change?

Yes. All the changes were tested and are running successfully


Add name attribute to CUDAUFuncDispatcher and test case

This pull request addresses issue 8272: https://github.com/numba/numba/issues/8272.

gpuci run tests

@gmarkall I added a new PR for the GUFunc failure: https://github.com/numba/numba/pull/8320


[RFC] Reverse SPI bus numbering on 5xx

Hi @arfoll (as the author of that piece of code), @propanu and @whbruce (as co-maintainers) - in the 5xx board file we configure SPI buses in the order of increasing OS bus number. Is there any specific reasoning behind this scheme? My proposal would be to reverse the numbering.
Reasoning
Given the fact that this platform uses dynamic bus numbering and in such case the OS starts numbering from max and counts downwards, the resulting mraa bus numbers are basically the reverse of what one would expect looking at 5xx pin mapping documents.
E.g. pins marked as SPI1* in the document, belong to mraa's bus number 0 (because it has lower OS number - 32765) and SPI0* - to mraa bus number 1 (OS: 32766). I think I've seen some posts from folks confused by this on Intel 5xx forums (though our docs clearly map board pin numbers to mraa bus number, that I give us :)
In addition, per the same document, SPI0 has three chip/slave selects routed to Expansion board headers (0, 1, 2), while we have only 0 in the config. I propose to add those into our config too.
What do you (or anyone else reading this and interested) think about that?

@alext-mkrs I agree with the change. In fact, I've also suggested reordering the I2C buses to match the documentation with my #667 PR. I don't mind handling this when I rebase that PR to address @arfoll's comments.

In mraa a 'spi' object usually refers to a SPI bus + hardware CS. So generally naming Spi bus 0 '0' doesn't work since really you'd have numerous busses. So I took the approach to just name them as they turned up on the board based on whichever bus + CS (or FS on the datasheet - anyone know the diff between CS/FS/SS?). So that's why bus 1 is mraa bus 0 and not because of the kernel ordering (that just seems to match accidentally more than anything else).
It's not perfect by any means but otherwise you'd make SPI bus 1 actually 2 because you have SPI bus 0 has 2 FS pins (that actually worked at the time, if the others work then let's add them), I suspect changing it to do this would just generate more confusion and you'd still not achieve the 1:1 mapping users would expect.

So you're saying having:

MRAA Bus
SPI Bus

0
SPI0.0

1
SPI0.1

2
SPI0.2

3
SPI1.0

4
SPI1.1

Will be just as confusing, however at least SPI0.0 will really be bus 0. @arfoll I think CS/FS/SS are just different naming conventions for the same pin, functionality wise they "should" be similar but since it's not standardized, devices have a bit of flexibility as to how they use it.

Yeah, I'd be in favor of rehauling it, still - that will bring us in line with docs, at least conceptually (mraa bus numbers will increase with spec's ones). As for bus/chip select combinations being a "bus" - which is a good catch - I think we could just add that to docs, with examples. I can do that, along with double-checking whether those other CS pins really work per the spec. But just to make sure, @propanu, you said you want to implement this, along with I2C changes?
AFAIK, CS is Chip Select, SS is Slave Select (typically found in SPI bus markings) and FS is Frame Sync - this one is from I2S, which is frequently implemented in HW by the same high-speed generic serial devices as SPI (e.g. Edison has it like that) and has the same 4-wire scheme.

@alext-mkrs, let me know which ones work correctly and I'll map them as listed in the table when I rebase that PR (hope to get to it this week).

Yeah actually that's nice. If we can map them like this (and they actually work - this point I'm pretty unsure ;-)) I'm happy to have that change.
@alext-mkrs will have to read more about FS/frame sync, thanks for the info!

@arfoll, my pleasure :)
Ok, agreed then - I'll check those buses/chip selects out and post results here.

All right, I've tested all available CSes and all work fine (with proper pull-ups and spidev binding config).
As long as I anyway had to make code modifications to test this and I also make docs on SPI a bit more clear, I'm submitting this as a PR right away, @Propanu thanks for offering to do that in any case.

That's fine by me. Btw, what exactly do you mean by spidev binding config? Can you export a bus config from user space without patching the kernel (rebuilding ref-os-iot)?

Not from user space, unfortunately - I did some research on that while invetigating #753 and there seems to be no way for that. There was some proposal on LKML, which wasn't accepted due to limited usefulness. Other than that, the API used is kernel-level, so is not usable from userspace.
But you don't really need to rebuild the whole OS image for that - it's possible to build a kernel module, which will do just that, I've built one for me while working on this PR, based on Soletta's - but I've expanded it to work for several devices supplied as an array. We'll see what Ref-OS-IoT folks decide on this one (I've reported my findings to them in https://github.com/01org/ref-os-iot/issues/2 and also internally via email), if my one is going to be useful, I'll publish it on GH.
Another alternative is to use ACPI/DT config, which gets picked up by spidev by default (though you need to use specific device IDs, which is not always useful).


Add doc for types of recipes

To help people understand what the different types are. The intention is to add a more dedicated Refaster guide after this and then link to it from this doc.

@timtebeek @knutwannheden I think I addressed your feedback. If you could take a look and let me know again when you have a sec, I'd appreciate it ^_^


Add a list of well-known vocabularies to "Add model" button

When adding new external vocabulary through:

It could be a quick win to add a few buttons pre-filling well-known vocabulary IRIs (with CORS support) at least for the demo in this dialog:

I suggest to add these (used in the demo):

RDF
RDFS
Dublin Core Terms
FOAF
SKOS

Alternatively, they could be added directly next to the "model" button in CME, since we have "sgov" there.

The tab names now do not fit the contents - the first two seem to be switched:

In addition, I would change the terminology a bit:

"model" => "vocabulary" (model is an internal term)
"select model to import" => "well-known vocabularies"
"Import from URL" => Vocabulary from URL
"Create a new local model" => "Crate new vocabulary"

etc.

Just a minor:

vocabularies


Budget Calculator

This calculator helps to calculate budget. It has following features:

It has option of adding income and expenditure both along with their description.
It will be responsive.
User can delete particular income or expenditure.
User can edit particular income or expenditure.
Shows total balance
Retains the date of income and expenditure as well.

Please assign this issue to me under JWOC.

@S-ishita Go for it.

Please increase the difficulty level , it has many additional features...


"quiet" package option can not be override

Pre-flight checklist

[X] I have read the contribution documentation for this project.
[X] I agree to follow the code of conduct that this project uses.
[X] I have searched the issue tracker for a bug that matches the one I want to file, without success.

Electron Forge version
7.2.0
Electron version
28.2.3
Operating system
macOS 14.3.1
Last known working Electron Forge version
No response
Expected behavior
I'd like the packagerConfig.quiet to be default to true, or at least to let me change it's value.
Actually it's "locked" by the following lines :
https://github.com/electron/forge/blob/3c5bf3d5cf1f35988a95b1e2ccde4bb9af06b3a8/packages/api/core/src/api/package.ts#L305-L317
(both lines 305 and 317 do force the value to false after the custom user configuration).
Actual behavior
When trying to sign the app, I got issues that I could not debug without having to go deep into the code and console.log things
I used both DEBUG=electron-osx-sign* and DEBUG=electron-notarize*, but I still struggled at some point (see below).
Steps to reproduce
I do not know if you can reproduce this, but I can show the deep dive I had to do (quick version).
For the record, with the same configuration, I had no issue on a mac "x64".
When trying to sign and notarize a mac app, when running yarn make, I got the following output
[STARTED] Packaging for arm64 on darwin
[STARTED] Copying files
[SUCCESS] Copying files
[STARTED] Preparing native dependencies
[TITLE] Preparing native dependencies
[SUCCESS] Preparing native dependencies
[STARTED] Finalizing package
2024-03-17T20:11:59.644Z electron-osx-sign<EMAIL_ADDRESS>2024-03-17T20:11:59.645Z electron-osx-sign `identity` passed in arguments.
2024-03-17T20:11:59.645Z electron-osx-sign Executing... security find-identity -v
[FAILED] Failed to codesign your application with code: 1
[FAILED]
[FAILED] Tiana Tables.app: code has no resources but signature indicates they must be present
[FAILED]
[FAILED]

By running with DEBUG=electron-osx-sign*, the last log I got was  Walking... from https://github.com/electron/osx-sign/blob/97b1e13b9a6de43a5add8dccf609ac10a780b1e8/src/util.ts#L136
I tried adding a line just bellow and nothing was displayed.
I added a try / catch, and then I got an issue displayed with EMFILE: too many open files (but that's not the point of this issue).
By going up with this, I found that all error send in the signApp, will be throwned to the caller (as mentioned in the documentation).
I then went into the packager package, that does call signApp here where there is a continueOnError option
https://github.com/electron/packager/blob/d5cd2b7dcd8e85c1c1bdcdd3c4e77edc9ac729f2/src/mac.ts#L404-L414
I tried to add this option into my osxSign option, but TypeScript does throw with

Object literal may only specify known properties, and 'continueOnError' does not exist in type 'OsxSignOptions'.ts(2353)

I continue to dive as I did not saw neither the error, nor the warning message "Code sign failed; please retry manually"
In the warning function, we do nothing when the quiet option is true : https://github.com/electron/packager/blob/d5cd2b7dcd8e85c1c1bdcdd3c4e77edc9ac729f2/src/common.ts#L30
I tried to set the quiet option in my packagerConfig object. TypeScript is OK with this, still no log.

As I said in the "Expected behavior" section, it's locked here https://github.com/electron/forge/blob/3c5bf3d5cf1f35988a95b1e2ccde4bb9af06b3a8/packages/api/core/src/api/package.ts#L305-L317
Additional information
I would like your input about if this is intended, if I could open a PR that either allow "quiet" to be changed, or if "true" should be the default value (or both).
For the record, the quiet option has been added in https://github.com/electron/forge/pull/8 by @malept 8 years ago.

I also agree that this should have been an optional parameter that could have been set by the config. I dealt with a lot of issues that I had no starting point for, only seeing this issue let me create a shim to override it. This would have saved me a lot of time.  I also don't understand the decision to have Continue on error forced on Osx sign then to continue onto OSx-notarize. You will NEVER be able to notarize a package with a failed codesign output, and in my opinion it should just throw an error there.


Cog predict on WSL - Endless health-check 404 not found

When running a basic prediction with docker (4.26.1) via WSL, I get this endless hang...
$ docker image inspect r8.im/replicate/hello-world@sha256:5c7d5dc6dd8bf75c1acaa8565735e7986bc5b66206b55cca93cb72c9bf15ccaa
$ docker image inspect r8.im/replicate/hello-world@sha256:5c7d5dc6dd8bf75c1acaa8565735e7986bc5b66206b55cca93cb72c9bf15ccaa

Starting Docker image r8.im/replicate/hello-world@sha256:5c7d5dc6dd8bf75c1acaa8565735e7986bc5b66206b55cca93cb72c9bf15ccaa and running setup()...
$ docker run --rm --shm-size 8G --detach --env COG_LOG_LEVEL=debug --publish 0:5000 r8.im/replicate/hello-world@sha256:5c7d5dc6dd8bf75c1acaa8565735e7986bc5b66206b55cca93cb72c9bf15ccaa
INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://<IP_ADDRESS>:5000 (Press CTRL+C to quit)
INFO:     <IP_ADDRESS>:47688 - "GET /health-check HTTP/1.1" 404 Not Found
INFO:     <IP_ADDRESS>:47718 - "GET /health-check HTTP/1.1" 404 Not Found
INFO:     <IP_ADDRESS>:47748 - "GET /health-check HTTP/1.1" 404 Not Found
INFO:     <IP_ADDRESS>:47770 - "GET /health-check HTTP/1.1" 404 Not Found
INFO:     <IP_ADDRESS>:47778 - "GET /health-check HTTP/1.1" 404 Not Found```

Seems like you might have a conflict between Docker and WSL2
These are my notes for running Cog on WSL2


Bump to async-io v2.0.0

As async-io is a public dependency of this crate, this is a breaking change.

Could we please get a new release published with this change in? ^^

Thank you!


Enable material icons for directives and app entries

MUMUP-2781
Scope of this story: If an entity file for an app specifies an mdIcon parameter, it should be used everywhere that app icons are used. Likewise, uw-frame app developers should be able to use material icons in the frame-page or app-header directives.
In this PR:

Document the changes described here
Add CSS styles for the new uses of material icons
Enable mdIcon in circle-button directive
Prefer md-icon to fa-icon when specified in all the places icons are used (widget-icon directive, list-of-links widget type, search-with-links widget type, app-header directive) -- note: I'm open to considering some refactoring to make the implementation of this a little clean (ex. fewer ng-if statements), but I think that kind of improvement merits its own story
Add a basic widget type sample file for local testing/demoing
Trimmed down a couple sample files (no need for relatedApps list)

Demo screenshots

:+1:


Font awesome and nav bar tweaks

Including adding secret.py for keys

small changes still need to tweak colors and spacing of icons

Make more tweaks to Navbar. Waiting to fix login/register button and settings/logout button once jinja has the function to check if the user is anonymous or logged in.


Search crashes after more than a few text changes.  Exception if loaded as bundle.

I've modeled the "Movies" example for my implementation, and am using a modified version of it's search functionality.  In addition to the example code, I've added a function that will filter contacts by the search query text, as well as a function that sorts by givenName (first name) alphabetically.
When loading js code from URL, if I type more than a few letters into the search, or delete and add, the app will crash and XCode will lose connection.  This happens every time.
If loading js as a bundle, when I type and then hit the delete key the app will throw an exception.
Communications error: <OS_xpc_error: <error: 0x19bbe0af0> { count = 1, contents =
"XPCErrorDescription" => <string: 0x19bbe0e50> { length = 22, contents = "Connection interrupted" }
}>

Please share code

ContactScreen.txt

😟
/**
 * ContactScreen.js
 *
 * [
 * {   emailAddresses: [],
 *  middleName: 'TOB',
 *  familyName: 'A&P',
 *  givenName: 'Wayne',
    thumbnailPath: '',
    phoneNumbers: [ { number: '1<PHONE_NUMBER>', label: 'mobile' } ],
    recordID: 1201 },
   {   givenName: 'Howard',
    thumbnailPath: '/var/mobile/Containers/Data/Application/AA8988F2-48C3-4503-A1C1-D0CA78715E1E/tmp/thumbimage_scSrW.png',
    phoneNumbers: [],
    familyName: 'Abraham',
    emailAddresses: [{ email: '', label: '' }],
    recordID: 616 }]

    **NOTE: google maps want's coordinates in (latitude, longitude) format
    location: {
      "coords":{"speed":-1,"longitude":-93.30477504916821,"latitude":44.94847732952694,"accuracy":65,
                "heading":-1,"altitude":271.9358520507812,"altitudeAccuracy":12.99220041904048},
      "timestamp":1462898120026.433}
    uri: assets-library://asset/asset.JPG?id=F1AD60AE-571A-4614-97E1-057F198939F5&ext=JPG
 */
'use strict';

var React = require('react');
var ReactNative = require('react-native');
var {
  ActivityIndicatorIOS,
  Alert,
  Linking,
  ListView,
  Platform,
  ProgressBarAndroid,
  StyleSheet,
  Text,
  View,
} = ReactNative;

var sendSMS = require('./sendSMS');
var sendEmail = require('./sendEmail');

var Contacts = require('react-native-contacts');

var TimerMixin = require('react-timer-mixin');
var invariant = require('invariant');
var dismissKeyboard = require('dismissKeyboard');

var SearchBar = require('./SearchBar');
var ContactCell = require('./ContactCell');

// Results should be cached keyed by the query
// with values of null meaning "being fetched"
// and anything besides null and undefined
// as the result of a valid query
var resultsCache = {
  dataForQuery: {},
  nextPageNumberForQuery: {},
  totalForQuery: {},
};

var LOADING = {};

var sortByKey = function (array, key) {
    return array.sort(function(a, b) {
        var x = a[key]; var y = b[key];
        return ((x < y) ? -1 : ((x > y) ? 1 : 0));
    });
};

var filterByKey = function(array, query, key) {
  return array.filter(function (obj) {
    if(String(obj[key]).toLowerCase().includes(query)) {
      return true;
    }
    else {
      return false;
    }
  });
};

var ContactScreen = React.createClass({
  mixins: [TimerMixin],

  timeoutID: (null: any),

  getInitialState: function() {
    return {
      isLoading: false,
      isLoadingTail: false,
      dataSource: new ListView.DataSource({
        rowHasChanged: (row1, row2) => row1 !== row2,
      }),
      filter: '',
      queryNumber: 0,
    };
  },

  componentDidMount: function() {
    this.searchContacts('');
    //console.log('location: ' + this.props.location + ' uri: ' + this.props.uri);
  },

  searchContacts: function(query: string) {
    this.timeoutID = null;

    this.setState({filter: query});

    var cachedResultsForQuery = resultsCache.dataForQuery[query];
    if (cachedResultsForQuery) {
      if (!LOADING[query]) {
        this.setState({
          dataSource: this.getDataSource(cachedResultsForQuery),
          isLoading: false
        });
      } else {
        this.setState({isLoading: true});
      }
      return;
    }

    LOADING[query] = true;
    resultsCache.dataForQuery[query] = null;
    this.setState({
      isLoading: true,
      queryNumber: this.state.queryNumber + 1,
      isLoadingTail: false,
    });

    Contacts.getAll( (err, contacts) => {
      if(err && err.type === 'permissionDenied'){
        LOADING[query] = false;
        resultsCache.dataForQuery[query] = undefined;

        this.setState({
          dataSource: this.getDataSource([]),
          isLoading: false,
        });
      }
      else{
        // filter contacts array by first OR last name match to query string
        if(query != '') { contacts = filterByKey(contacts, query, 'givenName'); }

        LOADING[query] = false;
        resultsCache.totalForQuery[query] = contacts.length;
        resultsCache.dataForQuery[query] = sortByKey(contacts, 'givenName');
        resultsCache.nextPageNumberForQuery[query] = 2;

        if (this.state.filter !== query) {
          // do not update state if the query is stale
          return;
        }

        this.setState({
          isLoading: false,
          dataSource: this.getDataSource(contacts),
        });
      }
    });
  },

  hasMore: function(): boolean {
    var query = this.state.filter;
    if (!resultsCache.dataForQuery[query]) {
      return true;
    }
    return (
      resultsCache.totalForQuery[query] !==
      resultsCache.dataForQuery[query].length
    );
  },

  onEndReached: function() {
    var query = this.state.filter;
    if (!this.hasMore() || this.state.isLoadingTail) {
      // We're already fetching or have all the elements so noop
      return;
    }

    if (LOADING[query]) {
      return;
    }

    LOADING[query] = true;
    this.setState({
      queryNumber: this.state.queryNumber + 1,
      isLoadingTail: true,
    });

    var page = resultsCache.nextPageNumberForQuery[query];
    invariant(page != null, 'Next page number for "%s" is missing', query);
    Contacts.getAll( (err, contacts) => {
      if(err && err.type === 'permissionDenied'){
        console.error(error);
        LOADING[query] = false;
        this.setState({
          isLoadingTail: false,
        });
      }
      else{
        var contactsForQuery = resultsCache.dataForQuery[query].slice();

        LOADING[query] = false;
        // We reached the end of the list before the expected number of results
        if (!contacts) {
          resultsCache.totalForQuery[query] = contactsForQuery.length;
        } else {
          for (var i in contacts) {
            contactsForQuery.push(contacts[i]);
          }
          resultsCache.dataForQuery[query] = contactsForQuery;
          resultsCache.nextPageNumberForQuery[query] += 1;
        }

        if (this.state.filter !== query) {
          // do not update state if the query is stale
          return;
        }

        this.setState({
          isLoadingTail: false,
          dataSource: this.getDataSource(resultsCache.dataForQuery[query]),
        });
      }
    });
  },

  getDataSource: function(contacts: Array<any>): ListView.DataSource {
    return this.state.dataSource.cloneWithRows(contacts);
  },

  selectContact: function(contact: Object) {
    var cell = contact.phoneNumbers.filter(function(obj) {
      if(obj.label == 'mobile' || obj.label == 'iPhone') {
        return true;
      }
      else {
        return false;
      }
    });
    if(cell.length == 0) {
        Alert.alert(
            'Not Found',
            'Phone number not found for this contact',
        );
        return;
    }
    var email = contact.emailAddresses.filter(function(obj){
      if(obj.label == 'work' || obj.label == 'home') {
        return true;
      }
      else {
        return false;
      }
    });
    if(email.length == 0) {
        Alert.alert(
            'Not Found',
            'Email not found for this contact',
        );
        return;
    }
    var emailAddress = email[0].email;
    for(var i = 0; i < email.length; i++){
      if(email[i].label == 'work') emailAddress = email[i].email;
    }
    sendEmail(emailAddress, this.props.uri, this.props.location);
    sendSMS(cell[0].number);
  },

  onSearchChange: function(event: Object) {
    var filter = event.nativeEvent.text.toLowerCase();

    this.clearTimeout(this.timeoutID);
    this.timeoutID = this.setTimeout(() => this.searchContacts(filter), 100);
  },

  renderFooter: function() {
    if (!this.hasMore() || !this.state.isLoadingTail) {
      return <View style={styles.scrollSpinner} />;
    }
    if (Platform.OS === 'ios') {
      return <ActivityIndicatorIOS style={styles.scrollSpinner} />;
    } else {
      return (
        <View  style={{alignItems: 'center'}}>
          <ProgressBarAndroid styleAttr="Large"/>
        </View>
      );
    }
  },

  renderSeparator: function(
    sectionID: number | string,
    rowID: number | string,
    adjacentRowHighlighted: boolean
  ) {
    var style = styles.rowSeparator;
    if (adjacentRowHighlighted) {
        style = [style, styles.rowSeparatorHide];
    }
    return (
      <View key={'SEP_' + sectionID + '_' + rowID}  style={style}/>
    );
  },

  renderRow: function(
    contact: Object,
    sectionID: number | string,
    rowID: number | string,
    highlightRowFunc: (sectionID: ?number | string, rowID: ?number | string) => void,
  ) {
    return (
      <ContactCell
        key={contact.recordID}
        onSelect={() => this.selectContact(contact)}
        onHighlight={() => highlightRowFunc(sectionID, rowID)}
        onUnhighlight={() => highlightRowFunc(null, null)}
        contact={contact}
      />
    );
  },

  render: function() {
    var content = this.state.dataSource.getRowCount() === 0 ?
      <NoContacts
        filter={this.state.filter}
        isLoading={this.state.isLoading}
      /> :
      <ListView
        ref="listview"
        renderSeparator={this.renderSeparator}
        dataSource={this.state.dataSource}
        renderFooter={this.renderFooter}
        renderRow={this.renderRow}
        onEndReached={this.onEndReached}
        automaticallyAdjustContentInsets={false}
        keyboardDismissMode="on-drag"
        keyboardShouldPersistTaps={true}
        showsVerticalScrollIndicator={false}
      />;

    return (
      <View style={styles.container}>
        <SearchBar
          onSearchChange={this.onSearchChange}
          isLoading={this.state.isLoading}
          onFocus={() =>
            this.refs.listview && this.refs.listview.getScrollResponder().scrollTo({ x: 0, y: 0 })}
        />
        <View style={styles.separator} />{content}</View>
    );
  },
});

var NoContacts = React.createClass({
  render: function() {
    var text = '';
    if (this.props.filter) {
      text = `No results for "${this.props.filter}"`;
    } else if (!this.props.isLoading) {
      // If we're looking at the latest contacts, aren't currently loading, and
      // still have no results, show a message
      text = 'No contacts found';
    }

    return (
      <View style={[styles.container, styles.centerText]}>
        <Text style={styles.noContactsText}>{text}</Text>
      </View>
    );
  }
});

var styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: 'white',
  },
  centerText: {
    alignItems: 'center',
  },
  noContactsText: {
    marginTop: 80,
    color: '#888888',
  },
  separator: {
    height: 1,
    backgroundColor: '#eeeeee',
  },
  scrollSpinner: {
    marginVertical: 20,
  },
  rowSeparator: {
    backgroundColor: 'rgba(0, 0, 0, 0.1)',
    height: 1,
    marginLeft: 4,
  },
  rowSeparatorHide: {
    opacity: 0.0,
  },
});

module.exports = ContactScreen;

@ericcbohn any update on this?  I'm experiencing a similar issue

Might be related to thumbnails. On one of our devices we had huge addressbook (few thousands contacts), and our app wasnt been able to read that at all, always crashing inside getAll(). When I commented out https://github.com/rt2zz/react-native-contacts/blob/master/ios/RCTContacts/RCTContacts.m#L162 line, it started to work. Didnt investigate further yet.

Hi
I'm also seeing the Communications error.  I've tracked it down to react-native-contacts, if I comment out calls to getAll it doesn't happen.  Interestingly, it only happens when there are a lot (like almost 5000) contacts in the users address book.  Is there a memory leak possibly?  @nopik has a point about the thumbnails, almost everyone of these contacts has a thumbnail associated to it.
When the app crashes, there's no error message at all other than the Communications error, and then a few seconds later it just stops - its been really difficult tracking this down.
It's just an idea, but rather than loading the whole thing into memory, perhaps streaming the contacts back one by one would be a better api for large address books.  If the client wants them in an array, they can just collect them up themselves.  Thoughts? I'll try it tomorrow.

Think this is the same issue as https://github.com/rt2zz/react-native-contacts/issues/72.
I can confirm commenting out the iOS code that reads the thumbnail works around the issue.

nice work. I'm not an iOS expert so I'll lurk and learn.

Indeed, this seems to be the same as #72. I've been debugging this today, and found out that mkstemp() is creating new empty file & returning file handle, but the code is ignoring this. So, if many thumbnails are created, iOS runs out of file handles eventually. Quick and dirty fix of close(mkstemp(template)), as in https://github.com/IDTLabs/react-native-contacts

Is that fix dirty?  Or the right way to do it?  If the latter I'll add it in.  I looked into this a while ago now but couldn't see the issue.

Well, technically it is proper, and adding the fix is improving the code a lot, with no drawbacks.
What I don't like about the current solution, is that it creates and leaves empty file on the filesystem. And, for each entry there is another .png file next to it with the actual data. And, it seems, that those data are never cleaned (though I think they can be cleaned from RN app after thumbnail is not needed anymore).
Some mkstemps() usage instead of mkstemp() could be encouraged to avoid second file (just create .png version of name in one go). But, it is not relevant for this bug, rather an optimization to the prior code.

Why is it creating empty files!?

mkstemp() creates & opens file and return the handle of that opened file to the program. This is correct behavior in posix, to avoid race between 2 threads. In our case, however, we just want to randomize path, we do not need that empty file. So, maybe mkstemp() should not be used at all. Original code left that file opened (leaking file handle), adding close() at least releases the handle.

Ok  I'm going to try your fix out today on my fork and then I'll merge it over.  I'll double check the new android implementation to.


add domain aluno.uece.br

add domain aluno.uece.br

@Flip-Berg I am sorry, the domain aluno.uece.br is removed from our trusted domains list because it was abused in the past. If you are the student of this school, please enroll to GitHub Student Developer Program. Then apply for JetBrains educational subscription with your GitHub account (GitHub tab at https://www.jetbrains.com/shop/eform/students).


Upstream DER, Full Verification Secondary to Primary, Primary to Director

Allow the demo and reference implementation's full verification Secondary client to send ECU Manifests up to the Primary in ASN.1/DER ECU, for completeness and to make sure that all communications that may be on CAN are in ASN.1/DER.

Consider supporting ASN.1/DER for Vehicle Manifests sent from the Primary to the Director, for completeness and consistency.

Addressed (WIP) in PR #50.
Code there transmits all ECU and Vehicle Manifests as ASN.1/DER (both Primary<->Secondary and Primary<->Director).
It works in Python2.
Things to do still:

Python3. There's a subtle bug hiding somewhere that's making that not work in Python3, so I'm going to figure that out.
There's also a circular import that I've worked around by importing inside a function, which is a undesirable (per PEP 8 and y'know... common sense). I think I'm going to resolve that by absorbing all the *coder.py modules in Uptane into asn1_codec.py. (I'll probably go back and do the same for TUF, too.)

Figured out the bug: was nondeterministic conversion of dictionary of hashes to list of hashes in DER conversion. Fixed.

The circular import should still be resolved, but that's a separate issue, so I'll open a new issue for it.


docs: refine S3 backup section

fix https://github.com/coreos/etcd-operator/issues/924
[skip ci]

LGTM


Deleting a question doesn't currently work

clicking the trash bin next to a question should delete it.
In longer term considerations - this should really be subject to admin/authentication

https://github.com/TheWoodenMan/behavioural-recruitment/pull/18 Fixes this


[SPARK-17299] TRIM/LTRIM/RTRIM should not strips characters other than spaces

What changes were proposed in this pull request?
TRIM/LTRIM/RTRIM should not strips characters other than spaces, we were trimming all chars small than ASCII 0x20(space)
How was this patch tested?
fixed existing tests.

Test build #64798 has started for PR 14924 at commit 58c2a5d.

Test build #64798 has finished for PR 14924 at commit 58c2a5d.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

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

Can you add a unit test for this?

@rxin Done 👍

Test build #64827 has started for PR 14924 at commit 554f46c.

Test build #64827 has finished for PR 14924 at commit 554f46c.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

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

The implementation in stringExpressions.scala generates code that calls trim(), so just double-checking, that's calling UTF8String not String right? Then yeah LGTM

@srowen yes in stringExpressions the trim is on with UTF8String.

Test build #64856 has started for PR 14924 at commit 7583070.

Test build #64856 has finished for PR 14924 at commit 7583070.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

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

Merged build finished. Test PASSed.

LGTM. Seems like this should go into 2.0.x as well since it's really a bug fix.

Merged to master/2.0

Merged to master/2.0


Autodetect JSON or YAML

Use one parameter name and autodetect json vs yaml
(currently, have separate flags for json and yaml)
This will help with the redundancy issue #13

From issue #9 (improve cli):
infer file structure and use % taco workflow1 my-workflow-files
be explicit % taco workflow1 --config=my-workflow-files/config.yaml --params=my-workflow-files/params.yaml

Do it! style 2 (explicit is better than implicit)
This would eliminate two wordy options and help close #13 (cut down on redundancy) with two "yaml"s or two "json"s gone.
Here: https://github.com/dahak-metagenomics/dahak-taco/blob/master/cli/command.py#L58


Improve the automation for the creation of S3 bucket to be machine runnable

User Story
As a developer, I want to modify the script from issue #7 to be machine runnable, so I don't need an active user to follow the prompts to create the resource.
Estimated time to complete
4 hours
Acceptance Criteria

[x] Update script to be able to run without user input

[x] Script should accept a command line argument, initials
[x] Script should validate the initials argument, whether it's passed in as a command line argument, or through the user prompt

Activities Documentation

Date
Activity
Time Spent

02/02/2022
Researching ability to call shell function from anywhere
1 hr

02/02/2022
Researching shell variables, functions, and coding conventions
2 hr

02/02/2022
Updating script
1 hr

02/02/2022
Testing
0.5 hr

02/03/2022
Documentation
0.5 hr


⚠ Bofrost.at has degraded performance

In 02a3e3f, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1203 ms

Resolved: Bofrost.at performance has improved in 0b86660 after 13 minutes.


How to allow multifactor authentication when deploying from Jenkins?

Plugin name and version
azure-webapp-maven-plugin 2.2.1
Plugin configuration in your pom.xml
<plugin>
                <groupId>com.microsoft.azure</groupId>
                <artifactId>azure-webapp-maven-plugin</artifactId>
                <version>2.2.1</version>
                <configuration>
                    <subscriptionId>${subscriptionId}</subscriptionId>
                    <resourceGroup>${resourceGroup}</resourceGroup>
                    <appName>${appName}</appName>
                    <region>west europe</region>
                    <runtime>
                        <os>Linux</os>
                        <webContainer>Java SE</webContainer>
                        <javaVersion>Java 11</javaVersion>
                    </runtime>
                    <deployment>
                        <resources>
                            <resource>
                                <type>jar</type>
                                <directory>${project.basedir}/target</directory>
                                <includes>
                                    <include>*.jar</include>
                                </includes>
                            </resource>
                        </resources>
                    </deployment>
                </configuration>
            </plugin>

Steps to reproduce the problem
We upgraded from the maven azure plugin version 1.12.0 to 2.2.1, since we started having issues with deployments being successful in Jenkins but not actually uploaded to webapp itself.
We use a service principal to use as authentication. Locally running with this setup works. A browser opens, I get a new token and the webapp gets deployed. However on Jenkins I'm getting this issue below (see logs). Any idea how to make this work or bypass this? I believe our company has a multi-factor authentication forced. With version 1.12.0 we had no issues with this, but on 2.2.1 we do.
Our jenkins is hosted on a remote Windows server.
An alternative would be "stay on 1.12.0", but then I can open a new "issue" ticket since the webapps do not get deployed, even after being successful on the newly created webapps.

[INFO]
[INFO] ------------------< com.atlascopco.microservices:qap >------------------
[INFO] Building qap 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- azure-webapp-maven-plugin:2.2.1:deploy (default-cli) @ qap ---
[INFO] Use maven proxy: <IP_ADDRESS>:8080
[INFO] Auth type: OAUTH2
[WARNING] Configuration HTTPS_PROXY is an invalid URL and is being ignored.
[WARNING] Configuration HTTP_PROXY is an invalid URL and is being ignored.
[ERROR] [Correlation ID: 3001a106-7dc6-4088-a7e8-96e7f0ceaa22] Execution of class com.microsoft.aad.msal4j.AcquireTokenByInteractiveFlowSupplier failed.
com.microsoft.aad.msal4j.MsalClientException: java.io.IOException: Failed to open https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize?s_....._&response_mode=form_post. Error message: No application is associated with the specified file for this operation.
at com.microsoft.aad.msal4j.AcquireTokenByInteractiveFlowSupplier.openDefaultSystemBrowser (AcquireTokenByInteractiveFlowSupplier.java:120)
at com.microsoft.aad.msal4j.AcquireTokenByInteractiveFlowSupplier.getAuthorizationResult (AcquireTokenByInteractiveFlowSupplier.java:61)
at com.microsoft.aad.msal4j.AcquireTokenByInteractiveFlowSupplier.execute (AcquireTokenByInteractiveFlowSupplier.java:37)
at com.microsoft.aad.msal4j.AuthenticationResultSupplier.get (AuthenticationResultSupplier.java:59)
at com.microsoft.aad.msal4j.AuthenticationResultSupplier.get (AuthenticationResultSupplier.java:17)
at java.util.concurrent.CompletableFuture$AsyncSupply.run (CompletableFuture.java:1700)
at java.util.concurrent.CompletableFuture$AsyncSupply.exec (CompletableFuture.java:1692)
at java.util.concurrent.ForkJoinTask.doExec (ForkJoinTask.java:290)
at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec (ForkJoinPool.java:1020)
at java.util.concurrent.ForkJoinPool.scan (ForkJoinPool.java:1656)
at java.util.concurrent.ForkJoinPool.runWorker (ForkJoinPool.java:1594)
at java.util.concurrent.ForkJoinWorkerThread.run (ForkJoinWorkerThread.java:177)

Caused by: java.io.IOException: Failed to open https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize?s_....._&response_mode=form_post. Error message: No application is associated with the specified file for this operation.
at sun.awt.windows.WDesktopPeer.ShellExecute (WDesktopPeer.java:115)
at sun.awt.windows.WDesktopPeer.browse (WDesktopPeer.java:101)
at java.awt.Desktop.browse (Desktop.java:526)
at com.microsoft.aad.msal4j.AcquireTokenByInteractiveFlowSupplier.openDefaultSystemBrowser (AcquireTokenByInteractiveFlowSupplier.java:113)
at com.microsoft.aad.msal4j.AcquireTokenByInteractiveFlowSupplier.getAuthorizationResult (AcquireTokenByInteractiveFlowSupplier.java:61)
at com.microsoft.aad.msal4j.AcquireTokenByInteractiveFlowSupplier.execute (AcquireTokenByInteractiveFlowSupplier.java:37)
at com.microsoft.aad.msal4j.AuthenticationResultSupplier.get (AuthenticationResultSupplier.java:59)
at com.microsoft.aad.msal4j.AuthenticationResultSupplier.get (AuthenticationResultSupplier.java:17)
at java.util.concurrent.CompletableFuture$AsyncSupply.run (CompletableFuture.java:1700)
at java.util.concurrent.CompletableFuture$AsyncSupply.exec (CompletableFuture.java:1692)
at java.util.concurrent.ForkJoinTask.doExec (ForkJoinTask.java:290)
at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec (ForkJoinPool.java:1020)
at java.util.concurrent.ForkJoinPool.scan (ForkJoinPool.java:1656)
at java.util.concurrent.ForkJoinPool.runWorker (ForkJoinPool.java:1594)
at java.util.concurrent.ForkJoinWorkerThread.run (ForkJoinWorkerThread.java:177)

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 12.859 s
[INFO] Finished at: 2021-11-03T10:54:58+01:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.microsoft.azure:azure-webapp-maven-plugin:2.2.1:deploy (default-cli) on project qap: deploy to Azure Web App with resource creation or updating: Failed to acquire token with Interactive Browser Authentication. java.io.IOException: Failed to open https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize?_...._6&response_mode=form_post. Error message: No application is associated with the specified file for this operation. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[Pipeline] }
[Pipeline] // withCredentials
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (UAT/PRODUCTION promotion)
Stage "UAT/PRODUCTION promotion" skipped due to earlier failure(s)
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Declarative: Post Actions)
[Pipeline] archiveArtifacts
Archiving artifacts
Recording fingerprints
[Pipeline] step
[InfluxDB Plugin] Collecting data...
[InfluxDB Plugin] SonarQube data found. Writing to InfluxDB...
[InfluxDB Plugin] INFO: No SonarQube host URL found in environment variable SONAR_HOST_URL. Using build log instead.
[InfluxDB Plugin] WARNING: No SonarQube auth token found in environment variable SONAR_AUTH_TOKEN. Depending on access rights, this might result in a HTTP/401.
[InfluxDB Plugin] Completed.
[Pipeline] emailext
[Pipeline] cleanWs
[WS-CLEANUP] Deleting project workspace...
[WS-CLEANUP] Deferred wipeout is used...
[WS-CLEANUP] done
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
[Bitbucket] Notifying commit build result
[Bitbucket] Build result notified
ERROR: script returned exit code 1
Finished: FAILURE

@nvanhoeck Thanks for your report, it seems that maven toolkit did not use the azure cli credential (which should be used by default) but fall back to OAuth in Jenkins. Could you please try set auth method to azure_cli and see whether it could work?
<configuration>
    <auth>
        <type>azure_cli</type>
    </auth>
</configuration>

Besides, you may use service principal for authentication directly in maven plugin, you may get the detail guidance here

@Flanker32 the solution you provided works, if you add the service principal into the settings.xml of Jenkins. Only difference here, didn't used maven decryption/encryption because it failed. Prob need to turn it on somehow.
Still deploy was successfull, so thank you!


[Test] revert scalacheck version

We have seen failures in scala test after upgraded the scala check version. I suspect the failures are related to the upgrade. Reverting it back to see if the failures will go away.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


[DoNotMerge] Review app for Conversations v2

https://conversations.artsy.net

Warnings

:warning:

Routes added to routes.tsx should have a corresponding cypress.js smoke test. See the cypress/e2e folder for examples.

  Generated by :no_entry_sign: dangerJS against becd4ff14fca851091f292700adf4c7500eae895

Going to close this until we take it back up again.


gollvm: multiple definition of 'runtime.nanotime..f'

As shown in the sample code,  since Nanotime is declared in both package main and packagea(using: //go:linkname Nanotime runtime.nanotime), and package packagea is imported to package main.
gofrontend creates the function descriptor with the same name "runtime.nanotime..f" for Nanotime in both packages main and packagea, resulting in a multiple definition error during the link phase.
What version of Go are you using (go version)?
gollvm master

$ go version
go version unknown linux/amd64

Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (go env)?
go env Output
$ go env

What did you do?

The issue may be reproduced with the following sample:
go build linkname.go
File linkname.go
package main

import (
    "fmt"
    "linkname/packagea"
    _ "unsafe"
)

//go:linkname Nanotime runtime.nanotime
func Nanotime() int64

func main() {
    fmt.Println(Nanotime())
    fmt.Println(packagea.Nanotime)
}

File packagea/a.go
package packagea

import (
        _ "unsafe"
)

//go:linkname Nanotime runtime.nanotime
func Nanotime() int64

What did you expect to see?
No error, successful build.
What did you see instead?
[root@kwephis525702 test]# go build linkname.go
# command-line-arguments
/usr/bin/ld.gold: error: /root/.cache/go-build/72/72a31748b9a7e4660f3fbe9b02046db2b83d204da0b133c508593d4b82ac82b3-d(_go_.o): multiple definition of 'runtime.nanotime..f'
/usr/bin/ld.gold: $WORK/b001/_pkg_.a(_go_.o): previous definition here

CC @thanm @cherrymui

As shown in the sample code, since Nanotime is declared in both package main and packagea(using: //go:linkname Nanotime runtime.nanotime)

Do not do this. Using linkname to access runtime internal functions is not supported. Thanks.

As shown in the sample code, using linkname on non-runtime function GetTime defined in "linkname/a.go" has the same problem:
[root@kwephis525702 test]# go build linkname.go
# command-line-arguments
/usr/bin/ld.gold: error: $WORK/b003/_pkg_.a(_go_.o): multiple definition of 'linkname_1packagea.GetTime..f'
/usr/bin/ld.gold: $WORK/b001/_pkg_.a(_go_.o): previous definition here

File linkname.go
package main

import (
    "fmt"
    _ "linkname/packagea"
    _ "unsafe"
)

//go:linkname GetTime linkname_1packagea.GetTime
func GetTime() int64

func main() {
    fmt.Println(GetTime())
    fmt.Println(GetTime)
}

File linkname/a.go
package packagea

import (
    _ "unsafe"
)

func GetTime() int64 {
    return 0
}

Thanks, I think there is a bug here.  But in general go:linkname is not well supported.  Patches welcome.


Error: "Failed to execute goal de.saumya.mojo:gem-maven-plugin"

HI,
I have followed the instructions I have found in the Asciidoctor discussions regarding the Ruby installation: https://discuss.asciidoctor.org/Using-the-multi-page-converter-from-maven-tt8549.html#a8550 as I had the same origin problem as the author.
but now I get the following error:
Failed to execute goal de.saumya.mojo:gem-maven-plugin:2.0.1:initialize (install-gems) on project docs-public: Execution install-gems of goal de.saumya.mojo:gem-maven-plugin:2.0.1:initialize failed: Java returned: 1
do you have any idea what is causing the problem?
Thanks in advance.

Hi @rwoldu, this project isn't associated with Maven or asciidoctor-maven-plugin. I am not familiar with Maven and am not able to offer any assistance with it. If you have a problem with asciidoctor-multipage that you can reproduce when it is used as described in the README, feel free to open an issue for that.
I do hope you are able to find a fix for the error!

thanks for your fast replies, sure will do so :)

If you do find a fix, you're welcome to post it here! Also I'm willing to consider adding details to the README about using asciidoctor-multipage with asciidoctor-maven-plugin, if someone wants to contribute it. Aside from that, it's difficult for me to offer any support for Maven when I wrote and used asciidoctor-multipage without any relation to it.

a fix was implemented by extending the Maven settings.xml and adding a new profile that refers to the mavengem-repository.
See also Maven-Settings-docs: https://maven.apache.org/settings.html#repositories
<profile>
            <repositories>
                <repository>
                    <id>mavengems</id>
                    <url>mavengem:https://rubygems.org</url>
                </repository>
...


config parser does not like server config

openvpn_config_parser.exe server.cfg
openvpn_config_parser.exe: [INFO] Reading file "server.cfg"
openvpn_config_parser.exe: [WARNING] IGNORING "explicit-exit-notify" "1"
openvpn_config_parser.exe: [WARNING] IGNORING "ifconfig-pool-persist" "ipp.txt"
openvpn_config_parser.exe: [WARNING] IGNORING "status" "openvpn-status.log"
openvpn_config_parser.exe: [INFO] Reading file "ca.public.certificate"
openvpn_config_parser.exe: [DEBUG] x509 cert: CA
openvpn_config_parser.exe: [INFO] Reading file "server.public.certificate"
openvpn_config_parser.exe: [DEBUG] x509 cert: cert
openvpn_config_parser.exe: [INFO] Reading file "server.secret.key"
openvpn_config_parser.exe: [ERROR] not a valid client config: does not have a remote
config:
dev tun
persist-key
persist-tun
topology subnet
port 1194
proto udp
keepalive 10 120
ca ca.public.certificate
cert server.public.certificate
key server.secret.key
server <IP_ADDRESS> <IP_ADDRESS>
explicit-exit-notify 1
#user ovpn
#group ovpn
#auth SHA512
tls-version-min 1.2
#tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256
#ncp-ciphers AES-256-GCM:AES-256-CBC
ifconfig-pool-persist ipp.txt
status openvpn-status.log
verb 3
dh dh2048.pem

the openvpn_config_parser.exe attempts to validate the configuration as a client configuration and fails. the server part of openvpn is pretty new. I'd suggest to add a flag to the configuration parser whether to validate the given configuration as client or server (or maybe just attempt both, and if any succeeds, succeed -- if both fail, show the errors)?

Here is  a pull request with a test for parsing server config:
https://github.com/roburio/openvpn/pull/38

thanks again, various server configurations are parsed now successfully, esp. since 3e7c8ddbff5f586605006614dadcb4ec1233c0d9 34793c1


LoadError: ArgumentError: Chrono not found in path

Hello,
I'm trying to run
$ julia test/test_ts.jl

but it raises
ERROR: LoadError: ArgumentError: Chrono not found in path

julia> Pkg.add("Chrono")

doesn't help
ERROR: unknown package Chrono
 in error at /Applications/Julia-0.4.3.app/Contents/Resources/julia/lib/julia/sys.dylib
 [inlined code] from pkg/entry.jl:49
 in anonymous at task.jl:447
 in sync_end at /Applications/Julia-0.4.3.app/Contents/Resources/julia/lib/julia/sys.dylib
 [inlined code] from task.jl:422
 in add at pkg/entry.jl:46
 in add at pkg/entry.jl:73
 in anonymous at pkg/dir.jl:31
 in cd at file.jl:22
 in cd at pkg/dir.jl:31
 in add at pkg.jl:23

Any idea ?

@femtotrader thanks for trying this out.
Chrono.jl is here: https://github.com/tanmaykm/Chrono.jl. TSArray uses it for date parsing for now.
You can get it with Pkg.clone("https://github.com/tanmaykm/Chrono.jl.git") as it is not registered.

Thanks


Throttling when usePolygon=True

Polygon has no rate limiting or per second query limits, but when you use alpaca to access polygon data you get a rate limit.
Is there anyway to force it to utilize the non rate-limiting service?

We who have worked on (Alpaca TS lib)[https://github.com/117/alpaca] have had this issue. Through Alpaca's native API, there no way to stop a rate limit. Alpaca has an arbitrary cap on several types of Polygon data that is proxied through them, inc;luding websockets. What would be best here would probably be to make a Polygon class, and substitute it for the Alpaca class in case where you want to disable rate limiting.

We who have worked on (Alpaca TS lib)[https://github.com/117/alpaca] have had this issue. Through Alpaca's native API, there no way to stop a rate limit. Alpaca has an arbitrary cap on several types of Polygon data that is proxied through them, inc;luding websockets. What would be best here would probably be to make a Polygon class, and substitute it for the Alpaca class in case where you want to disable rate limiting.


Support for N=2048

Is there a plan to add N=2048 to the set of parameters?
Is there a specific reason that it is not supported at the moment?

Hi RasouIAM,
Although there aren't default parameters for this ring degree, you can create custom parameters with N=2048, but in the current state of the library you must specify a modulus for P, which, for small parameters, can be prohibitive since Q is already very small. Eventually being able to create parameters with an empty P will be added in master (it's in the branch dev_RGSW).


Unknown variable name VCPKG_CHAINLOAD_TOOLCHAIN_FILE=

visual stduio 2017
D:\dev\vcpkg>vcpkg install zlib
The following packages will be built and installed:
zlib:x86-windows
Starting package 1/1: zlib:x86-windows
Building package zlib:x86-windows...
Unknown variable name VCPKG_CHAINLOAD_TOOLCHAIN_FILE=

Hi @kinsung, could you make sure you've run:
>git pull
>bootstrap-vcpkg.bat

Then try again? If it still occurs, please post the output of vcpkg version as well as if you've made any modifications to triplets\x86-windows.cmake.

This problem was fixed for me after following your instructions, @ras0219-msft.

Please open a new issue if this is still a problem for you.


path/filepath: fix EvalSymLinks documentation

What version of Go are you using (go version)?
1.14.4
What operating system and processor architecture are you using (go env)?
Windows
What did you do?
Read the docs.
What did you expect to see?
Documentation to the effect that most applications on all operating systems should not use this API, unless they write complex additional logic to resolve just those links that they are interested in (e.g. searching through one volume only, although this API cannot reliably enable this specific scenario) or responsible for (e.g. system administration software).
What did you see instead?
EvalSymLinks intending to resolve all links in the path that it receives as argument, without any hint in the documentation that this might introduce issues due to system reconfigurations, amongst others.
What do you propose to fix this?
I propose documentation changes as the best solution for EvalSymLinks short of deleting this API altogether, which is not possible today since deleting or no-op'ing this API as proposed in #40104 violates go policies.
EvalSymLink violates what Wikipedia calls the Fundamental Theorem of Software Engineering
EvalSymLinks is not suitable for most applications on any operating system because it unconditionally undoes all indirections for a given path. This is a violation of the principle mentioned which states (in my wording more applicable here):

Any problem in software can be solved by adding another layer of indirection.

EvalSymLinks always resolves all indirections, even those that might have been introduced to fix operational issues affecting the particular application using this API, or which might have been introduced to solve administrative problems on a system that applications should generally remain unaware of - such as disk full situations.
I quote from Microsoft documentation:
Mounted Folders - Win32 apps | Microsoft Docs

Neither users nor applications need information about the target volume on which a specific file is located.

This API gives software no options to pick and choose to remove only those indirections that they are aware of, are designed to resolve, or have responsibility for.
Practical reasons for most developers not to use EvalSymLinks
Certainly on Windows, the practical usefulness and applicability of this API for most applications is severely limited by the following four facts:

Most users do not expect to ever see resolved paths
On the contrary, especially those users that might in some situations want to see resolved paths may configure links for the specific purpose of abbreviating paths that they frequently use, in which case resolving links and showing them to the user is a severe and annoying usability issue beyond what it in most situations normally already is. Applications should hence always remember the path they were configured or started with and generally only ever show that to the user. I champion that this point stands firmly on any operating system besides Windows.
Volume access paths and UNC mappings could change at any time
No reboot is necessary to create, change or delete junctions or links. Such events might hence invalidate results of EvalSymLinks at any time. No notification is given about such changes, unless the application specifically registers for them. But this is an advanced feature which is nontrivial to implement and test, even though go has/if go would have first-class support for this scenario.
Access paths and mappings could be modified - including deleted - while files are in use that were opened using that access path
The path through which files or directories on a volume are accessible might hence change at a moments notice, even while the application is using files or directories whose access path(s) changed and the application might continue to open handles to the access path(s) it was configured with on another volume, while the application remains unaware, if it does not use the EvalSymLinks API, or if it takes care not to cache the result of EvalSymLinks in any way.
Volume access paths and UNC mappings do not have to be created with a drive letter
And if they do, they do not need to point at the root of the drive with that letter (Z:\). This might be surprising to any developer that is not intimately aware of Windows internals and will produce issues as soon as they do not consistently use API that is itself properly aware of and tested thoroughly to work on Windows.

Similar expectations and issues may arise about paths that require the use of the \\?\ prefix, which complicates all operations with paths further, including long paths and volume GUID paths which EvalSymLinks may also introduce in any application on any machine. It is fair to note that EvalSymLinks is not the only source of such paths and Windows applications should be prepared to deal with them regardless of whether they use EvalSymLinks - such paths might even be introduced by user input directly, or through the operating system working directory at application start, or be intermittently visible while the system is being reconfigured.
EvalSymLinks cannot be used to identify volumes in applicable advanced scenario's
Finally, this API by design and as documented can on Windows not identify the volume on which a file or directory resides. Besides resolving UNC mappings, again only in advanced scenario's, this is - for as far as I have been able to identify - about the only situation where the above arguments against the use of EvalSymLinks may not always apply for all applications.
Paths with a drive letter never identify volumes. Drive letters may in some trivial system configurations happen to correspond to identifiable volumes, but this can not and must never be relied upon. EvalSymLink definition, documentation and behavior on Windows reinforces this wrong assumption.
That EvalSymLinks is of very limited use on Windows is strikingly evidenced by the configuration provided to reproduce issue #40176. This configuration is of particular interest, since EvalSymLinks provides here exactly zero information to the caller. Any path the application requests to be resolved will result in the exact path provided to EvalSymLinks, since the reparse point resolves to the exact same path as that of the directory that points to it. (before making the path relative and cleaning it, perhaps against statements in the documentation if the fact that an absolute link was resolved might have been lost - and a conforming result might confuse anyone)
In fact, until #40095 is part of go, EvalSymLinks is completely unable to identify volumes on 64-bit Windows and other Windows installations that use GPT partitioning at all. With this fix, it is only able to do so if the volume happens to have its volume GUID path as its only access path. However now this is merely accidental, due to a fortunate side effect of Windows system architecture.
On Windows systems that do not use GPT partitioning, or on (external) disks that do not use GPT, identifying volumes is simply not possible with a path alone, neither before nor after calling EvalSymLinks.
How concretely do you propose to fix this?
Change the documentation of EvalSymLinks in src\path\filepath\path.go to read:
// EvalSymlinks returns the path name after the evaluation of any symbolic
// links.
// If path is relative the result will be relative to the current directory,
// unless one of the components is an absolute symbolic link.
// EvalSymlinks calls Clean on the result.
// Use of this function is unsuitable for the vast majority of applications.
// This function always resolves all links on path, but links may have
// been created to solve administrative problems of which
// most applications should remain unaware.
// Most applications should only resolve specific links that they
// require to resolve,  use the result immediately, forget the result
// and never show the result to the user.
// On Windows, the result is not stable and must not be cached
// or stored in any way, resolving links may introduce complexities that
// the application must be  prepared to deal with and the result
// does not identify the volume that a file or directory resides on.
func EvalSymlinks(path string) (string, error) {
	return evalSymlinks(path)
}

I will not argue about this, also not about my statement that it applies to any software on any operating system, apart from referring to Microsoft documentation which I haven't linked before and besides stating that my argument is from first principles and free of judgment of how EvalSymLinks became to be.
Mounted Folders

Neither users nor applications need information about the target volume on which a specific file is located.

The beauty of Github is that this issue will forever be here to judge golang on what they choose to do with this.

#40104

The background to this is that Docker misuses EvalSymlinks, so produces confusing logs and/or errors on common Windows configurations.
The Windows bugs are #39786 & #40176.
cc @robpike @ianlancetaylor @bcmills

I propose documentation changes as the best solution (...) short of (...)

I am told go has a feature go vet that improves upon this solution.
It would be beneficial to be able to suggest against using this API on Windows and once there are alternatives which are truly portable, against use of this API altogether.

Here is a list of results for EvalSymLinks that I built running against a series of links that I created. The target is listed the way it would appear using dir in PowerShell which also means some targets aren't listed at all.
The list contains 2 successes that produce a different result than the input, repeated twice (under C:\go and F:\).
Most results equal to the input are actually not links, which the system that produced this list didn't filter out.

ErrnoPathResultErrorTargetLinkType
2C:\go\Peculiar\DosMissingCreateFile C:\go\Peculiar\DosWasHere: The system cannot find the file specified.C:\go\Peculiar\DosWasHereSymbolicLink
3C:\go\Peculiar\HardLinkreadlink C:\go\Peculiar\HardLink: The system cannot find the path specified.Volume{cd2bd8e1-af68-414b-a81a-d7baa8b85c38}\SymbolicLink
-111C:\go\Peculiar\IdentityEvalSymlinks: too many linksVolume{7ea0b492-ce43-49c0-9ccf-b9b7bbf47b19}\Junction
-111C:\go\Peculiar\JunctionEvalSymlinks: too many linksVolume{c3a9436d-444f-4eba-a37f-3f6824642346}\Junction
3C:\go\Peculiar\Long1The system cannot find the path specified.C:\go\Peculiar\1. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1Junction
3C:\go\Peculiar\Long2The system cannot find the path specified.C:\go\Peculiar\1. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1\2. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .2Junction
3C:\go\Peculiar\Long3The system cannot find the path specified.C:\go\Peculiar\1. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1\2. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .2\3. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .3Junction
53C:\go\Peculiar\NetMissingThe network path was not found.UNC\GONE3eee5e57\ConnectivityLostSymbolicLink
67C:\go\Peculiar\NoNetDirThe network name cannot be found.UNC\localhost\NoNetworkGoFilePathSymbolicLink
67C:\go\Peculiar\NoNetDirNoParseThe network name cannot be found.UNC\localhost\NoNetworkGoFilePathSymbolicLink
2C:\go\Peculiar\UncDirThe system cannot find the file specified.UNC\localhost\GoFilePathSymbolicLink
2C:\go\Peculiar\UncDirNoParseThe system cannot find the file specified.UNC\localhost\GoFilePathSymbolicLink
2C:\go\Peculiar\VolMissingreadlink C:\go\Peculiar\VolMissing: The system cannot find the file specified.Volume{00000000-0000-0000-0000-000000000000}SymbolicLink
C:\go\Peculiar\FileHardLink.txtC:\go\Peculiar\FileHardLink.txtHardLink
C:\go\Peculiar\FileLink.txtC:\go\Peculiar\OneFile\file.txtC:\go\Peculiar\OneFile\file.txtSymbolicLink
3C:\go\Peculiar\1. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1\Long12The system cannot find the path specified.C:\go\Peculiar\1. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1\2. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .2Junction
C:\go\Peculiar\GitLike\RepoA\SubmoduleC:\go\Peculiar\GitLike\RepoBC:\go\Peculiar\GitLike\RepoBSymbolicLink
C:\go\Peculiar\OneFile\file.txtC:\go\Peculiar\OneFile\file.txtHardLink
-111C:\go\Peculiar\JunctionEvalSymlinks: too many links
-111C:\go\Peculiar\Junction\Long1EvalSymlinks: too many linksC:\go\Peculiar\Junction\Peculiar\1. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1Junction
-111C:\go\Peculiar\Junction\Long1\Long12EvalSymlinks: too many linksC:\go\Peculiar\Junction\Peculiar\1. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1\2. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .2Junction
-111C:\go\Peculiar\Junction\Long2EvalSymlinks: too many linksC:\go\Peculiar\Junction\Peculiar\1. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1\2. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .2Junction
-111C:\go\Peculiar\Junction\Long3EvalSymlinks: too many linksC:\go\Peculiar\Junction\Peculiar\1. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1\2. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .2\3.  GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1\Long12EvalSymlinks: too many linksC:\go\Peculiar\Junction\Peculiar\1. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1\2.  GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1Junction
-111C:\go\Peculiar\Identity\Long1\Long12EvalSymlinks: too many linksC:\go\Peculiar\Identity\Peculiar\1. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1\2. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .2Junction
-111C:\go\Peculiar\Identity\Long2EvalSymlinks: too many linksC:\go\Peculiar\Identity\Peculiar\1. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1\2. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .2Junction
-111C:\go\Peculiar\Identity\Long3EvalSymlinks: too many linksC:\go\Peculiar\Identity\Peculiar\1. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1\2. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .2\3.  GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1\Long12EvalSymlinks: too many linksC:\go\Peculiar\Identity\Peculiar\1. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1\2. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .2Junction
-111C:\go\Peculiar\Identity\Peculiar\FileHardLink.txtEvalSymlinks: too many linksHardLink
-111C:\go\Peculiar\Identity\Peculiar\FileLink.txtEvalSymlinks: too many linksC:\go\Peculiar\Identity\Peculiar\OneFile\file.txtSymbolicLink
-111C:\go\Peculiar\Identity\Peculiar\GitLike\RepoA\SubmoduleEvalSymlinks: too many linksC:\go\Peculiar\Identity\Peculiar\GitLike\RepoBSymbolicLink
-111C:\go\Peculiar\Identity\UncDirEvalSymlinks: too many linksUNC\localhost\GoFilePathSymbolicLink
-111C:\go\Peculiar\Identity\UncDirNoParseEvalSymlinks: too many linksUNC\localhost\GoFilePathSymbolicLink
\\?\Volume{7efe8796-c7e0-4a64-971e-23e400df7b37}\\\?\Volume{7efe8796-c7e0-4a64-971e-23e400df7b37}\
3\\?\Volume{7efe8796-c7e0-4a64-971e-23e400df7b37}\Long1\readlink \\?\Volume{7efe8796-c7e0-4a64-971e-23e400df7b37}\Long1: The system cannot find the path specified.Volume{7efe8796-c7e0-4a64-971e-23e400df7b37}\Peculiar\1. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1Junction
3\\?\Volume{7efe8796-c7e0-4a64-971e-23e400df7b37}\Long1\Long12\readlink \\?\Volume{7efe8796-c7e0-4a64-971e-23e400df7b37}\Long1: The system cannot find the path specified.Volume{7efe8796-c7e0-4a64-971e-23e400df7b37}\Peculiar\1. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1\2. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .2Junction
3\\?\Volume{7efe8796-c7e0-4a64-971e-23e400df7b37}\Long2\readlink \\?\Volume{7efe8796-c7e0-4a64-971e-23e400df7b37}\Long2: The system cannot find the path specified.Volume{7efe8796-c7e0-4a64-971e-23e400df7b37}\Peculiar\1. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1\2. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .2Junction
3\\?\Volume{7efe8796-c7e0-4a64-971e-23e400df7b37}\Long3\readlink \\?\Volume{7efe8796-c7e0-4a64-971e-23e400df7b37}\Long3: The system cannot find the path specified.Volume{7efe8796-c7e0-4a64-971e-23e400df7b37}\Peculiar\1. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1\2. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .2\3. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .3Junction
67\\?\Volume{7efe8796-c7e0-4a64-971e-23e400df7b37}\NoNetDir\The network name cannot be found.UNC\localhost\NoNetworkGoFilePathSymbolicLink
67\\?\Volume{7efe8796-c7e0-4a64-971e-23e400df7b37}\NoNetDirNoParse\The network name cannot be found.UNC\localhost\NoNetworkGoFilePathSymbolicLink
3\\?\Volume{7efe8796-c7e0-4a64-971e-23e400df7b37}\Peculiar\1. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1\Long12\readlink \\?\Volume{7efe8796-c7e0-4a64-971e-23e400df7b37}\Peculiar\1. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1\Long12: The system cannot find the path specified.Volume{7efe8796-c7e0-4a64-971e-23e400df7b37}\Peculiar\1. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1\2. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .2Junction
3\\?\Volume{7efe8796-c7e0-4a64-971e-23e400df7b37}\Peculiar\FileHardLink.txt\The system cannot find the path specified.HardLink
3\\?\Volume{7efe8796-c7e0-4a64-971e-23e400df7b37}\Peculiar\FileLink.txt\readlink \\?\Volume{7efe8796-c7e0-4a64-971e-23e400df7b37}\Peculiar\FileLink.txt: The system cannot find the path specified.Volume{7efe8796-c7e0-4a64-971e-23e400df7b37}\Peculiar\OneFile\file.txtSymbolicLink
3\\?\Volume{7efe8796-c7e0-4a64-971e-23e400df7b37}\Peculiar\GitLike\RepoA\Submodule\readlink \\?\Volume{7efe8796-c7e0-4a64-971e-23e400df7b37}\Peculiar\GitLike\RepoA\Submodule: The system cannot find the path specified.Volume{7efe8796-c7e0-4a64-971e-23e400df7b37}\Peculiar\GitLike\RepoBSymbolicLink
2\\?\Volume{7efe8796-c7e0-4a64-971e-23e400df7b37}\UncDir\The system cannot find the file specified.UNC\localhost\GoFilePathSymbolicLink
2\\?\Volume{7efe8796-c7e0-4a64-971e-23e400df7b37}\UncDirNoParse\The system cannot find the file specified.UNC\localhost\GoFilePathSymbolicLink
\\?\Volume{cd2bd8e1-af68-414b-a81a-d7baa8b85c38}\\\?\Volume{cd2bd8e1-af68-414b-a81a-d7baa8b85c38}\
3\\?\Volume{cd2bd8e1-af68-414b-a81a-d7baa8b85c38}\Long1\readlink \\?\Volume{cd2bd8e1-af68-414b-a81a-d7baa8b85c38}\Long1: The system cannot find the path specified.Volume{cd2bd8e1-af68-414b-a81a-d7baa8b85c38}\Peculiar\1. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1Junction
3\\?\Volume{cd2bd8e1-af68-414b-a81a-d7baa8b85c38}\Long1\Long12\readlink \\?\Volume{cd2bd8e1-af68-414b-a81a-d7baa8b85c38}\Long1: The system cannot find the path specified.Volume{cd2bd8e1-af68-414b-a81a-d7baa8b85c38}\Peculiar\1. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1\2. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .2Junction
3\\?\Volume{cd2bd8e1-af68-414b-a81a-d7baa8b85c38}\Long2\readlink \\?\Volume{cd2bd8e1-af68-414b-a81a-d7baa8b85c38}\Long2: The system cannot find the path specified.Volume{cd2bd8e1-af68-414b-a81a-d7baa8b85c38}\Peculiar\1. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1\2. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .2Junction
3\\?\Volume{cd2bd8e1-af68-414b-a81a-d7baa8b85c38}\Long3\readlink \\?\Volume{cd2bd8e1-af68-414b-a81a-d7baa8b85c38}\Long3: The system cannot find the path specified.Volume{cd2bd8e1-af68-414b-a81a-d7baa8b85c38}\Peculiar\1. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1\2. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .2\3. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .3Junction
67\\?\Volume{cd2bd8e1-af68-414b-a81a-d7baa8b85c38}\NoNetDir\The network name cannot be found.UNC\localhost\NoNetworkGoFilePathSymbolicLink
67\\?\Volume{cd2bd8e1-af68-414b-a81a-d7baa8b85c38}\NoNetDirNoParse\The network name cannot be found.UNC\localhost\NoNetworkGoFilePathSymbolicLink
3\\?\Volume{cd2bd8e1-af68-414b-a81a-d7baa8b85c38}\Peculiar\1. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1\Long12\readlink \\?\Volume{cd2bd8e1-af68-414b-a81a-d7baa8b85c38}\Peculiar\1. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1\Long12: The system cannot find the path specified.Volume{cd2bd8e1-af68-414b-a81a-d7baa8b85c38}\Peculiar\1. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1\2. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .2Junction
3\\?\Volume{cd2bd8e1-af68-414b-a81a-d7baa8b85c38}\Peculiar\FileHardLink.txt\The system cannot find the path specified.HardLink
3\\?\Volume{cd2bd8e1-af68-414b-a81a-d7baa8b85c38}\Peculiar\FileLink.txt\readlink \\?\Volume{cd2bd8e1-af68-414b-a81a-d7baa8b85c38}\Peculiar\FileLink.txt: The system cannot find the path specified.Volume{cd2bd8e1-af68-414b-a81a-d7baa8b85c38}\Peculiar\OneFile\file.txtSymbolicLink
3\\?\Volume{cd2bd8e1-af68-414b-a81a-d7baa8b85c38}\Peculiar\GitLike\RepoA\Submodule\readlink \\?\Volume{cd2bd8e1-af68-414b-a81a-d7baa8b85c38}\Peculiar\GitLike\RepoA\Submodule: The system cannot find the path specified.Volume{cd2bd8e1-af68-414b-a81a-d7baa8b85c38}\Peculiar\GitLike\RepoBSymbolicLink
2\\?\Volume{cd2bd8e1-af68-414b-a81a-d7baa8b85c38}\UncDir\The system cannot find the file specified.UNC\localhost\GoFilePathSymbolicLink
2\\?\Volume{cd2bd8e1-af68-414b-a81a-d7baa8b85c38}\UncDirNoParse\The system cannot find the file specified.UNC\localhost\GoFilePathSymbolicLink
F:\F:\
3F:\Long1The system cannot find the path specified.F:\Peculiar\1. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1Junction
3F:\Long1\Long12The system cannot find the path specified.F:\Peculiar\1. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1\2. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .2Junction
3F:\Long2The system cannot find the path specified.F:\Peculiar\1. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1\2. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .2Junction
3F:\Long3The system cannot find the path specified.F:\Peculiar\1. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1\2. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .2\3. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .3Junction
67F:\NoNetDirThe network name cannot be found.UNC\localhost\NoNetworkGoFilePathSymbolicLink
67F:\NoNetDirNoParseThe network name cannot be found.UNC\localhost\NoNetworkGoFilePathSymbolicLink
3F:\Peculiar\1. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1\Long12The system cannot find the path specified.F:\Peculiar\1. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .1\2. GoFilePath Directory ___(...Total Length MAX_PATH-5...)___ .2Junction
F:\Peculiar\FileHardLink.txtF:\Peculiar\FileHardLink.txtHardLink
F:\Peculiar\FileLink.txtF:\Peculiar\OneFile\file.txtF:\Peculiar\OneFile\file.txtSymbolicLink
F:\Peculiar\GitLike\RepoA\SubmoduleF:\Peculiar\GitLike\RepoBF:\Peculiar\GitLike\RepoBSymbolicLink
2F:\UncDirThe system cannot find the file specified.UNC\localhost\GoFilePathSymbolicLink
2F:\UncDirNoParseThe system cannot find the file specified.UNC\localhost\GoFilePathSymbolicLink
D:\D:\
B:\B:\
2\\localhost\GoFilePathThe system cannot find the file specified.
2\\localhost\GoFilePathNoParseThe system cannot find the file specified.

evalsymlinks.results.brief.html

The error code -111 means that there was any go error without an error code.
The situations under C:\go and F:\ are about the same, although F:\ is on a VHD and C:\ is attached hardware.
B:\ and D:\ are SMB mappings to a share on \\localhost for which the root is also included as a UNC path \\localhost\share.

I closed #40095 on grounds that there is agreement that EvalSymlinks should not be fixed in any way, but rather replaced and even broken further to fix the issue that it returns local paths from remote machines.

is there any progress on this? Is there on going work on replacing EvalSymlinks? Thanks!

#42201 failed.

I think this is still an important issue which is very hard to solve today. But there are lots of great discussion here and the other thread. So the plan is to document some of the conclusions somewhere?

AFAIK, there is no plan. Feel free to submit a change to the docs. It should indicate that ppl who need EvalSymlinks on Windows should use the WinAPI via x/sys/windows. And perhaps reference this issue and the one I mentioned above.

Related to https://github.com/golang/go/issues/39786#issuecomment-1182091680 as a nieth occurence


Switch default branch to main and fix tests

This PR changes the default branch to "main" everywhere master is used, in particular for the notebook building job (for the rest it's the default in internal functions, which is trumped by the version set when building the doc anyway).
It also fixes a few tests due to the recent reorganization in Transformers splitting file_utils in several submodules.

No, the command picks the default branch in the _config.py and sets it to master.