Not an issue

Is it possible to run sparkler without docker?
I already have a python set up, I want to integrate sparkler

Yes. it's possible (we have done that before creating docker image) but requires more effort.

Setup Solr: https://github.com/USCDataScience/sparkler/wiki/sparkler-0.1
Build Sparkler: run mvn package -DskipTests at the root of this project dir.

See this dockerfile
https://github.com/USCDataScience/sparkler/blob/5c2201310623b70e6bf024e51e521eb4bffc4723/sparkler-deployment/docker/Dockerfile#L38-L55


Issues Authenticating to AWS registry

Hi,
Thank you for creating this project, I am enjoying it so far.
I am having some difficulty configuring terry to login to my private AWS ECR. I had things working with public docker beforehand.
My repository URI is
 repositoryUri": "123456.dkr.ecr.us-west-2.amazonaws.com/
aws ecr get-login-password --region us-west-2 | docker login --username AWS --password-stdin 123456.dkr.ecr.us-west-2.amazonaws.com
results in a successful login in local testing, and i've pushed containers with this method.
my config.yml looks as such: (harcoding in the file while i troubleshooot)
container_registry_username: AWS
container_registry_password: <AKIAR...>~<j...1>
container_registry_strategy: aws # If using AWS ECR, specify "aws"

output from terry on run:
TASK [Authenticate to the container registry] **********************************
skipping: [<IP_ADDRESS>]
included: /opt/terry-the-terraformer/playbooks/core/login-to-container-registry.yml for <IP_ADDRESS>

TASK [Prepare the container registry URL for parsing] **************************
skipping: [<IP_ADDRESS>]

TASK [Extract the AWS Account ID and Region from ExtractCR URL] **********************
skipping: [<IP_ADDRESS>]

TASK [Authenticate to the container registry (aws strategy)] *******************
skipping: [<IP_ADDRESS>]

TASK [Authenticate to the container registry (default strategy)] ***************
fatal: [<IP_ADDRESS>]: FAILED! => {"changed": false, "msg": "Logging into https://123456.dkr.ecr.us-west-2.amazonaws.com for user AWS failed - 500 Server Error for http+docker://localhost/v1.41/auth: Internal Server Error (\"login attempt to https://123456.dkr.ecr.us-west-2.amazonaws.com/v2/ failed with status: 400 Bad Request\")"}

I see that it's a 400 bad request, and probably an issue with my config.yml - but I can't figure out what syntax it's looking for, if I've done something wrong.
I"ll make a PR to improve the config-example.yml once I know what I'm doing wrong.

Hi!
I noticed some code changes a few hours ago related to AWS Authentication, I tested what is here, by pulling the new version of the code and reconfiguring my config.yml files.
Where <IP_ADDRESS> is the address of the teamserver that a container image is being requested (cobaltstrike, using the container mappings example.yml updated with the appropriate image location).
skipping: [<IP_ADDRESS>]
included: /opt/new-terry-the-terraformer/terry-the-terraformer/playbooks/core/login-to-container-registry.yml for <IP_ADDRESS>

TASK [Install the AWS CLI] *****************************************************
skipping: [<IP_ADDRESS>]

TASK [Prepare the container registry URL for parsing] **************************
skipping: [<IP_ADDRESS>]

TASK [Extract the AWS Account ID and Region from ECR URL] **********************
skipping: [<IP_ADDRESS>]

TASK [Authenticate to the container registry (aws strategy)] *******************
skipping: [<IP_ADDRESS>]

TASK [Authenticate to the container registry (default strategy)] ***************
fatal: [<IP_ADDRESS>]: FAILED! => {"changed": false, "msg": "Logging into 123456dkr.ecr.us-west-2.amazonaws.com for user AKIA.... failed - 500 Server Error for http+docker://localhost/v1.41/auth: Internal Server Error (\"login attempt to https://123456.dkr.ecr.us-west-2.amazonaws.com/v2/ failed with status: 401 Unauthorized\")"}

My config.yml looks like this for AWS", which matches your new, updated descriptions: - thank you for those.
Something is still not right, but I am unable to troubleshoot why the login steps are skipped for a host where it is required.
 container_registry: 123456.dkr.ecr.us-west-2.amazonaws.com
  container_registry_username: AKIA....
  container_registry_password: blah....
  container_registry_strategy: aws # If using AWS ECR, specify "aws"

Hey! Totally missed the first issue, but I am still in development of support for AWS ECR. I have found a few bugs that still need working out

It looks like the bug you are seeing is exactly the bug I need to fix. Terry will not cascade the value in the config that you have set as aws to the runtime. I will look into this tonight unless you want to make a PR

Fixed https://github.com/ezra-buckingham/terry-the-terraformer/commit/53a3b05b501a3998f91ba91cb5b668ea1aaf988c


synchronized / nothrow

What is the current situation with synchronized being nothrow? The comment here https://github.com/rejectedsoftware/vibe.d/blob/master/source/vibe/core/drivers/libevent2.d#L624 seems to indicate that the workaround is only necessary up to DMD 2.067, but I'm getting compile errors on DMD Git master (which has recently bumped its version to 2.068):
source/vibe/core/drivers/libevent2.d(631): Error: '_d_monitorenter' is not nothrow
source/vibe/core/drivers/libevent2.d(631): Error: '_d_monitorexit' is not nothrow
source/vibe/core/drivers/libevent2.d(622): Error: function 'vibe.core.drivers.libevent2.Libevent2ManualEvent.emit' is nothrow yet may throw
source/vibe/utils/memory.d(131): Error: '_d_monitorenter' is not nothrow
source/vibe/utils/memory.d(131): Error: '_d_monitorexit' is not nothrow
source/vibe/utils/memory.d(124): Error: function 'vibe.utils.memory.LockAllocator.alloc' is nothrow yet may throw
source/vibe/utils/memory.d(146): Error: '_d_monitorenter' is not nothrow
source/vibe/utils/memory.d(146): Error: '_d_monitorexit' is not nothrow
source/vibe/utils/memory.d(134): Error: function 'vibe.utils.memory.LockAllocator.realloc' is nothrow yet may throw
source/vibe/utils/memory.d(160): Error: '_d_monitorenter' is not nothrow
source/vibe/utils/memory.d(160): Error: '_d_monitorexit' is not nothrow
source/vibe/utils/memory.d(149): Error: function 'vibe.utils.memory.LockAllocator.free' is nothrow yet may throw

The workaround seems to be with the scope(failure) assert(false) which is restricted to DMD <= 2.067 right now. On my build I changed this to DMD <= 2.068

Yes, but judging from the comment, this shouldn't be necessary anymore?

The change was reverted in 2.067, thanks to @MartinNowak . But it was just
a delay, and I remember @s-ludwig mentionning that 'Vibe.d mutexes are
never nothrow'. Don't know what the current status is though, but it seems
safe to edit the static if to be <= 2068.
Le 10 mai 2015 12:49, "Marc Schütz"<EMAIL_ADDRESS>a écrit :

Yes, but judging from the comment, this shouldn't be necessary anymore?
—
Reply to this email directly or view it on GitHub.


Cannot Run Webpack 2 Example

When trying to run the prokect in example/webpack-2 I am getting the following error:
 94% asset optimizationError: Error: locals[0] does not appear to be a `module` object with Hot Module replacement API enabled. You should disable react-transform-hmr in production by using `env` section in Babel configuration. See the example in README: https://github.com/gaearon/react-transform-hmr
Steps to Reproduce:

Pull repository
cd examples/webpack-2
yarn install
./node_modules/webpack/bin/webpack.js --env=prod --config=webpack.config.prod.js --progress --profile --colors

Fairly minor in the grand scheme of things, but I thought I would report it just in case it was uncaught.
Thanks for your work on this!

Hey, thanks for bringing this up. Do you know what the issue was?

@iansinnott sorry I didnt see this notification sooner. I do not recall, I'm happy to attempt to reproduce if you think it will help!

OK, no worries @arnoldsandoval. I was just wondering in case someone else ran into the same issue but no need to go to the trouble of repro-ing


HHH-10874 - @Where annotation is not processed with "Extra-lazy" loading

For bidirectional collections, the  where clause is now considered when calculating the size() of the LazyCollectionOption.EXTRA annotated collections

Thank you @vladmihalcea for your assistance on this issue! Much appreciated :+1:

Hi @vladmihalcea ,
it looks good to me

Thanks @dreab8


Marshal result of ContructTrap

See: https://microsoft.visualstudio.com//defaultcollection/OS/_workItems?_a=edit&fullScreen=false&id=10057382&triage=true
Marshal the result returned by ConstructTrap.

@leirocks - Please help review.

Thanks @leirocks


make locations for sudoer rules configurable

when placing the sudo rule files for oneadmin and imaginator the module assumed default locations
which don't work out in our case. Added a configuration switch for each file location.

the commit is fine. I am only missing the data validation.

rebased on the commit that fixes the travis build so that we get to see some green here instead of the sea of red.


Addressed Justin's 16, 17, 18

LGTM. SECONDS_IN_A_DAY := 86400?

LGTM. SECONDS_IN_A_DAY := 86400?

Just added. Also went through and made sure the code actually compiles in Vyper.

@vbuterin ready to merge?


Group track-related types in a common file

Purpose
As we're about to add a type for timed text tracks and some related enums, we decided it would be more tidy to keep those types together in the same file, mirrorring the organization of code on the backend side, rather than split them into an arbitrary number of files.
We also need to make apparent the fact that states are shared between different types of tracks, which the name videoState does not convey.
Proposal

[x] Group track-related types in a types/tracks.ts file
[x] Rename videoState to trackState so it can be cleanly used for both video tracks and timed text tracks.

I'm not sure to understand why you are renaming video in tracks. I understand that they have the same enume state but it's a little bit confusing in the code when you compare the video.state with the tracksState.

It's because timedTextTracks will also have a state field that can contain the exact same values. Hence the possible values of this state field being trackState, not videoState.
See here in the backend how the state choices are reused for other types of tracks than video. video is just one of the kinds of tracks

Maybe choose a common name but something else than Track to avoid confusion with the use we make of this name in the backend?

@sampaccoud Do you have any suggestion to offer? I'm have trouble coming up with anything else...

processingState ? treatmentState ?

I think processing is confusing since it's once of the possible states in the enum. Likewise treatment does not really describe what the enum can contain.
As it's stands I'd rather keep trackState @sampaccoud @lunika (the only other names I can think of would be the ambiguous state or the ugly and ambiguous trackOrVideoState)
I think it makes sense that a video is just one kind of track.


Upstream GEN dialect

This is an umbrella ticket to track GEN dialect upstreaming.

First step is to publish an RFC and get consensus from the LLVM/MLIR community.

The RFC is live: https://discourse.llvm.org/t/rfc-add-gen-dialect-for-intel-gpus/76753

The RFC for upstreaming the GEN dialect to MLIR is currently under discussion. We should consider this work blocked until we have reached agreement with the community on this RFC.

This ticket is not current


Don't re-create the structTreeLayer on zooming and rotation

Compared to the recent PR #15722 for the textLayer this one should be a (comparatively) much a smaller win overall, since most documents don't have any structTree-data and the required parsing should be cheaper. However, it seems to me that it cannot hurt to improve this nonetheless.
Note that by moving the structTreeLayer initialization we remove the need for the "textlayerrendered" event listener, which thus simplifies the code a little bit.
Also, removes the API-caching of the structTree-data since this was basically done to offset the lack of caching in the viewer.

/botio integrationtest

/botio test

/botio-linux preview


Revamp test scenarios

Codecov Report
Attention: Patch coverage is 0% with 11 lines in your changes missing coverage. Please review.

Project coverage is 5.68%. Comparing base (fa551e5) to head (a34f570).
Report is 1 commits behind head on main.

Files
Patch %
Lines

...t/DifferentiationInterfaceForwardDiffExt/onearg.jl
0.00%
11 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #323       +/-   ##
==========================================
- Coverage   96.04%   5.68%   -90.36%
==========================================
  Files          95      63       -32
  Lines        4403    2320     -2083
==========================================
- Hits         4229     132     -4097
- Misses        174    2188     +2014

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Explicit SendEnv variables for SSH

Closes #183

[Current coverage][cc-pull] is 87.93%

Merging [#185][cc-pull] into [master][cc-base-branch] will not change coverage

@@             master       #185   diff @@
==========================================
  Files            36         36
  Lines          1144       1144
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits           1006       1006
  Misses          138        138
  Partials          0          0

Powered by Codecov. Last updated by [4d4b381...0f4d1eb][cc-compare]
[cc-base-branch]: https://codecov.io/gh/aptible/aptible-cli/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/aptible/aptible-cli/compare/4d4b3815aeaddda8263a0e1ce19f911ab468c465...0f4d1eb90588f1c43fe329e4ed9c7e703d507a45
[cc-pull]: https://codecov.io/gh/aptible/aptible-cli/pull/185?src=pr

Thanks for the PR @naw ; this is unfortunately a little more prevalent, so we're going to fix this more completely with: https://github.com/aptible/aptible-cli/pull/193
Thanks again for the report!


Support xgboost.Booster

Support explain prediction and weights. Fixes #193
Since the booster does not allow querying parameters that it was trained with (https://github.com/dmlc/xgboost/issues/584), I had two add one required (if booster is passed) argument is_regression for both explain_weights and explain_prediction. I also added an optional missing argument for  explain_prediction with np.nan default.

Codecov Report

Merging #210 into master will decrease coverage by 0.36%.
The diff coverage is 90.69%.

@@            Coverage Diff             @@
##           master     #210      +/-   ##
==========================================
- Coverage   97.33%   96.97%   -0.37%
==========================================
  Files          41       41
  Lines        2517     2544      +27
  Branches      478      487       +9
==========================================
+ Hits         2450     2467      +17
- Misses         35       40       +5
- Partials       32       37       +5

Impacted Files
Coverage Δ

eli5/xgboost.py
97.07% <90.69%> (-2.23%)
:arrow_down:

eli5/_feature_names.py
95.28% <0%> (-1.89%)
:arrow_down:

eli5/formatters/text.py
97.41% <0%> (-1.73%)
:arrow_down:

eli5/sklearn/unhashing.py
95.73% <0%> (-1.22%)
:arrow_down:

@kmike now the docs are in place and tests should be green. Could you please review this?

Thanks @lopuhin, the pull request looks great!

Thanks for review and great suggestions @kmike !


TypeError: unsupported operand type(s) for |: 'type' and '_GenericAlias'

Error when open the link.
Python 3.9.14
Redhat EL 9.1
You can now view your Streamlit app in your browser.
Network URL: http://x.x.x.x:8501
External URL: http://x.x.x.x:8501
2023-02-22 22:18:53.256 st.experimental_memo is deprecated. Please use the new command st.cache_data instead, which has the same behavior. More information in our docs.
2023-02-22 22:18:53.260 st.experimental_memo is deprecated. Please use the new command st.cache_data instead, which has the same behavior. More information in our docs.
2023-02-22 22:18:53.261 st.experimental_memo is deprecated. Please use the new command st.cache_data instead, which has the same behavior. More information in our docs.
2023-02-22 22:18:53.262 st.experimental_memo is deprecated. Please use the new command st.cache_data instead, which has the same behavior. More information in our docs.
2023-02-22 22:18:53.263 Uncaught app exception
Traceback (most recent call last):
File "/home/chatgpt/.local/lib/python3.9/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 565, in _run_script
exec(code, module.dict)
File "/home/chatgpt/file-gpt/app.py", line 4, in
from utils import (
File "/home/chatgpt/file-gpt/utils.py", line 162, in
def wrap_text_in_html(text: str | List[str]) -> str:

TypeError: unsupported operand type(s) for |: 'type' and '_GenericAlias'

The issue will be resolved if you upgrade to python 3.10+


Font and alpha level of textures are not shown correctly until the transition is finished

While the transition is running, the font of the second screen is not shown correctly. There is only some default font, but not the font from my skin. After the transition is finished, everything looks normal again. The same happens with the alpha level: During the transition, the alpha level of textures is always 100%.
However, this only happens to the second screen.
Maybe I am doing something wrong?
And thank you for publishing the library, its great!
Edit: Oh now it seems to work properly. In the transition class, I removed the following lines:
Gdx.gl.glClearColor(0.0f, 0.0f, 0.0f, 1.0f); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

Thanks!
I will test it out and then fix it.


Balance of NFTs on Polygon aren't detected (remains at 0). The tokens aren't autodetected either

A user complained about not seeing his already sent NFT (Polygon) to his Alpha. I added his wallet as a watch wallet and tried to import the token without success.
Contract address: 0x612ee4BfD2EE2EAA7ef44120543C78AB4Bd16635
Transaction Hash: 0x6bec38eafaa857a58da983d9742ae1d2513b1b865202f638bb38edcf5129942b

Important note:
I wanted to create another repo but I think it's related. User did not give details but I do not think the user added the contract manually, however the token appears on his wallet but when he clicks on the notification "You don't have any tokens" pops up.

New information related with this case:
User has another wallet address with the same problem.
When user click on any of the 4 NFTs a error occurs saying You don't have any tokens.
Wallet: 0x32024F224b493Da02B2b9B985ee2fEe37Eed966b

Found the reason.

@hboon, And now user got this error message:

@hboon, And now user got this error message:

I've created a new issue #4937 for this Would you be able to help describe how to reproduce there?

@oa-s help see if this is still reproducible?

guess we've fixed it in some pr earlier

Yes, it sounds familiar :)


How to get request json on phase: 'response' ? (to responde conditionally something based on the sent data)

Hi, I'm struggling on how to get the request body:
proxy.intercept({
  phase: 'response'
}, function(req, resp) {
  var requestHash = {
    url: req.url,
    method: req.method,
    headers: req.headers,
    body: req.json // <- wont work, eithe req.body
  };
  console.log('======================== REQ');
  console.log(req);
  console.log('======================== REQ HASH');
  console.log(requestHash);
  resp.json = {
    happy: 'to be with you'
  };
});

Never mind, i've read this and answered my self
http://greim.github.io/hoxy/#request-json

Okey !!!
I've seen that the .JSON only works with 'request' phase. So how could I respond selectively different data based on a condition that uses the body (req.json) ?

Did you mean to re-open this?

Yup, I've edited the title so it's more accurate.

If I understand the question, you'd just use if (req.json.something...) somewhere in the intercept handler.

Because I need the servers answer. I'm trying:
a) to extend servers API. For example, if req.json.extend === true then _.assign(resp.json, { more: true })
so i can finally ) When incoming request, answer a stored (in mongo) version of it ( aka cached ), then continue the request so I can update that stored value with the newest server response
_.assign is the new alias for old _.extend in lodash.

proxy.intercept({
  phase: 'request',
  as: 'json'
}, function(req, resp) {
  var a;
  var requestHash = {
    url: req.url,
    method: req.method,
    headers: req.headers,
    body: req.json
  };
  _.assign(resp.json, {extende: true}); // <- Response isn't being extende, on this phase
  console.log('Check for JSON -> ', req.json.nickname);
  console.log('Respond default extende ->', resp.json);
});

proxy.intercept({
  phase: 'response',
  as: 'json'
}, function(req, resp) {
  var a;
  var requestHash = {
    url: req.url,
    method: req.method,
    headers: req.headers,
    body: req.json
  };
  // _.assign(resp.json, {extende: true}); // <- Response here does extends here, but I've got undefined on req.json
  console.log('Store the value of original -> ', req.json.nickname);
  console.log('With this data, not extended', resp.json);
});

You could assign response.json = { ... } during the request phase, but be warned it will suppress the call to the server. http://greim.github.io/hoxy/#response-population
If that isn't what you want, check out this: http://greim.github.io/hoxy/#cycle-data
It would allow you to pass a value from the request to the response cycle which should get you where you need.

Thanks !! I'll give it a try, and tell you later ;)

That did the trick !!! Thanks a lot !!!!


Request

Hi,its not for an issue but im wondering what happens if changing the generated file name will it still work?
Also why not able to setup with my own domain mail ?
Thanks

im receiving nothin in my gmail..did any changes and still not works..target windows 8 thks

I have submitted a pull request for this fix, meanwhile you can clone from the fork I made :)
https://github.com/jinwei908/BeeLogger
That should work perfectly for you :)


NEON: Replace Listing subscribe bash script with Terraform data object

Tested the NEON module deployment on Staging environment and it was successful.


feat/meraki-32-33-34-35/create-update-delete

feat 32-admin create token
feat 33-admin update token
feat 34-admin delete token
feat 35- admin add token to user wallet

@ngxvu too many commits, too many tasks in 1 PR

@ngxvu commit message didn't have enough context to explain the code.

@ngxvu why did your PR has @LgThinh commits?


Ability to change files

Hi,
I don't know where to put some improvement ideas I had for this so I'm opening them as issues. If you think they might not be the best ideas or the path you want for PiGallery, just ignore and close them ;)
I would like to be able to:

Delete photos
Move photos between folders
Rename photos

Regards,
Marco

Hi Marco,
Sorry I have no intention currently to make the app editable.
The aim of the app is to create a new view for an already existing folder for my family.
I'm keen on my photos, they are well organized, geo-tagged, keyword-ed. I don't want anybody besides me to change that and I'm using better tools for this purpose.
First of all its only my hobby project that I make available for public use.
If you are looking for editing option, you can take a look at Lychee.
I have never tried, but heard good things about it.
Patrik

I'm closing this issue due to inactivity

I'm keen on my photos, they are well organized, geo-tagged, keyword-ed. I don't want anybody besides me to change that and I'm using better tools for this purpose.

I know that this old thread, but just wanted to ask @bpatrik if he has any suggestions about tools for organizing and keywording photos. I used to use Picasa desktop but that has been long decommissioned.

Hi,
I'm using Adobe Lightroom. Pigalley2 also optimized for that, but there must be open source apps that can do the same.


Fix doc

Checklist

[ ] Updated guide with pertinent info (may not always apply).
[ ] Squash down commits to one or two logical commits which clearly describe the work you've done.
[ ] Unittest is a friend:)

This change is

Thanks!
The commit message should start with Fixdoc: . Please amend the commit and force push the branch.


python3Packages.entrypoint2: 0.2.4 -> 1.0

Motivation for this change
Routine upgrade, remove some no longer needed workarounds.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 155796 run on x86_64-linux 1

4 packages built:

python310Packages.entrypoint2
python310Packages.pyscreenshot
python39Packages.entrypoint2
python39Packages.pyscreenshot

Result of nixpkgs-review pr 155796 run on x86_64-linux 1

4 packages built:

python310Packages.entrypoint2
python310Packages.pyscreenshot
python39Packages.entrypoint2
python39Packages.pyscreenshot


fix: update tests and add new deployment

Description

This PR resolves several compatibility issues caused by recent updates to the protocol core. Key changes include:

Updated GroupingWorkflow tests to account for an additional parameter required for the mock groupingModule deployment.
Replaced groupRewardPool with the new EvenSplitGroupPool from the core protocol.
Updated the mock IPGraph address.
Adjusted royalty calculations in the royalty integration tests.
Deployed the project to work with the latest version of the protocol core.

LGTM.


duplicate tags created between HTML s  and "tags" array

When the HTML specifies which tags have previously been selected (for example, in server-side database-driven HTML), Select2 (v. 4.0.0) fails to recognize that those tags match existing members of the "tags" array specified in the JQuery invocation of the Select2 instance. Therefore the dropdown shows duplicate entries. Instead the dropdown should only show the remaining members of the "tags" array that have not previously been selected.
Demonstration: http://jsfiddle.net/alanng/zg1paLsj/

Passing an array into tags is no longer the recommended way to pre-initialize things. You should instead use a combination of data and tags.
https://jsfiddle.net/r7cop362/


Fix build for Swift 2.1.1

Ping

Unit tests are failing. I created branch pr/3 for this pull request, please fix there. I also setup Travis CI. Please make sure everything works and resubmit pull request. Thanks!

I've posted about how to port code from 1 to 2<EMAIL_ADDRESS>i guess that travis issue is because i have to rebase to master to get latest .travis file

Thanks for writing up on my little tool, nice exposure :+1:
I tried to do the merging, but I didn't succeed. Can I ask you to do the following:

Make sure that your changes are based on my branch pr/3; I think you should be able to do that by merging in the latest from pr/3 into your working branch swift-2.1
Verify that the Travis build is working
Create a new pull request and close this one.

Thanks again!

Didn't mean to close, bit too early. You can close if the above succeeds.

Can you review the patches to see why it is failing there?
On Thu, Jan 14, 2016 at 11:14 AM, Stefan van den Oord <
<EMAIL_ADDRESS>wrote:

Didn't mean to close, bit too early. You can close if the above succeeds.
—
Reply to this email directly or view it on GitHub
https://github.com/svdo/ipatool/pull/3#issuecomment-171595217.

Closing, not applicable anymore.


HALON-308: Declare relevant exchanges when sspl-hl service starts.

Created by: qnikst

Closing as an obsolete


Minor Cleanup!

I was adding my websites login system to MultiOgar-Edited and noticed that some parts of the code can be "cleaned".
Very small changes, just to make it better on the eye ;)

Thank you :)


feat(add hidedecisionmakingprocessguidelink): Add hideDecisionMakingProcessGuideLink

Add hideDecisionMakingProcessGuideLink

:tada: This PR is included in version 2.1.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 2.1.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


TensorFlow runtime precompiled binary for Windows

use:
https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.1.0rc1-cp35-cp35m-win_amd64.whl
( purelib\tensorflow\python_pywrap_tensorflow_internal.pyd --> libtensorflow.dll )
this doesn't work:
https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-cpu-windows-x86_64-1.1.0-rc1.zip

When running SampleTest after renaming tensorflow_jni.dll from zip to libtensorflow.dll :
Unable to find an entry point named 'TF_Version' in DLL 'libtensorflow'
Unable to find an entry point named 'TF_NewStatus' in DLL 'libtensorflow'
...

The JNI builds do not export the C/C++ API, the only export the functions required by JNI:
> dumpbin /EXPORTS tensorflow_jni.dll
Microsoft (R) COFF/PE Dumper Version 14.00.24215.1
Copyright (C) Microsoft Corporation.  All rights reserved.

Dump of file tensorflow_jni.dll

File Type: DLL

  Section contains the following exports for libtensorflow_jni.so

    00000000 characteristics
    58D31E6B time date stamp Thu Mar 23 01:01:31 2017
        0.00 version
           1 ordinal base
          50 number of functions
          50 number of names

    ordinal hint RVA      name

          1    0 0188CAB0 ?DEVICE_CPU@tensorflow@@3QEBDEB
          2    1 0188CAB8 ?DEVICE_GPU@tensorflow@@3QEBDEB
          3    2 0188CAC0 ?DEVICE_SYCL@tensorflow@@3QEBDEB
          4    3 000F4CD0 Java_org_tensorflow_Graph_allocate
          5    4 000F4CE0 Java_org_tensorflow_Graph_delete
          6    5 000F4CF0 Java_org_tensorflow_Graph_importGraphDef
          7    6 000F4E30 Java_org_tensorflow_Graph_operation
          8    7 000F4ED0 Java_org_tensorflow_Graph_toGraphDef

         ...

Currently, only the cmake builds export the C/C++ API. If you do not want to build Tensorflow, you can extract it from the CI whl artifact here:

download the wheel and unzip it
cd into .\*.data\purelib\tensorflow\python\
copy _pywrap_tensorflow_internal.pyd as libtensorflow.dll
copy libtensorflow.dll to your .NET project and you're all set!

> dumpbin /EXPORTS libtensorflow.dll
Microsoft (R) COFF/PE Dumper Version 14.00.24215.1
Copyright (C) Microsoft Corporation.  All rights reserved.

Dump of file libtensorflow.dll

File Type: DLL

 Section contains the following exports for _pywrap_tensorflow_internal.pyd

   00000000 characteristics
   58E45416 time date stamp Wed Apr  5 03:19:02 2017
       0.00 version
          1 ordinal base
      42374 number of functions
      42374 number of names

   ordinal hint RVA      name

         1    0 02783468 ?$TSS0@?1???$Initialize@$00@?$SparseSlice@Ubfloat16@tensorflow@@@?A0xa2b9e076@tensorflow@@QEAAXAEBV?$TensorMap@V?$Tensor@$$CBUbfloat16@tensorflow@@$01$00_J@Eigen@@$0BA@UMakePointer@2@@Eigen@@H@Z@4HA
         2    1 02783470 ?$TSS0@?1???$Initialize@$0A@@?$SparseSlice@Ubfloat16@tensorflow@@@?A0xa2b9e076@tensorflow@@QEAAXAEBV?$TensorMap@V?$Tensor@$$CBUbfloat16@tensorflow@@$01$00_J@Eigen@@$0BA@UMakePointer@2@@Eigen@@H@Z@4HA
         3    2 027812F0 ?$TSS0@?1???$locale_independent_strtonum@M@?A0x1bfb4b96@tensorflow@@YAMPEBDPEAPEBD@Z@4HA
         ...
     42247 A506 0013FC10 PyInit__pywrap_tensorflow_internal
     42248 A507 001239B0 TF_AbortWhile
     42249 A508 001239F0 TF_AddControlInput
     42250 A509 00123A00 TF_AddInput
     42251 A50A 00123A10 TF_AddInputList
     42252 A50B 00123CA0 TF_AllocateTensor
     42253 A50C 00123D10 TF_CloseDeprecatedSession
     42254 A50D 00123D10 TF_CloseSession
     42255 A50E 00123D60 TF_ColocateWith
     42256 A50F 00123EB0 TF_DataTypeSize
     42257 A510 00123EC0 TF_DeleteBuffer
     42258 A511 00123EF0 TF_DeleteDeprecatedSession
     42259 A512 00123F70 TF_DeleteGraph
     42260 A513 00123FE0 TF_DeleteImportGraphDefOptions
     42261 A514 00124010 TF_DeleteLibraryHandle
     42262 A515 018411A0 TF_DeletePRunHandle
     42263 A516 00124040 TF_DeleteSession
     42264 A517 00124140 TF_DeleteSessionOptions
     42265 A518 00124180 TF_DeleteStatus
     42266 A519 001241D0 TF_DeleteTensor
     42267 A51A 00124230 TF_Dim
     42268 A51B 00124240 TF_ExtendGraph
     ...

thank you,I will further test.

some working console examples would be great just to be sure that this approach is working

You could run the SampleTest, as per the README.

Thx:  After git clone: here are the failed tests [Win10 64bit]
t.AttributesTest ();
t.WhileTest ();

I suggest opening another issue to track those failures.

you can download libtensorflow.dll taken from:
https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.1.0rc1-cp35-cp35m-win_amd64.whl

t.WhileTest (); of SimpleTest will not work until this address????? Anyone as different view?
https://github.com/migueldeicaza/TensorFlowSharp/issues/26

I can't run, I'll libtensorflow_jni libtensorflow.dll and then put it into the bin folder, I do this right?
Error: untreated exception: System.DllNotFoundException: could not load DLL 'libtensorflow': the specified module could not be found. (exception from HRESULT:0x8007007E).
In TensorFlow.TFCore.TF_Version ()
In TensorFlow.TFCore.get_Version () position E:\Code\TensorFlow\Csharp\TensorFlowSharp-master\TensorFlowSharp\Tensorflow.cs: line number 54
In SampleTest.MainClass.Main (String[] args) location E:\Code\TensorFlow\Csharp\TensorFlowSharp-master\SampleTest\SampleTest.cs: line number 556

@szdree the JNI library will not work; follow steps I detailed above to get the correct libtensorflow.dll.

Same result
错误：未处理的异常：System.DllNotFoundException：无法加载DLL'libtensorflow'：无法找到指定的模块。（HRESULT异常：0x8007007E）。
Use：
HTTPS: //storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.1.0rc1-cp35-cp35m-win_amd64.whl
(purelib \ tensorflow \ python_pywrap_tensorflow_internal.pyd - > libtensorflow.dll)

I also get System.DllNotFoundException after following the steps above. Running the dumpbin command gave the correct output as above and I copied that dll into the Debug\Bin of SampleTest. However, I still get DllNotFound.

@szdree, I had the same issue. Running Dependency Walker revealed missing Python35.  I installed Python3.5 and then copied that dll alongside in the Debug\Bin and it resolved the DllNotFoundException.

@vsjc91 Mine is Python3.5 I haven't solved the problem yet.

try installing Anaconda:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/cmake/README.md#known-good-configurations

@goloskokovic     I was just installed   Anaconda

@goloskokovic   I was originally installed Anaconda

Running SampleTest (1.1.0-rc1) on Windows 10 / VS2015 using the above instructions (thanks!) I'm getting a System.AccessViolationException when it hits TestOuputShape->GetShape->TF_GraphGetTensorShape (TensorFlow.cs line 546) for the second constant.
I'm not seeing any obvious nulls, and the prior tests complete - has anybody else stubbed their toe on this one yet?

@avrshawn  same issue here , have no clue.

that seems overly complicated. there should be a powershell build script which determines the windows version, downloads the proper files and puts the dll in the proper location, builds everything, and executes the tests. shouldn't be too hard.

Indeed. Unfortunately there isn't an official Windows build which can be downloaded; the best option is still to build it yourself using cmake.
Note that the Python related dependency issues above may be mitigated by this PR (although I've not tried it).

My suggestion is to build and integrate a lowest-common-denominator x86 dll with TensorFlowSharp until Google distributes an official Windows dll. That missing dll is a big barrier for C# development right now. (I'm assuming the PR to fix python dependencies works)
My guess is the TF dev team will eventually switch to a universal x86 library with runtime switches for the CPU optimizations -- nothing else really works for app distribution. If that happens then the C API dll becomes NuGet and off we go :)

If anyone is willing to give the .dll mentioned in https://github.com/tensorflow/tensorflow/issues/7258#issuecomment-301001697 a spin and leave any feedback on that issue, that would be great.

@asimshankar I get an error when I try to add a reference to tensorflow.dll to my VS2017 project. Am I misunderstanding how to integrate it?
Steps:

cloned TensorFlowSharp.git and building with VS2017 community. This successfully builds all the projects. As expected when I run SampleTest I get: System.DllNotFoundException: unable to load DLL 'libtensorflow'
downloaded and unzipped http://ci.tensorflow.org/view/Nightly/job/nightly-libtensorflow-windows/lastSuccessfulBuild/artifact/lib_package/libtensorflow-cpu-windows-x86_64.zip
in VS add Reference to SampleTest by browsing to the dll. But when I click OK I get an error: "A reference to ...\tensorflow.dll could not be added. Please make sure that the file is accessible, and that it is a valid assembly or COM component"

I created a NuGet package that should contain the Windows binary.  A simple test shows it works.

Can't get it to work. I did the following:

Creating a new console project and setting .NET target version to 4.6.1
adding the TensorFlowSharp 0.96.0 nuget package
adding a reference to the packages\TensorFlowSharp.0.96.0\lib\net461\libtensorflow.dll
including all files in packages\TensorFlowSharp.0.96.0\native\ and setting build action to Content and Copy if newer

When starting the project, I get the following error:
System.BadImageFormatException occurred
  HResult=0x8007000B
  Message=Could not load file or assembly 'TensorFlowSharp, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null' or one of its dependencies. An attempt was made to load a program with an incorrect format.

Windows version 10.0.15063.0

@MovGP0 That exception is most likely because your platform target is not x64; libtensorflow.dll is 64bit.

@andykernahan that worked. now only get a lot of warnings. nothing problematic:
2017-05-21 10:22:25.310807: W C:\tmp\_bazel_system\6fx6hpz4\execroot\nightly-libtensorflow-windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE instructions, but these are available on your machine and could speed up CPU computations.
2017-05-21 10:22:25.311268: W C:\tmp\_bazel_system\6fx6hpz4\execroot\nightly-libtensorflow-windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE2 instructions, but these are available on your machine and could speed up CPU computations.
2017-05-21 10:22:25.313023: W C:\tmp\_bazel_system\6fx6hpz4\execroot\nightly-libtensorflow-windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE3 instructions, but these are available on your machine and could speed up CPU computations.
2017-05-21 10:22:25.313090: W C:\tmp\_bazel_system\6fx6hpz4\execroot\nightly-libtensorflow-windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
2017-05-21 10:22:25.313154: W C:\tmp\_bazel_system\6fx6hpz4\execroot\nightly-libtensorflow-windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
2017-05-21 10:22:25.313218: W C:\tmp\_bazel_system\6fx6hpz4\execroot\nightly-libtensorflow-windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
2017-05-21 10:22:25.313279: W C:\tmp\_bazel_system\6fx6hpz4\execroot\nightly-libtensorflow-windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX2 instructions, but these are available on your machine and could speed up CPU computations.
2017-05-21 10:22:25.313332: W C:\tmp\_bazel_system\6fx6hpz4\execroot\nightly-libtensorflow-windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use FMA instructions, but these are available on your machine and could speed up CPU computations.

@MovGP0 Yes, they are expected as the CI builds are not built with march=native.

@MovGP0 You do not need to manually copy the native files, it should be done for you.
The warnings are normal.

GPU one?

I've just tried running SampleTest under Win10 / MS .NET Framework 4.6.1 and I get the following runtime error:
TensorFlow version: 1.2.0-rc0
Testing Parameters with indexes
2017-05-24 22:16:50.519124: W C:\tmp\_bazel_system\6fx6hpz4\execroot\nightly-libtensorflow-windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE instructions, but these are available on your machine and could speed up CPU computations.
2017-05-24 22:16:50.519645: W C:\tmp\_bazel_system\6fx6hpz4\execroot\nightly-libtensorflow-windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE2 instructions, but these are available on your machine and could speed up CPU computations.
2017-05-24 22:16:50.519684: W C:\tmp\_bazel_system\6fx6hpz4\execroot\nightly-libtensorflow-windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE3 instructions, but these are available on your machine and could speed up CPU computations.
2017-05-24 22:16:50.519719: W C:\tmp\_bazel_system\6fx6hpz4\execroot\nightly-libtensorflow-windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
2017-05-24 22:16:50.519754: W C:\tmp\_bazel_system\6fx6hpz4\execroot\nightly-libtensorflow-windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
success
Testing AddControlInput for assertions
Success, got the expected exception when using tensorflow control inputs to assert
Handle:<PHONE_NUMBER>504
FinishHandle:<PHONE_NUMBER>392
Handle:<PHONE_NUMBER>616
FinishHandle:<PHONE_NUMBER>392
Variables
Result of variable read 0 -> 1.5
Result of variable read 1 -> 2
Result of variable read 2 -> 2.5
Result of variable read 3 -> 3
Result of variable read 4 -> 3.5

Unhandled Exception: System.EntryPointNotFoundException: Unable to find an entry point named 'TF_NewWhile' in DLL 'tensorflow.dll'.
   at TensorFlow.TFGraph.TF_NewWhile(IntPtr g, TFOutput[] inputs, Int32 ninputs, IntPtr status)
   at TensorFlow.TFGraph.While(TFOutput[] inputs, WhileConstructor constructor, TFStatus status) in C:\Users\pawelgorczynski\Repos\TensorFlowSharp\TensorFlowSharp\Tensorflow.cs:line 846
   at SampleTest.MainClass.WhileTester.Init(Int32 ninputs, WhileConstructor constructor) in C:\Users\pawelgorczynski\Repos\TensorFlowSharp\SampleTest\LowLevelTests.cs:line 189
   at SampleTest.MainClass.WhileTest() in C:\Users\pawelgorczynski\Repos\TensorFlowSharp\SampleTest\LowLevelTests.cs:line 220
   at SampleTest.MainClass.Main(String[] args) in C:\Users\pawelgorczynski\Repos\TensorFlowSharp\SampleTest\SampleTest.cs:line 319
Press any key to continue . . .

The behavior is the same for both
https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-cpu-windows-x86_64-1.2.0-rc0.zip
and
http://ci.tensorflow.org/view/All/job/nightly-libtensorflow-windows/

Ah, it seems that the TF_While related symbols aren't being exported in the .dll. I'll try to get that fixed for 1.2-rc1 or 1.3.
In the mean time, any while loop functionality will not be available on Windows.

@asimshankar would it be possible to have a tensorflow.dll 32 bits too ?

Properly using TensorFlow.dll from Harbour:
http://forums.fivetechsupport.com/viewtopic.php?p=202354#p202354
https://harbour.github.io/
many thanks :-)

I get this when using the TensorFlow.dll:
2017-06-06 12:48:43.269929: W C:\tmp_bazel_system\6fx6hpz4\execroot\nightly-libtensorflow-windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE instructions, but these are available on your machine and could speed up CPU computations.
2017-06-06 12:48:43.270149: W C:\tmp_bazel_system\6fx6hpz4\execroot\nightly-libtensorflow-windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE2 instructions, but these are available on your machine and could speed up CPU computations.
2017-06-06 12:48:43.272532: W C:\tmp_bazel_system\6fx6hpz4\execroot\nightly-libtensorflow-windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE3 instructions, but these are available on your machine and could speed up CPU computations.
2017-06-06 12:48:43.273426: W C:\tmp_bazel_system\6fx6hpz4\execroot\nightly-libtensorflow-windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
2017-06-06 12:48:43.273932: W C:\tmp_bazel_system\6fx6hpz4\execroot\nightly-libtensorflow-windows\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.

@FiveTechSoft That is expected.

how to compile the dll from the latest tf source code?

how to compile the 32bit dll from the latest tf source code? I want to use the 32bit dll in my own c/c++ project on windows7. @andykernahan  thanks very much.

I am downloading the binaries from the daily build hosts from TensorFlow.
I feel that questions on how to download the native bits should go into the tensorflow github repo, not here.

@mwk888  Thanks for your post. It solved my problem.
When I was using tensorflowSharp 1.3, I had no problems but when I updated to version 1.5, I got this error.
1 year later, using tensorflowSharp 1.5 downloaded using nuGet packages manager in vs2015 and still need to do this? Why it was working tensorflowSharp 1.3 without have to do this but when I upgraded, the error came out? just curious about this.

the download URL is not working anymore.


vectorized BoozerLS residual evaluation

This PR introduces two capabilities:

calculating the Boozer residual for the BoozerLS algorithm using vectorized operations in cpp.  This is especially important for the Hessian evaluation, since one can quickly run out of memory using the original python implementation.
the boozer residual is the integrated squared PDE residual: \int residual(varphi, theta)^2 dvarphi dtheta.  This PR allows the user to weight the residual with 1/modB, preventing the residual from scaling with the coil currents, i.e., \int [residual(varphi, theta)/modB(varphi, theta)]^2 dvarphi dtheta.

Computing the Hessian for surfaces with mpol, ntor = N, I obtain the following timings in seconds:
N, non-vectorized, vectorized
1  0.12            0.06
2  0.82            0.10
3  2.95            0.29
4  7.59            0.67
5  17.56           1.25
6  killed          2.33
7  killed          4.02
8  killed          6.51
9  killed          9.98

If the new vectorized routine is much better, did you consider removing the old routine?

The algorithms in BoozerSurface.minimize_boozer_penalty_constraints_ls rely on the old routine and I preferred to leave it alone, rather than to do a larger refactor of the BoozerSurface class.  Specifically, the old routines can return the residual evaluated at all collocation points (a vector) or the sum of all residuals squared (a scalar).  The new routines only return the scalarized residual, while BoozerSurface.minimize_boozer_penalty_constraints_ls require the vector residual.

Similarly, it sounds like the new weight_inv_modB option improves robustness, so you could consider making it the only option, so there are fewer cases to maintain.

The BoozerExact algorithm assumes that the residuals are unweighted, so I think we should maintain both options.


Little typo in readme

I know it might not be that important but I thought I should report it anyways.
There is a typo right below Build for Third Party Node.js Runtimes, which says "thid" instead of "third".

thank you @rvagg! form merging my PR, you can close this issue @juanpenia


Can I put a logo (image file) in the Nav bar?

Version
Tell us which versions you are using:

react-native-router-flux v3.35.0?
react-native v0.35.0?

Expected behaviour
I am wondering if it is possible to have a logo (image file) in the Nav bar in place of titles? I would like the Logo to persist over all pages.

just use renderTitle={() => <Title/>}

        <Scene key="Demo"
          component={Views.Demo}
          titleStyle={titleStyle}
          getSceneStyle={getSceneStyle}
          navigationBarStyle={navStyle}
          NavigationBarBackgroundImage = {bgimage}
          renderRightButton={(e) => <RightButton />}
          renderLeftButton={(e) => <RightButton />}>
        </Scene>


Add rel=preconnect tag for cdn.shopify.com

This should be part of the index.html file in the starter. This allows browsers to start TLS handshake early for the Shopify CDN, which hosts most product images/3p data.

I would love to work on this issue.


Try calc(100% - {top_pane_height}px) css height instead of javascript size measurement.

Depends on #26.

This should also be done for main pane.

Duplicates with #70.


NotifyServiceRestRepositoryIT has two tests which do not succeed in GitHub CI

Describe the bug
The NotifyServiceRestRepositoryIT has two tests which are consistently failing in GitHub CI.

NotifyServiceInboundPatternConstraintRemoveOperationTest
NotifyServiceInboundPatternConstraintRemoveOperationBadRequestTest

However, these tests are always succeeding for me when I run them locally.  My suspicion is that they are failing in GitHub CI because the tests are running in a different order and encountering unexpected data.  This most often occurs when other tests are not sufficiently cleaning up their own data.  (It's also worth noting that the order of tests sometimes does change in GitHub CI...I suspect that has occurred recently, causing these tests to fail consistently.)
I've attempted to resolve these failures twice:

#9444 (merged as it seemed successful at the time. But the failures have appeared again.)
#9456  (closed without merging.  This might be worth referencing to see what fixes I attempted, but I was unable to get the tests to succeed.)

These tests have been temporarily disabled in #9458  They will require more investigation before they can be reenabled.

@abollini and @frabacche : I'm assigning this to you both as this test was added during the COAR Notify work (obviously).  I have not found a way to get these tests to succeed in GitHub CI (see description above)...they are consistently failing & have been disabled in #9458.  So, I'm hoping someone on your end will have time to dig into them to try to find a way to stabilize these tests again.

solution found and implemented at pull request: https://github.com/DSpace/DSpace/pull/9479


feat(link): add --force flag

Hi there, now that I'm using Pulsar, I find myself with a fair number of old Atom packages that need tweaks or updates, and so I'm doing this dance a lot:
$ git clone $PACKAGE_THAT_NEEDS_A_FIX_OR_UPDATE
$ cd $PACKAGE_THAT_NEEDS_A_FIX_OR_UPDATE
$ npm i
$ ppm link
Linking $CURRENTLY_INSTALLED_PACKAGE to $PACKAGE_THAT_NEEDS_A_FIX_OR_UPDATE failed: EEXIST: file already exists, symlink '$PACKAGE_THAT_NEEDS_A_FIX_OR_UPDATE' -> '$CURRENTLY_INSTALLED_PACKAGE'

# dang it!

Obviously, the fix is simple and easy (rm -rf $CURRENTLY_INSTALLED_PACKAGE & try again), but it also felt like a --force flag would be handy to just do that for me while rerunning the command.
This was a pretty trivial change, and I'm happy to make changes as desired. I added 2 tests: one to confirm that it errors if the target exists, and another to confirm that it nukes it and then links when used with the --force flag.
Alternatives
I briefly considered calling it link --triforce. ⚔
Thank you!

Thanks a ton for contributing!
This is honestly a fantastic idea! Although my only concern is the --force flag possibly not being obvious enough in behavior. Since this flag does completely erase data on the client system. Makes me almost want to suggest we call it --destroyOriginal or something aggressive, but at the same time this should only be data from the package, and not be anything a user can't just get back via a redownload.
So I'm 100% on board with the concept, as well as love the implementation, very much appreciating the specs you've written as well. But curious if @DeeDeeG has any thoughts on the best flag name.
But overall looks awesome!

only concern is the --force flag possibly not being obvious enough

I chose --force because it reminded me of rm -f ..., git branch --force ... and some other commands that have similar flags, so it felt pretty "standard" for this sort of thing. That said, I'm totally happy to change it if another option sounds better to you and/or the team.

Thanks a ton for contributing!

You're welcome. I'm happy to help out!

I'm fuzzy on the use case here.
Assume language-foo is a Pulsar package I've got installed, and I notice something I'd like to fix. Here's what I usually do:
cd ~/Code/AtomPackages # or whatever
git clone git@github.com:foo/language-foo
cd language-foo
npm install
ppm link --dev .

Packages in ~/.pulsar/packages/.dev shadow the ones in ~/.pulsar/packages — if a package exists at the former path in dev mode, it'll be loaded instead of the latter path. (This also requires that you run Pulsar in dev mode with pulsar --dev, of course.)
I think if a package is going to be removed from the directory, it should be uninstalled first, even if ppm is the one doing the uninstallation.
This isn't a veto; just want to understand it better.

From my understanding the use case is essentially:

A user installs a package from the Pulsar Package Registry, that was originally published to Atom.
They download the git repo to modify the package locally, and fix any issues they discover
To then install the package during this process they find them selves having to very consistently first uninstall, then install the package from a local repository.

So I can absolutely see the valid use case, and it does make complete sense, since very likely you'd want to be able to track your changes on your own fork, so will need to download it again elsewhere prior to publication. While yes it could be uninstalled first, I get that it can become repetitive.
So while I think it's a total valid use case, I have to admit it's probably only valid for a small portion of the userbase, which is why I feel like a non-standard flag may be more appropriate. While it makes things easier for the population that needs it, it doesn't use something too common that people might misunderstand the effect it has.
But if you feel that it's not a widespread use enough, I'm happy to hear it out and reconsider

@claytonrcarter Thanks for the feedback. It feels good to me to change it, but I'm not the most attached to this repo, so I'd much rather get the opinion of someone like I've pinged if they feel it's at all necessary.
But I do totally get that it's a perfect standard flag, which is partially why it might be good to change it, so it's not easy to do without realizing the effect. Since I don't want someone to assume it forces the linking process, not realizing it forces the deletion of a file elsewhere on the system, since the force usually means to force the action taking place, rather than some side effect of the action.
An example that kinda works for me is a command that connects to a wifi network using --force I'd assume would force the network connection, rather than forget another one because of some internal logic. But don't worry too much for now!

It's only slightly fewer keystrokes than ppm uninstall language-foo && ppm link, but I'm OK with it as long as the user understands that it's irrevocable and ppm unlink won't restore the original state.

The compelling part of this, for me, is convenience. If I run ppm link, I'm doing so because I want it to create a link. If it doesn't because I have something in the way (for whatever reason), then I want to "force" it to do so. (Like, "yes, I know what I'm doing".) Pressing up and then adding  -f feels much more ergonomic than having to run rm -rf ~/.pulsar/packages/$FOO or ppm uninstall $FOO and then rerunning the link. For those reasons, I don't think that it really matters what the flag is, so long as it includes a short option. I would be fine with something like --destroyOriginal so long we also include an short flag like -d of -D, for example.
Other options

-f/--force: If needed, remove package before creating link (current description is "Remove the target path before linking")
-D/--delete: If needed, remove package before creating link (or --destroy or --destroyOriginal)
-U/--uninstall: If needed, uninstall package before creating link

Prior art

rm has a -f flag to "Attempt to remove the files without prompting for confirmation"
git branch has a -f/--force to "Reset  to , even if  exists already." or "allow deleting the branch irrespective of its merged status"
git branch has -d/--delete to "Delete a branch." and -D as Shortcut for --delete --force.
ppm unpublish has -f/--force to "Do not prompt for confirmation"
ppm unlink and ppm uninstall both have -h/--hard to "Unlink (or uninstall) package from ~/.pulsar/packages and ~/.pulsar/dev/packages"

if a package is going to be removed from the directory, it should be uninstalled first

Do you mean that you'd prefer that the user have to run ppm uninstall, or just that we invoke the code w/i ppm uninstall for the user? FWIW, the code in ppm uninstall is just running fs.removeSync(...) (from package fs-plus, I assume because fs.rmSync(targetPath, { recursive: true, force: true }) was not supported on early Node versions at the time of writing) after checking for a package.json, so this implementation is not too far off already. I can look into reusing the code in uninstall, though I wonder if the benefit will be really worth it just to wrap a call to removeSync().

requires that you run Pulsar in dev mode

I grant that this is the "blessed" path for this sort of thing, but – personally – I long ago stopped using dev mode because I found it easier and more convenient to just link my customized packages directly into ~/.pulsar/packages. As I recall, this came about because I wasn't hacking on Atom at the time, only on a few packages. And then, once I got my changes to where I wanted them, I just wanted to use them w/o having to always drop into dev mode. And not only because I wanted to test drive in real usage, but also because it can take some time before PRs are merged, and I didn't want to make my change and then abandon it for weeks or months (or ever) while I waited for a merge and release.

probably only valid for a small portion of the userbase

This is true, and it is a pretty straightforward workaround to have to manually uninstall or remove the package/dir that's in way. Adding a quick and simple way to say "yeah yeah yeah, I know what I'm doing, just create the link already" feels like a valid enough use case that it's might be worth a small DX/QOL improvement.

I don't feel strongly enough about this to keep discussing it when there are syntax highlighting fixes to do, so I'll leave you folks to it. :-)

Thanks for taking a look at this one @DeeDeeG and glad to see you merged it.
Also of course thanks a ton to @claytonrcarter for your wonderful contribution and patience!


Bug: --project-config Option Does Not Work

Specifying the name of the config file using the --project-config option does not work. The only way I can get it to use the config file is if I name it gql-gen.json. It seems to ignore whatever I pass from the command line.
According to the README:

defaults to gqlgen.json

But that doesn't seem to be the case either.
graphql-code-generator: v0.10.7
graphql-codegen-typescript-template: v0.10.7

Resolved by #478, although I think the default file name is still wrong.


Ignore iOS tests if only Android files changed.

Description:
As documented here this will prevent PRs that contain only changes to the Android folder from running iOS tests. This will significantly reduce check time for Android specific PRs.
To confirm this works I think we need to merge it, then I need to make a change in the Android directory and submit a PR.

Leaving this PR open while we see if we have any luck with this Github support post:
https://github.community/t/force-succeed-required-workflow-when-skipped/124055


config: add trustedServiceAccountIssuer to auth config

trustedServiceAccountIssuer is the identifier of the bound service account token issuer the server will trust.
According to the Kubernetes documentation, starting from Kubernetes 1.22, the service-account-issuer flag can be specified multiple times. The first value is then used to generate new tokens and other values are accepted. Using this field can prevent cluster disruptions and allows for smoother reconfiguration of this field.
see: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#service-account-token-volume-projection

LGTM


Resolve transforms failing due to Unknown CURIE prefix: file

Seven ontologies do not transform to KGX TSV due to presence of a value resembling a CURIE with a file prefix.
These are otherwise valid, if somewhat less-than-descriptive, values, and may be modified to permit the transform to continue.

See https://github.com/ncbo/BioPortal-to-KGX/issues/22#issuecomment-1068382948 for all ontologies with this issue.

A related issue appears to have popped up:
KGX transform CANONT_1
Encountered error during KGX transform of CANONT_1: Unknown CURIE prefix: file
Will attempt to repair file and try again.
WARNING:rdflib.term:https://w3id.org/biolink/vocab//Documents and Settings/Andre/My Documents/OBO/Ontology_Scholastic.obo does not look like a valid URI, trying to serialize this will break.
WARNING:rdflib.term:https://w3id.org/biolink/vocab//Documents and Settings/Andre/My Documents/OBO/Ontology_Scholastic.obo does not look like a valid URI, trying to serialize this will break.
WARNING:rdflib.term:https://w3id.org/biolink/vocab//Documents and Settings/Andre/My Documents/OBO/Ontology_Scholastic.obo does not look like a valid URI, trying to serialize this will break.
WARNING:rdflib.term:https://w3id.org/biolink/vocab//Documents and Settings/Andre/My Documents/OBO/Ontology_Scholastic.obo does not look like a valid URI, trying to serialize this will break.
WARNING:rdflib.term:https://w3id.org/biolink/vocab//Documents and Settings/Andre/My Documents/OBO/Ontology_Scholastic.obo does not look like a valid URI, trying to serialize this will break.
WARNING:rdflib.term:https://w3id.org/biolink/vocab//Documents and Settings/Andre/My Documents/OBO/Ontology_Scholastic.obo does not look like a valid URI, trying to serialize this will break.
Normalizing graph...
Found these graph files:['transformed/ontologies/CANONT/CANONT_1_edges.tsv', 'transformed/ontologies/CANONT/CANONT_1_nodes.tsv']
Retrieving entity names in transformed/ontologies/CANONT/CANONT_1_nodes.tsv...
Traceback (most recent call last):
  File "/home/harry/BioPortal-to-KGX/run.py", line 138, in <module>
    run()
  File "/home/harry/.cache/pypoetry/virtualenvs/bioportal-to-kgx-BG6p1jeu-py3.9/lib/python3.9/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "/home/harry/.cache/pypoetry/virtualenvs/bioportal-to-kgx-BG6p1jeu-py3.9/lib/python3.9/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "/home/harry/.cache/pypoetry/virtualenvs/bioportal-to-kgx-BG6p1jeu-py3.9/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/harry/.cache/pypoetry/virtualenvs/bioportal-to-kgx-BG6p1jeu-py3.9/lib/python3.9/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/home/harry/BioPortal-to-KGX/run.py", line 113, in run
    transform_status = do_transforms(
  File "/home/harry/BioPortal-to-KGX/bioportal_to_kgx/functions.py", line 345, in do_transforms
    if not clean_and_normalize_graph(filepath=outdir,
  File "/home/harry/.cache/pypoetry/virtualenvs/bioportal-to-kgx-BG6p1jeu-py3.9/lib/python3.9/site-packages/universalizer/norm.py", line 86, in clean_and_normalize_graph
    remap_these_nodes = make_id_maps(nodepath,
  File "/home/harry/.cache/pypoetry/virtualenvs/bioportal-to-kgx-BG6p1jeu-py3.9/lib/python3.9/site-packages/universalizer/norm.py", line 242, in make_id_maps
    assert curie_converter.expand(identifier)
  File "/home/harry/.cache/pypoetry/virtualenvs/bioportal-to-kgx-BG6p1jeu-py3.9/lib/python3.9/site-packages/curies/api.py", line 271, in expand
    prefix, identifier = curie.split(self.delimiter, 1)
ValueError: not enough values to unpack (expected 2, got 1)

tl:dr the fix leaves something that can't be resolved to CURIE parts


Implement validation method for inline editable form

Validation messaging should be handled within the custom form React component as opposed to at a page level.
There are currently two ways to submit content for validation - you can save the page, or you can save an individual block.
Saving a page

will go through a PJAX request.
It will run page-level validation, and it will call validate() on each elemental block in each elemental area on the page.
It will not run any form validators which are returned from getCMSCompositeValidator() or getCMSValidator().
Any validation errors from an elemental block will NOT be displayed against that block, nor against the elemental area

the field names used do have a namespace that enables us to determine which block each of these belongs to, but there's currently no way to pass these validation errors down to the block in react

Saving a block directly

will go through graphql
It will call validate() on the block being saved, but will return a 500 error if validation fails
It will not run any form validators which are returned from getCMSCompositeValidator() or getCMSValidator().

What a solution needs to do
If we aren't allowed to make any infrastructural changes (i.e. we want to release this in a minor), we need the following:

graphql requests for saving blocks run validation both against validate() and against form validators for the block
when saving the page, validators for each block are validated against (see POC code in https://github.com/silverstripe/silverstripe-elemental/issues/329#issuecomment-1547227758)
graphql responses where validation has failed return the ValidationResult messages array
the elemental area and elements can take the ValidationResult messages array as a prop

these are displayed appropriately

We have some initial designs for the notification placement but we haven't gone through each scenario to figure out what the notifications should say in each case. Please refer to the Style Guide for guidance https://projects.invisionapp.com/dsm/silver-stripe/silver-stripe

Note at this point we'll ideally have completed #327 which implements a custom React form component. With this (and the messages that are a part of FormBuilderLoader) we should be able to expose the messages we get back and ship them up to the parent component.

Hi team,
Does this issue also cover adding support for getCMSValidator or (the new) getCMSCompositeValidator with inline edited Elements?
At the moment, it seems like the only way to have validation results for Elements (that are inline edited) is to use the validate() extension point. But, even these are not displayed in the inline editor, and it has a pretty bad side effect, which is already tracked here:
https://github.com/dnadesign/silverstripe-elemental/issues/764

Sorry this issue is light on detail. It needs a new description to cover how we'd intend on this being implemented, which I'd need some help with.
While looking into #840 is was clear that there's a number of loosely related issues, so @Cheddam proposed we step back to look at this holistically: SPIKE Broken form state in EditForms following validation errors

Do we have any sort of time frame that we could expect Validation messages to be support by Inline Editing?
Currently we end up needing to disable this feature quite regularly, as our Blocks have required fields. As such, Inline Editing is a bit of underused feature at the moment (for me, at least).

Hi @chrispenny this would be blocked until we get some time to dig deeper in to the broader issues with inline block state management in https://github.com/silverstripe/silverstripe-admin/issues/1131
At this stage I don't have a time frame for when our team might look into this but I'll push it up our backlog and add an update to this issue in a month or so.

If we add the following to ElementalAreaField, saving the page will also run validation against form validators in each elemental block (i.e. returned from getCMSCompositeValidator() or getCMSValidator())
public function validate($validator)
{
    $valid = parent::validate($validator);

    $elementData = $this->Value();

    if (!$elementData) {
        return $valid;
    }

    // Ensure CMSCompositeValidator validation is run for each inline-editable element.
    $idPrefixLength = strlen(sprintf(ElementalAreaController::FORM_NAME_TEMPLATE ?? '', ''));
    foreach ($elementData as $form => $data) {
        // Extract the ID
        $elementId = (int) substr($form ?? '', $idPrefixLength ?? 0);

        /** @var BaseElement $element */
        $element = $this->getArea()->Elements()->byID($elementId);

        if (!$element) {
            // Ignore broken elements
            continue;
        }

        $form = ElementalAreaController::singleton()->getElementFormForValidation($elementId);

        $form->loadDataFrom(ElementalAreaController::removeNamespacesFromFields($data, $elementId));
        $result = $form->getValidator()->validate();

        if (!$result->isValid()) {
            $valid = false;
            $fields = $this->mapFieldNamesToNamespace($data, $elementId);
            foreach ($result->getMessages() as $metadata) {
                // TODO: Not all messages are field errors
                $validator->validationError($fields[$metadata['fieldName']], $metadata['message']);
            }
        }
    }

    return $valid;
}

private function mapFieldNamesToNamespace(array $data, $elementID): array
{
    $output = [];
    $template = sprintf(EditFormFactory::FIELD_NAMESPACE_TEMPLATE, $elementID, '');
    foreach (array_keys($data) as $namespacedField) {
        // Only look at fields which belong to this element
        if (substr($namespacedField, 0, strlen($template)) !== $template) {
            continue;
        }

        $fieldName = substr($namespacedField, strlen($template));
        $output[$fieldName] = $namespacedField;
    }
    return $output;
}

There are some UX considerations we need to consider before implementing this, such as:

Do invalid blocks get expanded automatically?
Do invalid blocks get highlighted e.g. with a red border?
How do we display validation errors that apply for a block but aren't for a given field?
How do we deal with validation errors in a separate tab on of the block (e.g. settings tab on the block)?

Following up from our refinement session yesterday, I wanted to validate how the form for each inline block was being fetch.
When you start editing a block, it fires a request to /admin/elemental-area/schema/elementForm/2, where 2 is the ID of the block you are editing. This returns a form schema response.
The schema is being generated at https://github.com/silverstripe/silverstripe-elemental/blob/5dfe7e2ebd07bdbb98b38eb3ea5367622db113b3/src/Controllers/ElementalAreaController.php#L84-L107
There's a separate endpoint for saving the inline form.
I'm thinking maybe the way to approach this is to come up with a convention for deciding how to validate data entered in a form schema and/or formalise how form schema should be used.

How the form is provided to be rendered is almost irrelevant. What matters is what happens at submission time, i.e.

How is the data submitted?
How is that submission handled?
What sort of response is given to that submission, and how do we send validation details down that line?

The first two questions there are already answered in this issue's description - and part of the problem is that there's two different types of form submission depending on whether a whole page or just one block is being saved.
Yes, standardisation around how forms are handled across the board would be awesome. I don't know if that's something we can do within the lifetime of CMS 5 though. Do we want to hold this back until CMS 6?

We've been talking about this for a bit and can't come up with an obvious way to do this upfront. So we've schedule a SPIKE for it https://github.com/silverstripe/silverstripe-elemental/issues/1068

Re the ACs, I've intentionally not done them all:
Done

In-line editable content block are validated with form schema as outline in the SPIKE.
API for enforcing validation of content block is inline with the one to validate pages.
Official elemental doc provides clear guidance on how to validate elemental block.

Not done

Validation occurs both on page save and on individual block save. (sort of, detailed below)

Validation now works works significantly better for individual block save then it does for page save
Page save is somewhat busted.  MyBlock::validate() style validation does work .. however the validation message will show at the top of the page rather than on the element as described in this bug
MyBlock::getCMSCompositeValidator() aka RequiredFields validation doesn't seem to work, now does FormField::validate() - I tried putting a UrlField on my block though I could save invalid values.
Because the main PR on this issue is already too large I think we need to treat this seperately

Validation works both for inline block and "not inline" block.

I assume that "not inline" block means setting private static $inline_editable = false;
It's just a regular DataObject EditForm at this point. It work much better than blocks on the Page EditForm, though RequiredFields is still a bit busted because instead of a nice red error message you get a red toast that says "validation error" and no indication of what's invalid.
Same issue with adding a Model::validate() ->addError(), as opposed to ->addFieldError() which works correctly
Again, this needs to be treated on a separate card

@emteknetnz After making changes from my review, please do an installer CI run to show that the three PRs work nicely together.

@emteknetnz your installer CI run doesn't include elemental tests?

Have updated CI run linked on main issue desription to only include behat for elemental

Merged green PRs - reassigning to Steve to do whatever needs doing with the draft PR

PRs merged


Improve Rust SDK HTTP handler macro with an IntoResponse trait

Right now the http handler in the Rust SDK assumes that the annotated function will return Result<T, E> where T: TryInto<spin_http::Response> and where E has the same API as std::error::Error (which one should note anyhow::Error does not implement but has a similar enough API that things just work). This can make error handling in spin http less than ideal. If the user wants to return a non-500 error they need to construct a response using something like http::ResponseBuilder which has an awkward API.
Proposal
Instead, we could take some inspiration from other HTTP frameworks and make the response handling a bit more fluid. My proposal would be that we could require that the handler return anything that implements an IntoResponse trait that ultimately gets used to turn the user's return value into a response.
Ultimately, this could end up with something that looks like this:
fn handler(req: Request) -> anyhow::Result<impl IntoResponse> {
    let query = req.uri().query();
    let Some(query) = query else { return Ok((StatusCode::BAD_REQUEST, "no query string")) };
    let Ok(query) = serde_qs::from_str::<Query>(query) else {
        return Ok((StatusCode::BAD_REQUEST, "could not parse query string"));
    };

    let store = key_value::Store::open_default()?;
    let mut filter = get_state(&store)?;

    let status = match filter.exists(&query.email) {
        Exists::Maybe if expensive_user_lookup(&query.email)? => 409,
        Exists::No | Exists::Maybe => 200,
    };

    Ok((StatusCode::from_u16(status).unwrap(), ""))
}

IntoResponse could be extended for any types that look like a response.
Issues
The only issue is that making this work in a backwards compatible way will be difficult. This is largely because the macro currently assumes a Result type where the error is anything that kind of looks like a std::error::Error. Importantly it does not require that that error type actually implement std::error::Error (e.g., just as anyhow::Error does not).
Due to limitations in the Rust type system, it's basically impossible to do the following:
impl IntoError for anyhow::Error {
  // ...
}

impl <E: std::error::Error> IntoError for E {
  // ...
}

This does not work because the Rust is conservatively allowing future versions of anyhow to implement std::error::Error for anyhow::Error.
Next steps
So with that in mind, the next questions are:

Is such an API change worth it?
If so, can anyone think of a clever way to make this a backwards compatible change?
If not, how do we introduce a second macro in a way that makes sense?

This is a great idea. I definitely think this API change is worth it because it significantly improves the ergonomics of the Rust SDK, however, i'm not quite sure either how to support this in a backwards compatible way. It might be worth exploring the third bullet of a second macro; if we do that i'd like us to explore what other improvements we could make as well (if any).


uv backend: still requires pip to do the job of pipcheckold

Currently this works fine, because pipcheckold now installs pip in the relevant environment. But I'd like to not have to do that.
See https://github.com/astral-sh/uv/issues/2150

As of uv 0.5.0, we can do uv pip list -p python --outdated --format=json (and without json). So fix this, and require uv minimum version!

This is done, will be in 0.3.11 release