Pass other props to root element

Resolves part of #68

Any chance this is gonna get done soon?  I'd love to use this library, but I need to be able to set className on the root element as well...

@RavenHursT According to #68 we agreed to only pass className to the wrapper element. This PR doen't seem to be ready yet.

Solved in #96


kxss don't show any output it was work fine but i don't know what's happen

┌──(kali㉿kali)-[~]
└─$ echo "https://www.google.com/search?q=" | kxss
┌──(kali㉿kali)-[~]
└─$
No output.... any one help me

git clone method fix the issue for me cf #19


Fix notifications , each tab content having its own notification

Fixed notifications , but need to remove mssg from sessions['mssg__'] once shown.


go1.7: using http.Request.WithContext breaks bone GetValues

If you use the go1.7 contexts in the http lifecycle sometime after bone has routed your request, but before the application specific routes are run, then bone is unable to find the values from the request.
There are a few workarounds, but given how common it will be for new go users to build this pattern, I think it would be helpful to enable this use case without too many "WTF's".  The changes are fairly simple I think - probably require storing the bone values in the request's context, and I am happy to help make this change.  I just wanted to get the OK from a project maintainer before proceeding to code anything.
func (r AuthedRoute) ServeHTTP(w http.ResponseWriter, req *http.Request) {
    user := r.AuthedUser()
    ctx := context.WithValue(req.Context(), authKey, user)

    // adding this line this breaks bone values, since it uses the *http.Request as the key
    req = req.WithContext(ctx)
    needsBoneHandler(w, req)
}

func needsBoneHandler(w http.ResponseWriter, req *http.Request) {
    boneVals := bone.GetAllValues(req)
    // is empty :(
}

Hi, thanks for the feedback, if you want to implement your solution, I'm more than ok with that :)

Great, I put up a PR here https://github.com/go-zoo/bone/pull/54


Move (external) dependency composition for InterpreterLocatorHelper to the proxy.

This is the work to eliminate @inject from InterpreterLocatorHelper .
Compare with #12850 (which includes refactoring to make the implementation less complex and to get better DI).

stale


cursor modification

i want to change the cursor style in website there we are using a normal cursor I added screenshots.if you don't like the cursor style which I chosen I will modify according to your wish please give label hacktoberfest and gssoc ext
from
https://github.com/user-attachments/assets/bafb93a0-f2e7-42e7-ae12-9dc073f712df
to

should i proceed with the work @ https://github.com/ANSHIKA-26

no , this seems a little off , any other styles ?

this cursor visibles if not used should I proceed with this @ANSHIKA-26
https://github.com/user-attachments/assets/bc6d841a-b46a-458a-90e7-3be78a21081a

honestly , i dont like it , i prefer a plain cursor instead , sorry , kindly open some other issue !

If you have any other project-related ideas, please assign them to me  @ANSHIKA-26.


NSNumber wrapped boolean is causing crashes when tapping on the carousel bar’s NSNumber

Tapping on the NSNumber is crashing the app.

Same case for any _NSConcreteValue, crashing when tapping on NSValue

I can reproduce this crash on a very old version of FLEX. Looks like an old bug you've uncovered.
It appears to be crashing at FLEXRuntimeUtility.m:469 where we call malloc.  methodSignature.methodReturnLength is 0 for some reason, and the return type encoding is {?}. The method being called is decimalValue which returns an NSDecimal.


panic: runtime error: invalid memory address or nil pointer dereference

I get this panic, i see there was an old closed issue, could it same issue ?
I am using the v2.0.0 .
panic: runtime error: invalid memory address or nil pointer dereference
2017/02/14 01:30:25 goroutine 61 [running]:
runtime/debug.Stack(0xc4200da5a0, 0x1c5b4c0, 0xc4205b61a0)
	/usr/local/go/src/runtime/debug/stack.go:24 +0x79
smasher/vendor/github.com/pressly/chi/middleware.Recoverer.func1.1(0xc4200da5a0, 0x7f02b98f81e0, 0xc4204a22c0)
	/go/src/smasher/vendor/github.com/pressly/chi/middleware/recoverer.go:23 +0x82
panic(0x133a100, 0xc42000a040)
	/usr/local/go/src/runtime/panic.go:458 +0x243
main.start_http_server.func4(0x7f02b98f81e0, 0xc4204a22c0, 0xc4200da960)
	/go/src/smasher/main.go:150 +0x283
net/http.HandlerFunc.ServeHTTP(0xc420462310, 0x7f02b98f81e0, 0xc4204a22c0, 0xc4200da960)
	/usr/local/go/src/net/http/server.go:1726 +0x44
smasher/vendor/github.com/pressly/chi.(*Mux).routeHTTP(0xc4202f10e0, 0x7f02b98f81e0, 0xc4204a22c0, 0xc4200da960)
	/go/src/smasher/vendor/github.com/pressly/chi/mux.go:386 +0x216
smasher/vendor/github.com/pressly/chi.(*Mux).(smasher/vendor/github.com/pressly/chi.routeHTTP)-fm(0x7f02b98f81e0, 0xc4204a22c0, 0xc4200da960)
	/go/src/smasher/vendor/github.com/pressly/chi/mux.go:325 +0x48
net/http.HandlerFunc.ServeHTTP(0xc4204622b0, 0x7f02b98f81e0, 0xc4204a22c0, 0xc4200da960)
	/usr/local/go/src/net/http/server.go:1726 +0x44
smasher/vendor/github.com/pressly/chi/middleware.Timeout.func1.1(0x7f02b98f81e0, 0xc4204a22c0, 0xc4200da960)
	/go/src/smasher/vendor/github.com/pressly/chi/middleware/timeout.go:44 +0x117
net/http.HandlerFunc.ServeHTTP(0xc4205598c0, 0x7f02b98f81e0, 0xc4204a22c0, 0xc4200da690)
	/usr/local/go/src/net/http/server.go:1726 +0x44
smasher/vendor/github.com/pressly/chi/middleware.CloseNotify.func1(0x7f02b98f81e0, 0xc4204a22c0, 0xc4200da690)
	/go/src/smasher/vendor/github.com/pressly/chi/middleware/closenotify17.go:39 +0x1bb
net/http.HandlerFunc.ServeHTTP(0xc4205598e0, 0x7f02b98f81e0, 0xc4204a22c0, 0xc4200da5a0)
	/usr/local/go/src/net/http/server.go:1726 +0x44
smasher/vendor/github.com/pressly/chi/middleware.Recoverer.func1(0x7f02b98f81e0, 0xc4204a22c0, 0xc4200da5a0)
	/go/src/smasher/vendor/github.com/pressly/chi/middleware/recoverer.go:32 +0x9f
net/http.HandlerFunc.ServeHTTP(0xc420559900, 0x7f02b98f81e0, 0xc4204a22c0, 0xc4200da5a0)
	/usr/local/go/src/net/http/server.go:1726 +0x44
smasher/vendor/github.com/pressly/chi/middleware.RequestLogger.func1.1(0x1c5e080, 0xc4204cd1e0, 0xc4200da4b0)
	/go/src/smasher/vendor/github.com/pressly/chi/middleware/logger.go:40 +0x1b4
net/http.HandlerFunc.ServeHTTP(0xc420425890, 0x1c5e080, 0xc4204cd1e0, 0xc4200da4b0)
	/usr/local/go/src/net/http/server.go:1726 +0x44
smasher/vendor/github.com/pressly/chi/middleware.(*throttler).ServeHTTP(0xc420425800, 0x1c5e080, 0xc4204cd1e0, 0xc4200da4b0)
	/go/src/smasher/vendor/github.com/pressly/chi/middleware/throttler.go:94 +0x3e0
smasher/vendor/github.com/pressly/chi/middleware.RealIP.func1(0x1c5e080, 0xc4204cd1e0, 0xc4200da4b0)
	/go/src/smasher/vendor/github.com/pressly/chi/middleware/realip.go:34 +0xa1
net/http.HandlerFunc.ServeHTTP(0xc420559920, 0x1c5e080, 0xc4204cd1e0, 0xc4200da4b0)
	/usr/local/go/src/net/http/server.go:1726 +0x44
smasher/vendor/github.com/pressly/chi/middleware.RequestID.func1(0x1c5e080, 0xc4204cd1e0, 0xc4200da3c0)
	/go/src/smasher/vendor/github.com/pressly/chi/middleware/request_id.go:68 +0x28e
net/http.HandlerFunc.ServeHTTP(0xc420559940, 0x1c5e080, 0xc4204cd1e0, 0xc4200da3c0)
	/usr/local/go/src/net/http/server.go:1726 +0x44
smasher/vendor/github.com/pressly/chi.(*Mux).ServeHTTP(0xc4202f10e0, 0x1c5e080, 0xc4204cd1e0, 0xc4200da3c0)
	/go/src/smasher/vendor/github.com/pressly/chi/mux.go:79 +0x1f2
net/http.serverHandler.ServeHTTP(0xc420374b00, 0x1c5e080, 0xc4204cd1e0, 0xc4200da0f0)
	/usr/local/go/src/net/http/server.go:2202 +0x7d
net/http.(*conn).serve(0xc4204a4100, 0x1c64f00, 0xc4204a20c0)
	/usr/local/go/src/net/http/server.go:1579 +0x4b7
created by net/http.(*Server).Serve
	/usr/local/go/src/net/http/server.go:2293 +0x44d

here are the options I am using (the only thing is new is throttling) could it be throttling makes it error 500 ?
here is my code
	r := chi.NewRouter()
	// A good base middleware stack
	r.Use(middleware.RequestID)
	r.Use(middleware.RealIP)
	// Only 5 request will be processed at a time.
	r.Use(middleware.Throttle(5))
	r.Use(middleware.Logger)
	r.Use(middleware.Recoverer)
	// When a client closes their connection midway through a request, the
	// http.CloseNotifier will cancel the request context (ctx).
	r.Use(middleware.CloseNotify)

	// Set a timeout value on the request context (ctx), that will signal
	// through ctx.Done() that the request has timed out and further
	// processing should be stopped.
	r.Use(middleware.Timeout(500 * time.Second))

@medyagh can you use the master version? middleware.CloseNotify has been removed.

i've confirmed that with the stack you listed (minus the CloseNotify middleware), everything works as normal

@pkieltyka I just glide updated with the SHA of the last commit
here is my glide block
- package: github.com/pressly/chi
  version: c85a5463d6472673cd8ed5d447b6d5e46413f140
  vcs: git
  subpackages:
  - middleware
  - render

and here is my glide.lock block
- name: github.com/pressly/chi
  version: c85a5463d6472673cd8ed5d447b6d5e46413f140
  vcs: git
  subpackages:
  - middleware
  - render

and I got the same error:
panic: runtime error: invalid memory address or nil pointer dereference
2017/02/14 03:29:28 goroutine 90 [running]:
runtime/debug.Stack(0xc4204de2d0, 0x1c59460, 0xc42050cd60)
	/usr/local/go/src/runtime/debug/stack.go:24 +0x79
smasher/vendor/github.com/pressly/chi/middleware.Recoverer.func1.1(0xc4204de2d0, 0x7fc29d63b8c8, 0xc4204a4280)
	/go/src/smasher/vendor/github.com/pressly/chi/middleware/recoverer.go:23 +0x82
panic(0x1338f20, 0xc42000a040)
	/usr/local/go/src/runtime/panic.go:458 +0x243
main.start_http_server.func4(0x7fc29d63b8c8, 0xc4204a4280, 0xc4204de4b0)
	/go/src/smasher/main.go:150 +0x283

try it without glide, go get -u github.com/pressly/chi and use $GOPATH. if you get the same error, please include gist to your program. Sorry but you'll have to debug your own issues and if you want to report a bug, submit a test case

I will try without glide and go get, but for what it worth, I like to add, I also removed the throttle thing to make sure it wasn't because of that. and also another thing, the thing fails only on the request that takes longer than 30 seconds. (it won't error on other requests)

please submit a gist of a broken program and clear instructions on how to reproduce it. If i can reproduce it, I'll definitely fix it

sure here is a gist of the code https://gist.github.com/medyagh/fd03a85e8eb2443a8dbbb42ed4bb05c6

@medyagh this is an incomplete program and I dont have memcache either. Please provide a minimal example with no dependencies.

@pkieltyka update, I found out the source of the problem, in kuberentes the default timeout is 2, and there is no way to change it in google kuberentes. so any request taking mroe than 1.30 seconds will throw that error. it will be fine in other places.
however I think it would be nice that the library would throw a better error. (to test it out ,deploy it to google kuberentens and make a reuqest that takes more than 2 minutes to come back)


Pixi.js v3 Documentation

Hello Pixi Pushers!
It has come to our attention that the Pixi v3 docs could do with a serious bit of love. Both in terms of skinning and ensuring that they are typo free and all 100% correct.
We will get round to it eventually but we (me and @englercj ) are both very busy at the moment working on cool new features. We would absolutely love it if any of you keen bean Pixi heads out there would like to help us out with this task!
Also please feel free to drop any suggestions on how you think the v3 docs could be improved here too.
Cheers all!

Hey guys, I just wanted to chip in and add that personally I hate the new Template/DocStrap thing.
The old docs pages was far more productive, I can open the page and can almost see all the classes, I could also hit "ctrl + f" and type to find my class. Then with the class selected I can see a nice list on all the public methods and click if i need to know more. I can click to view the source etc etc.
The new system requires clicking a button, and then scrolling up and down in a tiny drop down looking for somethign that might be what im looking for. I select it and the page reloaded, I have to click the drop down again and scroll through the list again if it was not the correct item. Then when it comes to viewing the content I have to scroll up and down the page looking for all the methods, there is no source. It is horrible!
But you probably know this. Please go back to the old system :)
p.s. Looking at the docs for createJS, they're using the old system you were but with some nice styling: http://createjs.com/Docs/EaselJS/classes/.

Could not get a look at it earlier, while I agree with aholla on the current docs style, instead of going back to the old format, we could style the new one to our needs. I'll make a try on sunday.

Totally agree @aholla..
@JiDW if you could, that would make you my hero :+1:

@aholla Yeah the old template/theme was a lot better, we definitely agree. Just to be clear though we will not be reverting back to YUIDoc, we just need to make a template/theme for jsdoc that makes everyone happy :)
One we found recently that may be a good starting point is jaguarjs-jsdoc (demo).

Yeah that jaguar theme is much better, if you could turn off the auto-scrolling/Jumping of the navigation bar when you select an item I think it would do :)

Here are some that look nice as well (not a jsdoc themes, but good doc inspiration):
http://typedoc.io/api/
https://mandrillapp.com/api/docs/
https://docs.angularjs.org/api

I really like the angular one, it's nice and smimple. Not sure about the others.

pull request created to change to jaguar.js.
There isn't a lot of theme for jsdoc, it seems to be the best available. I think we should use jaguar.js for a couple of days and report issues or ideas here.

Merged! http://pixijs.github.io/docs/

I've just find out that the new doc doesn't list the interactive property under PIXI.DisplayObject and its possible interactive events like tap, click, etc.
They are not default property of DisplayObject but it makes the documentation useless if you want to understand how to deal with events.

Interactive target is missing all those docs:
https://github.com/GoodBoyDigital/pixi.js/blob/master/src/interaction/interactiveTarget.js

Closing this as the new doc template seems to be awesome!


Typo in response-compression.md

with the with the => with the

@agriffard Thank you for fixing this!


could someone please provide mini sample datasets?

The actual datasets too big to download and run for  learning purpose.
Thanks in advance!

Thanks for your interest in our work！
You can specify to only download specific scenes of ScanNet.

Hi, I cant find anyway to download a mini sample data. Can anyone help me. I just want to use to debug this code to understand, then use with my own dataset


Missing License

I've been working on setting up docker+cmake for my own project, and the cmake macros here have been a big help. Would you consider adding a license file for proper attribution?

@metainf, yes, I'll add that - it'll be under an MIT license. Are you targeting Teensy? I use Docker on my computer for development, so it could be interesting if that's the case to try your solution.

That's interesting, I ended up making my own Core library as a modification to PJRC's library to play nice with CMake. Of course it's no longer tracking the Teensy updates, which is both a blessing and curse. Nice to easily make some modifications so the core libraries work better for us, but unfortunate that we need to manually include any bug fixes.
We also made a copy of SDFat to modify to work with CMake. Tend to keep our libraries separate and then pull them in with CMake. Mostly works well, but we do often re-use a lot of the same code from project to project (i.e. re-using sensor drivers all the time), so it is a good use-case for keeping things as libraries.
Updated to include a license file here.


guest agent: add a pipeline for a development branch

Differently to the main branch this pipeline doesn't publish the final package but limits to building the package and derived images and runs the CIT tests.

/hold

/unhold

/lgtm


spirv-fuzz: Add support for memory related instructions to TransformationMoveInstructionDown

TransformationMoveInstructionDown only supports 'simple' instructions that don't work with memory (e.g. OpIAdd, OpFMul etc). We should be able to extend its support for memory-related instructions too.

Same applies to TransformationPropagateInstructionUp.

Same applies to TransformationPropagateInstructionDown.

Support for memory instructions is gradually introduced to TransformationMoveInstructionDown, TransformationPropagateInstructionUp, TransformationPropagateInstructionDown.
It would be good to add support for other types of instructions as well (e.g. image-related instructions).


Add typescript support

Issue #20
Description of changes:

installed typescript dependency, added tsconfig.json
moved index.js to src/index.ts, changed imports to typescript-style and fixed ts compiler errors
added typings information to package.json
adjusted eslint to work with typescript source and made sure there are no linting warnings or errors
adjusted jest to be able to parse ts file in the new location and made sure all tests pass

Other things to be considered:

with the current tsc configuration the js file will be generated in the dist folder and will not be available (like before - ready to use in the js format) in the project's root. I added dist to .gitignore, but if the previous behavior is desired, the tsconfig.json and package.json can of course be modified to reflect this

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Resolving #20


release/v2.0.0 - testing notes

@EternallLight good job with the release branch.
Plugin instalation ( #22 ) works correctly with the release branch.
it's not freezing anymore on the sharing-screen when I click on my app in the list, but

on newest iphone SE (2nd gen.) simulator it hops directly into the app but do not call the myHandler func (both text or image)
on iPhone 11 or iPhone 8 simulators it prompts me to confirm shared text (or description for image) but then it's not redirecting me into the app
( on my real iPhone 5S my app is not in the sharing list for any kind of content )

So basically I was never able enter myHandler (cordova.openwith.addHandler(myHandler)).
I tested that in my app and also in new empty cordova-app and here is my testing scenario:
cordova create cordovatest
cd cordovatest
cordova platform add ios

cordova plugin add https://github.com/EternallLight/cordova-plugin-openwith-ios.git#release/v2.0.0 --variable IOS_URL_SCHEME=duocardssharing

# updated index.js by readme
# updated app-id in config.xml (because of signing in Xcode)
# setup app-groups in Xcode (`group.<YOUR_APP_BUNDLE_ID>.shareextension`) for both app/shareExt targets

# Xcode -> run (on various devices), or:
cordova run iOS

hope it helps

Hi @melounek
First of all, thank you for sharing this information.
I believe you couldn't share files on a real devices because you had different iOS versions in deployment target option for you main app and app extension. Check out the updated instructions in the README.md file on the master branch.
I tested on a real iPhone 7 device and it works now as expected. There are some issues when sharing text from Safari on a simulator but fortunately they do not show up on a real device.

Yep, I noticed that, too. Will take a look.
Thanks for confirming.
Best regards,
Andrey Grunev
On Mon, May 11, 2020 at 3:20 PM Petr Heralecký<EMAIL_ADDRESS>wrote:

Thanks for update, it works 👍 🥇
Only one more thing looks like a bug: Everytime I re-build by cordovat cordova
build ios it will rename the ShareExt target from
com.my.app.shareextension back to com.my.app. So I have to rename it back
everytime (10th step in readme)
But thanks again and feel free to close this issue.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/EternallLight/cordova-plugin-openwith-ios/issues/24#issuecomment-626667214,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABDSTCQLUU34NI6CY7KZPDDRQ7UR3ANCNFSM4M3KF3KQ
.

It does not seem to be possible to fix this issue in the plugin directly.
The cordova-ios platform correction is required
– platforms/ios/cordova/lib/prepare.js. When I worked at Thirdlane, I did
something like a loop over the build targets and determined which is the
main app and which is extension (we had 2 app extensions besides the
sharing one), and did corrections only for the main app.
Unfortunately, cordova still does not support iOS app extensions out of the
box.
I'd really recommend you to run the application from Xcode – not only
because you wouldn't face the bundle identifier override issue during
cordova prepare, it is just much faster.
Best regards,
Andrey Grunev
On Mon, May 11, 2020 at 3:21 PM Andrey Grunev<EMAIL_ADDRESS>wrote:

Yep, I noticed that, too. Will take a look.
Thanks for confirming.
Best regards,
Andrey Grunev
On Mon, May 11, 2020 at 3:20 PM Petr Heralecký<EMAIL_ADDRESS>wrote:

Thanks for update, it works 👍 🥇
Only one more thing looks like a bug: Everytime I re-build by cordovat cordova
build ios it will rename the ShareExt target from
com.my.app.shareextension back to com.my.app. So I have to rename it
back everytime (10th step in readme)
But thanks again and feel free to close this issue.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/EternallLight/cordova-plugin-openwith-ios/issues/24#issuecomment-626667214,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABDSTCQLUU34NI6CY7KZPDDRQ7UR3ANCNFSM4M3KF3KQ
.

Thanks for checking.
I would like to use only Xcode, but when I update the javascript code, I need to get it into platforms somehow, which does cordova build or cordova prepare, but these are renaming the identifier.
Or if you know some better workflow how to "prepare" the updated JS, let me know.
Otherwise this should be better documented in the 10th point in the readme (the renaming or using loop-script you mentioned).

As a quick solution, you can correct your app build process and add to the
last step copying the built stuff form ./www to ./platfforms/ios/www
Best regards,
Andrey Grunev
On Mon, May 11, 2020 at 4:58 PM Petr Heralecký<EMAIL_ADDRESS>wrote:

Thanks for checking.
I would like to use only Xcode, but when I update the javascript code, I
need to get it into platforms somehow, which does cordova build or cordova
prepare, but these are renaming the identifier.
Or if you know some better workflow how to "prepare" the updated JS, let
me know.
Otherwise this should be better documented in the 10th point in the readme
(the renaming or using loop-script you mentioned).
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/EternallLight/cordova-plugin-openwith-ios/issues/24#issuecomment-626718128,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABDSTCRY7DCXRVNFLLMCFPDRQ777FANCNFSM4M3KF3KQ
.

will try, thanks

Unfortunately, cordova still does not support iOS app extensions out of the box.

Looks like the issue will be fixed soon. Now it's in cordova-ios version 6.0.0-dev https://github.com/apache/cordova-ios/pull/820


Pingdom account perms

I did get an invite to Pingdom and created an account, but it was just for me (giving me 1 basic check). I don't seem to have any ability to modify checks under the CC account itself. This is what my CC dashboard looks like:

Whereas when I switch to my personal account, I get many more options:

I think my role under the CC account needs to be modified to give me the ability to add checks.

Try now? The documentation doesn't match up with what I'm seeing on the site, but I've made you an Admin in the place I could find to make someone an Admin of some sort.

I have admin on "Beepmanager", which is a sub-product? Something? But not access to "Monitoring", which is what I'd need to actually... monitor things. Sorry this is confusing!

Just talking to Pingdom.

You should now be an actual, factual Admin.
I've a support ticket submitted regarding some billing weirdness, hopefully that won't interrupt our service but I'll let you know if there are any problems.

Looks great now, thank you for tracking that down!


[New Feature]: Implement bal tool command

Description
Implement a new CLI command bal tool that can be used to pull and manage ballerina related tools.
Resources
Design documents

https://docs.google.com/document/d/1fsDlGDRV1Ly2NjDWF4SQodFJJDGIc9ja7toCFQ31OQY/edit?usp=sharing
https://docs.google.com/document/d/1XsZK3UlqXv4TLEgRKVc0UBRRilLTmLZ1heDTmIRuylE/edit?usp=sharing

Implementation documents

https://docs.google.com/document/d/1lNytg9gEIAJOQI7aH6jSWBAvshpmElzXerj3RJuLCEw/edit?usp=sharing

Describe your problem(s)
The list of Ballerina commands that are categorized as "Other" continue to grow. Also most of these tools are used only in specific use cases and does not make sense to pack them with the distribution.
Describe your solution(s)
Use bal tool to on demand pull and use these tools. The tools should be allowed to be published as first class packages in the ballerina central.
Tasks for milestone 1 (update 6)

[x] Introduce tool packages - assignee @ShammiL
[x] Implement bal tool command - assignee @gayaldassanayake
[x] Redesign command implementation strategy - assignee @gayaldassanayake

Please refer to bal tool implementation task breakdown for the entire task list.
Related area
-> Other Area
Related issue(s) (optional)
No response
Suggested label(s) (optional)
No response
Suggested assignee(s) (optional)
No response

The following has been implemented so far.

bal-tool.toml and its related classes
bal tool list, bal tool uninstall implementations
bal tool pull - partially. Need to complete once the Central APIs are available.
Negative test cases for list, uninstall, pull
BalTool.toml packing into the bala of a tool package.

The following are the main tasks yet to be completed in bal tool implementation as of now.
High priority

[ ] Implement the central API call for tool pulling - ongoing
[ ] Mocking and manually testing bal tool pull - ongoing
[ ] Implement bal tool search and test with mocking.
[ ] Look how bal help flag can be dynamically extended when new tools are added.
[ ] Pick the latest version when there are multiple versions of the same tool.

Mid priority

[ ] Complete ToolCommand lang repo tests
[ ] Complete bal tool help file
[ ] Add test cases for BalTool.toml
[ ] Add test cases for bal-tools.toml
[ ] Add distribution repo integration tests for ToolCommand

With https://github.com/ballerina-platform/ballerina-lang/pull/40265 and https://github.com/ballerina-platform/ballerina-lang/pull/40457, the following are completed.

bal tool pull [:version] - Pull a tool from the central. If the version is not specified, the latest will be pulled.
bal tool list - List the latest versions of locally available tools
bal tool remove[:version] - Remove a tool from the local - If the version is not specified, all versions will be removed.
Introducing a BalTool.toml and packing and pushing a tool to the central

Next steps

[ ] bal tool search - The implementation is completed. Waiting on the central endpoints to test and complete.
[ ] bal tool use, bal tool update.
[ ] Implement the proposed design for seamlessly switching between distribution versions and using tools.
[ ] Remove class path loading from the shell script and implementing it in java.
[ ] Introduce documentation
[ ] Dynamically extend bal help with the available tools - Implemented. Need to do changes to the implementation

With #40475 the following were added.

Add a new template tool to be used with bal new. E.g.: bal new newTool -t tool

A BalTool.toml file specifying the tool id and an empty tool directory will be created inside the new package.

Allow using tools pushed to Central as templates when creating a new package. E.g.: bal new newTool -t foo/templateTool:1.0.0

Files packed in the tool will be copied to the new package including the BalTool.toml.
Dependencies packed with the tool will also be copied to tool/libs directory inside the new package.

Currently working on following implementation changes/ improvements planned for the next U6 patch version.

Move the classloading to BLauncher.Main. Add the bre/lib, tool jar and dependencies to the classpath
Spin up a new process builder for tool commands only
Check if we can add debugging support
Providing a directory containing dependencies for BalTool [[dependency]]  instead of individual jars - requirement by HealthCare.

Closing the issue due to a bal tool redesign which allows distribution independent tools instead of distribution coupled tools which this PR has implemented. The below document keeps track of the design changes. https://docs.google.com/document/d/1lNytg9gEIAJOQI7aH6jSWBAvshpmElzXerj3RJuLCEw/edit?usp=sharing

Update on current progress (U8)

The design has been revamped to have tool versions globally available. If a tool version is incompatible with a given distribution, there will be an error when trying to use pull, use commands or when executing the tool itself.
The bal help is automatically extended to show the help texts of the tools under Tool Commands section
https://ballerina.io/learn/cli-documentation/cli-commands/ is updated to include tool subcommands and its functionality
A separate custom class loader has been introduced to load tool commands giving priority to the dependencies of the tools over the system class loader resources.
openapi, grpc, graphql, persistandasyncapiare to be published as central packages and they will be pulled automatically when user callsbal openapi` etc, without user explicitly pulling them.

As a part of this effort, we are planning to add support for local repository. User may do the following tasks with this support,

Publish a tool to the local repository.
bal push --repository=local

Pull a tool from a local repository.
bal tool pull <tool-id>:<version> --repository=local

Activate a local repository tool from pulled tools.
bal tool use <tool-id>:<version> --repository=local

Remove a local repository tool from pulled tools.
bal tool use <tool-id>:<version> or bal tool remove <tool-id>:<version> --repository local

Closing the issue since most of the original design has been implemented and successfully used by users. We can keep track of the improvements with separate dedicated issues.


fix: ignore input elements except in search

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] All the files I changed are in the same world language (for example: only English changes, or only Chinese changes, etc.)
[x] My changes do not use shortened URLs or affiliate links.

Rather than listening to key events on all input and select elements, this opts into listening to the SearchBox
Closes #37142

@scissorsneedfoodtoo could you make sure I've not broken any of the search accessibility?  I think it's fine, but you're more familiar with it than I am.

@ojeytonwilliams, thank you for your quick fix here. Sorry about causing this issue!
Seems like the search bar is working fine and accepting all inputs, including the up and down keys to select hits. Entering "p" or "n" in other input elements don't move to the next or previous challenge.

@scissorsneedfoodtoo no problem. It just highlights a general need for more tests. Something like 'A user can enter a url as a solution' which would fail as it navigated back and forth.

@ojeytonwilliams, very true. I'm looking forward to writing tests in Cypress once https://github.com/freeCodeCamp/freeCodeCamp/pull/37053 lands. Seems like it'll be easier to simulate how users actually use parts of the site.


Old FTP helper

We have two helpers which each have a 'deliver binary' method in them. I think this is due to moving from FTP to SFTP, so a new helper has been written for SFTP but the old one is still around. Potentially the SDXFTP file can be removed and any methods which are used from it should be moved into the SFTP helper.

This issue will be closed and a new card created to an FTP library https://trello.com/c/rhcql66x


45 min call with codename 'Blue'

Interview Script
Hi there Blue
We’re going to spend some time chatting about your design in OSS experience to date to get a sense of what you have done to date.
Will you be recording video/audio for the diary study or writing?
Writing responses.
Do you want a Zoom room that will auto-record a video/audio for your weekly diary
No thanks

In your survey it says you’ve been doing this for X time?
An academic - gradated in graphic design - design school. Student and academic events. Met other students and started to go to talks about cyber security. Thought ‘I need to know about this’ friend was starting linux on his computer and had a friend at university who is part of open source design and spoke to the students about linux - their computer crashed and used linux to recover files → search for files in their computer and noticed it was faster than the last windows. Needed windows for adobe → Adobebot for 2-3 years?
Followed (Specific OSS 1) communities 2019? joined the community to organise the (Specific OSS 1) conf. Makes the conf materials in linux software. 2-3 designers. only designer working on the artworks using Inkscape, Krita, Gimp etc.
Started with free software.
Free software saved their files when they needed them!
Changed their whole workflow to free software
Thinkpad with Windows to use adobe programs to open old files. don’t use too much thinking to not use adobe → pay for windows
developing skills in linux
Blender, motion, video on linux → learning video on blender via linux
Newspaper magazines and social media content
little bit of web design on WP - penpot figma, elementor - page builder for WP some OSS.
I don’t know how to code! so I have to work with graphical tools.
How did you start in Design? How did you start in OSS?
Before university I worked with silk screen in neighbourhood → small business and liked these - making and cleaning silk screens → learned photoshop & illustrator → liked to draw. Specialised designer and drawer. Design was focused on design thinking and management processes. Didn’t like this in university → like social science and cartography and social research. Worked as a graphic designer. And did a masters in geography dept.
Is a research assistant → running important processes and works with design → next year starting in PHD in geography ? → working in American in cybernetics revolutionaries. Design + socials studies + geography.
Adam Adina MIT https://jacobin.com/2015/04/allende-chile-beer-medina-cybersyn/
https://mitpress.mit.edu/author/eden-medina-13238/
https://www.bloomsbury.com/us/disobedience-of-design-9781350162471/
Cartography is unrelated to the OSS. House shortage. Homeless and occupy.
What OSS do you contribute to and participate in?
(Specific OSS 1) is not only about the tech it’s about the events and confs and COC. takes a lot of time of my life.
Does small talks at events. FOSDEM considering - does small courses and classes in free software.
Teaching visual language fundamentals in Inkscape to (Specific OSS). They know how to use photoshop and Canva → Inkscape gives professional results.
I don’t know how to report bugs but I shout out on reddit - I don’t want to go to the forum.
(Participant shared a conf video link of specific OSS 1)
Did logo for linux conf
Small things for local hacker clubs.
Tried to join communities in brazil big linux → bit frightening and a bit frightening and right wing.
Can’t join a community where they think that way.
(Specific OSS 2) slack recently. Friend works for (Specific OSS 2).
(Specific OSS 1) conf 2023 → main project slow on tasks for design → aren’t answering me for 2 weeks getting anxious. Work on open innovation lab is confidential. Great for the professional level of work.
(Certain location) design team is a bit slow
How do you decided on a project that they’d like to work on/contribute to?
I look the community is cool and Latin American and Brazilian involved and prefer to do the work physically and go to conf or events locally.
(Specific OSS 1) have a Brazilian (Specific OSS 1) community.
Not in a nationalist way → we as Latin Americans involved in global work but have local autonomy and give our projects.
Appreciate advice from friends who recommend projects.
Big Linux is a 10 years+ project → if I help with that i wonder? see the messages and didn’t like the conversation. Saw members retweeting (Political Figure) → no COC
KD Brazil community is too closed on the KDE discussions la academy on design → ‘not one of us’
Local hacker spaces → Brazilian Hackerspace communities → live music with code → pure data
Do you contribute to OSS as part of a paid role, volunteer (free) or both? in what ratio?
Most of time to volunteer → don’t like the business aspect of OSS → I already work → when it becomes work i lose the joy.  Less fun to work on OSS then vol. On (Specific OSS 1) sometimes only designer. 5-6 designers in (Specific OSS 1) everyone works for state companies! Events need fast materials so sometimes I get paid when I can if needed.
Never paid by (Specific OSS 1). can only go to (Specific OSS 1)conf if a bursary. travel is expensive. (Specific OSS 1) have criteria for bursaries. Development country and active contributor.
If you’re paid for OSS how does this feel to you?
Unclear audio
If you’re not paid for OSS how does this feel to you?
Unclear audio
What kind of design do you find yourself spending the most time doing? UX? UI? Research?
Social media materials, graphic design and scientific publications and data journalists. elections year → only told good news. Open innovation lab → small start up’s get the big company support for prototypes. for state Catarina state → lab research and design thinking process, prototype workshops etc. and final materials. On management side and videos and motion for content about it. Concept steps and science process explained. Public employees public function have to authorise by public to know what you’re doing → document the process to know what works and does not work. Gamification process for google workspaces for govt’ employees.  What they think about working with online tools and collecting data to put on spreadsheets and think about it.
What tools and software do you use for your contributions?
Krita, Penpot, Figma, (Specific OSS 1), Wordpress, Blender.
What kind of processes and communication happens between you and the others that work on the OSS? Who else works on the OSS?
Unclear audio

When does communication work well?
Unclear audio
When did communication falter?
Unclear audio

Are there other designers or people that are interested in design in the OSS project?
Unclear audio

How did they introduce themselves to you (if they did) and how would you want to work with them?
Unclear audio
How do you want to be supported and how do you want to support others?
Unclear audio

Thinking ahead to when you might stop contributing to the OSS projects you do, how would you like to leave that project? what would the design aspects look like to you?
I’m not sure → my way of thinking for OSS contribution is similar when I’m in social movement projects I want to be part of movements and less tech. To inspire some designers to get on (Specific OSS 1). In uni people moved from Cinema3d to Blender through pressure on students and departments → I want to do this for other tools.
If I leave (Specific OSS 1) I would be part of other projects but (Specific OSS 1) will continue well. Maybe small projects and to feel more of it.
Social media project → homeless project → only graphic designer but not the only one to create works but is asked to approve the work. people would lack confidence in their own design work even though it’s great. (Participant shared a social media link with us)
I don’t want to stop → money and working to survive → wants to make a cooperative. (Specific OSS 3) contributes to an interface project.
When I send applications to SA designers and portfolio → is the perspective different. Jobs in government strict guidelines and rules and so do they.
Worried about why not being hired
Big companies don’t follow ethical processes that match OSS principles. Worried about the future.
Companies that sponsor confs and the (Specific OSS 4) interface and the guy the contributes. Their support is limited to their profits.
Works alone → doesn’t work with many people

Call has been done - now editing transcript for PII for public publishing


Is there a way to install this in pfsense (FreeBSD) ?

Hi there,
I wanted to install your package on my haproxy which is running on my pfsense, I was wondering if you have done so before and if you perhaps have some install instructions for me?

I don't have experience with pfsense myself. Maybe someone on the HAProxy Slack does?

thanks. Im attempting to see if I can update the install script to work in freeBSD, if I get it working Ill open a PR.


MSPSDS-309 Add company status to businesses

Pull Request Test Coverage Report for Build 505

17 of 17 (100.0%)  changed or added relevant lines in 1 file are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage increased (+0.7%) to 84.326%

Files with Coverage Reduction
New Missed Lines
%

../models/address.rb
1
95.65%

Totals

Change from base Build 504:
0.7%

Covered Lines:
807

Relevant Lines:
957

💛  - Coveralls

Looks good – thanks!


Updated documentation

Checklist before submitting

[x] Did you read the contributor guide?
[ ] Did you update any affected documentation?
[ ] Did you write any tests to validate this change?

Description
Some documentation updates for P10 builds and https://github.com/open-ce/open-ce/issues/324.
Review process to land

All tests and other checks must succeed.
At least one maintainer must review and approve.
If any  maintainer requests changes, they must be addressed.

Codecov Report

Merging #123 (96fa0de) into main (ab0af1a) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #123   +/-   ##
=======================================
  Coverage   96.20%   96.20%
=======================================
  Files          23       23
  Lines        2106     2106
=======================================
  Hits         2026     2026
  Misses         80       80

Flag
Coverage Δ

unittests
96.20% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ab0af1a...96fa0de. Read the comment docs.

Codecov Report

Merging #123 (96fa0de) into main (ab0af1a) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #123   +/-   ##
=======================================
  Coverage   96.20%   96.20%
=======================================
  Files          23       23
  Lines        2106     2106
=======================================
  Hits         2026     2026
  Misses         80       80

Flag
Coverage Δ

unittests
96.20% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ab0af1a...96fa0de. Read the comment docs.

Should we bump the version too in this PR?

Yes lets update the version in this PR.

Codecov Report

Merging #123 (e51a8eb) into main (ab0af1a) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #123   +/-   ##
=======================================
  Coverage   96.20%   96.20%
=======================================
  Files          23       23
  Lines        2106     2106
=======================================
  Hits         2026     2026
  Misses         80       80

Flag
Coverage Δ

unittests
96.20% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ab0af1a...e51a8eb. Read the comment docs.

Codecov Report

Merging #123 (e51a8eb) into main (ab0af1a) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #123   +/-   ##
=======================================
  Coverage   96.20%   96.20%
=======================================
  Files          23       23
  Lines        2106     2106
=======================================
  Hits         2026     2026
  Misses         80       80

Flag
Coverage Δ

unittests
96.20% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ab0af1a...e51a8eb. Read the comment docs.


Paths to exclude files

Hi! From your Readme:

options.*
Any Karma option can be passed as part of the options object. See [Karma Configuration] for a complete list of options. Note: It's best practice to put options in your Karma config file.

I'm trying to pass paths for exclude files from tests(karma.config.js has exclude property). It doesn't work. Files are not excluded. If i keep exclude paths in karma.conf.js all works fine, but i want to keep all paths (files for testing and for excluding) in one place (gulpfile.js)
What the best practice to do that with gulp-karma plugin?
The part of my gulpfile.js below:
...
var paths = {
    tests: {
        frontend: [
            srcPath + '/js/**/*.js',
            testsPath + '/helpers.js',
            testsUnitPath + '/**/*.js'
         ],
        exclude: [
            srcPath + '/js/*.min.js',
            testsUnitPath + '/server.js'
        ]
    }
};

gulp.task('run-tests', function() {
    return gulp
            .src(paths.tests.frontend)
            .pipe(karma({
                configFile: testsPath + '/karma.config.js',
                action: 'run',
                exclude: paths.tests.exclude
            }))
            .on('error', function(err) {
                throw err;
            });
});
...

gulp-karma is deprecated (#43). Please use Karma directly: https://github.com/karma-runner/gulp-karma


Not able to run the examples programs on YARN

Hi - I created a kubernetes cluster (3 node cluster - 8 VCPU & 30 GB RAM on each node) and executed the makefile in this repo to create the hdfs + yarn clusters. I am able to read/write to hdfs. When I execute the sample programs on YARN, its stuck. Please see the below output. Any help would be really appreciated.
root@yarn-rm-0:/usr/local/hadoop# ./bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar pi 16 1000
Number of Maps  = 16
Samples per Map = 1000
Wrote input for Map #0
Wrote input for Map #1
Wrote input for Map #2
Wrote input for Map #3
Wrote input for Map #4
Wrote input for Map #5
Wrote input for Map #6
Wrote input for Map #7
Wrote input for Map #8
Wrote input for Map #9
Wrote input for Map #10
Wrote input for Map #11
Wrote input for Map #12
Wrote input for Map #13
Wrote input for Map #14
Wrote input for Map #15
Starting Job
17/06/11 08:15:27 INFO client.RMProxy: Connecting to ResourceManager at /<IP_ADDRESS>:8032
17/06/11 08:15:28 INFO input.FileInputFormat: Total input files to process : 16
17/06/11 08:15:28 INFO mapreduce.JobSubmitter: number of splits:16
17/06/11 08:15:28 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1497166645429_0006
17/06/11 08:15:28 INFO impl.YarnClientImpl: Submitted application application_1497166645429_0006
17/06/11 08:15:28 INFO mapreduce.Job: The url to track the job: http://yarn-rm-0:8088/proxy/application_1497166645429_0006/
17/06/11 08:15:28 INFO mapreduce.Job: Running job: job_1497166645429_0006

Watch ResourceManager logs
Caused by: java.net.UnknownHostException: yarn-nm-2.yarn-nm.yarn-cluster.svc.cluster.local.
	... 19 more
2017-08-07 19:32:42,918 ERROR org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerApplicationAttempt: Error trying to assign container token and NM token to an allocated container container_1502104823875_0001_01_000001
java.lang.IllegalArgumentException: java.net.UnknownHostException: yarn-nm-2.yarn-nm.yarn-cluster.svc.cluster.local.

The same problem with you.
RM can't find NM's address because NM's hostname is unknow.

Hi @rootsongjc - Can you please try adding these properties to yarn-site.xml?
  <property>
    <name>yarn.resourcemanager.bind-host</name>
    <value><IP_ADDRESS></value>
  </property>

  <property>
    <name>yarn.nodemanager.bind-host</name>
    <value><IP_ADDRESS></value>
  </property>

It doesn't work. The key problem is RM can't resolve nodemanager's hostname, i.e yarn-nm-1.yarn-nm.yarn-cluster.svc.cluster.local.

Something wrong with my kubelet config which I configured --cluster-domain=cluster.local.
I think it should not have a dot at its last.
After I changed that and restart kubelet, yarn performed OK.
I think it is not an issue any more.

Great.


Extended service manager options to configure JSON serialization

The REST client currently uses the default serialization settings, but it would be very helpful to change the settings (e.g. to enable pascal case for property serialization).

The test "Microsoft.Azure.SignalR.Common.Tests.CustomizedTimerTests.BasicStartStopTest" that failed was successful when I ran it locally. It does some timer stuff, so I don't think it has anything to do with my changes.

The test "Microsoft.Azure.SignalR.Common.Tests.CustomizedTimerTests.BasicStartStopTest" that failed was successful when I ran it locally. It does some timer stuff, so I don't think it has anything to do with my changes.


[Content Block Horizontal]: Bottom Padding is not 160px

Description
The dds-content-group-horizontal needs 160px bottom padding in desktop view, 96px in tablet view, and 64px in mobile view. Specifically this seems to be coming from a margin-top above the horizontal rule, though we need the spacing in between the content and horizontal rule to be 160px.

Component(s) impacted
Content Group Horizontal. I'm unable to find the storybook page for it and the link we have is outdated. Was this replaced by Content Block Horizontal?
Browser
No response
Carbon for IBM.com version
v1.26.0
Severity
Severity 3 = The problem is visible or noticeable to users but does not impede the usability or functionality. Affects minor functionality, has a workaround.
Application/website
AEM (Marketing)
Package
@carbon/ibmdotcom-web-components, @carbon/ibmdotcom-styles
CodeSandbox example
No codesandbox avaiable
Steps to reproduce the issue (if applicable)
No response
Release date (if applicable)
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct
[X] I checked the current issues for duplicate issues

@EAVilleda correct, the component has been renamed to [content-block-horizontal](https://www.ibm.com/standards/carbon/web-components/?path=/story/components-content-block-horizontal--default) and the spacing issues have been fixed.

@jeffchew - Can we reopen this ticket. The renamed content-block-horizontal component margin-top set for the dds-hr tag is still not set correctly. The margin-top for the dds-hr tag is currently set to 32 px for sm, 48 px for md, and 96 px for lg and greater. The dss-hr tag needs to have margin-top set to 64 px for sm, 96 px for md, and 160 px for lg and greater.
CC: @EAVilleda , @kennylam

Below are the screenshots showing the padding needed with the  and with  removed.
Component with :
breakpoint sm -

breakpoint md -

breakpoint lg and greater -

Component with  removed:
breakpoint sm -

breakpoint md -

breakpoint lg and greater -

Let me know if you have any questions.

Moving to backlog while we work out the spacing requirements for all content blocks, groups and items.


Updated to NET8 and Avalonia to current release plus test fix

@dotnet-policy-service agree

thanks for the PR @xafero :tada:


Expose the peer address of a Connecting

Why was this closed?

@Ralith My fault.  I mixed up this PR with #516 and thought it had already been merged.  Oops!


add L1Handler as AbiEntry

Same as a function, only the name is changing.

The ERC20 contract is not supposed to be changed. It's copied directly from the cairo repo.

The ERC20 contract is not supposed to be changed. It's copied directly from the cairo repo.

Arg sorry, then we should do an other test contract?
Thanks for the feedback. 👍🏻


Issue in stage-identity amount to transfer not working

Description:
When I'm trying to send AE from: https://stage-identity.aepps.com in the amount field, even though I input a number, it says: This field must be -1.7e-14 or less
How to replicate:

Go to https://stage-identity.aepps.com
Use phone to connect to your account
Select account that you want to send AE
Input amount of AE token you want to transfer.

@sadiqevani @davidyuk if either of you is able to reproduce this currently could you provide a screenshot?

@j28 unreproducible issues means its fixed.

Thank you @sadiqevani
I will close it for now. If anyone experiences this issue again we can reopen (or make a new one).


Course failure handling and frontend optimization

This PR is branched off from #117 and fixes issues in that PR, so please merge #117 before this one.
This PR also includes several refactorings.
Changes

Move response data processing logic from NavigationDrawer to Review for low-coupling
Refactor courseKey in url params and relative page switching
Extending Courses interface from Array<Course> (equivalent to Course[], an array of Course objects), since Review seems to be the only place that needs to have a "lookup table" in the format of { [courseKey]: Course } for quick access, NavigationDrawer and icsGen works perfectly well with an array, so components (and between FE and BE) are passing an array of Course now
Introduce courseKeyLookup: Record<string, Course> dictionary for quick access in Review, with useMemo it is cached and re-calculate whenever courses changes
Introduce currentCourse: Course as the current selected course for performance, with useMemo it is cached and re-calculate whever currentCourseKey or content in courseKeyLookup[currentCourseKey] changes

Future notes
Review is getting longer and longer and that makes sense as it contains all the hook-up logics, and to not burying hook-up logics deep down in relative sub-components. When it gets too long, we could move callback functions to a file such as hooks.ts and have ReactNodes in a separate file such as ReviewView.tsx.
For-loops requires a key to all children. Make life easier to not come up with unique keys, here's a trick:
array.map((element, index) => (<Component key={index} />));

Refactoring looks good. I noticed there's a delay when switching between tabs that didn't used to be there... not sure when that was introduced. Could it be the new useEffect?
Also if you multiple upload files that are not determinable like PSYC 203 and ARHI 201 in different batches, each time they're called Course 1 which is not the expected behavior. Also leads to duplicate key prop errors in the console.

Refactoring looks good. I noticed there's a delay when switching between tabs that didn't used to be there... not sure when that was introduced. Could it be the new useEffect?
Also if you multiple upload files that are not determinable like PSYC 203 and ARHI 201 in different batches, each time they're called Course 1 which is not the expected behavior. Also leads to duplicate key prop errors in the console.

Good catch! I've moved the numbering logic to frontend.
Investigating the performance issue...

Performance issue is optimized in https://github.com/techstartucalgary/lifeline/pull/118/commits/42b4ca772c2123d6122e4e9862989530fd7af07a

I'm still noticing really poor performance switching to tabs with a lot of assessments (try PSYC 203.pdf). I don't think we need to solve it in this PR. Maybe we could use some react hooks to make the UI feel smother if we can't make it fast.

I'm really confused now...
If you select the same file twice it's not doing anything. And the tab switching is smooth enough from what I see, and it wasn't even that bad before the fix either, like the fix improved about 0.5 seconds. Are we on the same project im so confused lol, let me show you a video
https://user-images.githubusercontent.com/20573623/218287199-64639272-0f29-47de-a0b7-e0e04f70e977.mov

I'm really confused now...
If you select the same file twice it's not doing anything. And the tab switching is smooth enough from what I see, and it wasn't even that bad before the fix neither, like the fix improved about 0.5 seconds. Are we on the same project im so confused lol, let me show you a video
Screen.Recording.2023-02-11.at.5.44.52.PM.1.1.mov

The tab switching slowness has been in nav drawer, the assessments/documents tab has always been fine. I'm 100% up to date with yunfan/get-course-failure-handling and I still get the duplicate tab highlighted bug... on Firefox 109.0.1 on Ubuntu

Screencast from 2023-02-11 08:44:49 PM.webm
Screencast from 2023-02-11 08:46:48 PM.webm

I suspect that's a browser behaviour issue. Anyways, it's preventing duplicate course to be displayed now.

I suspect that's a browser behaviour issue. Anyways, it's preventing duplicate course to be displayed now.

That worked for the duplicate courses. You can see the lag in selecting a tab with 38 assessments though, it's pretty bad and I don't think it should be. The quantity of data we're processing and the asymptotic complexity of the operations should be pretty trivial even for a 5 year old laptop with 8 G ram

I didn't observe lag for course with single digit number of assessments but did observe when there are many like 39 assessments. Apparently more time were spent rendering the list when there are more assessments. https://blog.logrocket.com/options-caching-react/

A rendering animation could help with this
On Sun, Feb 12, 2023, 1:06 AM Yunfan Yang @.***> wrote:

I didn't observe lag for course with single digit number of assessments
but did observe when there are many like 39 assessments. Apparently more
time were spent rendering the list when there are more assessments.
https://blog.logrocket.com/options-caching-react/
—
Reply to this email directly, view it on GitHub
https://github.com/techstartucalgary/lifeline/pull/118#issuecomment-1426967672,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQZPOEXNQLFZKN27MBVCK73WXCKXFANCNFSM6AAAAAAUYMETVU
.
You are receiving this because your review was requested.Message ID:
@.***>


Access Control

Access privileges
- Create user accounts and roles for Warehouse admins, sellers, and customers with appropriate privileges to interact with the DB server.
- Securing the database ensures that each role has the necessary access rights to perform their respective tasks

Done


1.0.0

Good morning!
Do you plan to implement all those in the readme?

@romanenko Maybe you are not watching this repo.

Yes, I would like to implement all plans in the Readme. If you can help on some tasks — it would be great!


Implement River Protocol custom chain support testnet / mainnet

We are developing a messaging protocol that is currently deployed to testnet with a plan to deploy to mainnet soon. We would like to host River Protocol diamond contracts and associated facets on louper in order to aid node operators in inspecting and writing to our contracts for nodes that they operate in the network. River Protocol employs a custom op-stack based chain, River Chain, that currently is deployed in testnet with the following coordinates:

chainId: 6524490
explorer
rpcUrl
source

So Louper currently uses Viem to source all of it's chain info. The best way to get support for a non-existent chain is to submit a definition to the Viem repo. https://github.com/wevm/viem/tree/main/src/chains/definitions
Also if the explorer has an api for fetching source code and ABIs make sure to add an apiUrl to the blockExplorers section there, otherwise Louper will not be able to fetch ABI information.
e.g.
blockExplorers: {
    default: {
      name: 'Arbiscan',
      url: 'https://arbiscan.io',
      apiUrl: 'https://api.arbiscan.io/api',
    },
  },

So Louper currently uses Viem to source all of it's chain info. The best way to get support for a non-existent chain is to submit a definition to the Viem repo. https://github.com/wevm/viem/tree/main/src/chains/definitions
Also if the explorer has an api for fetching source code and ABIs make sure to add an apiUrl to the blockExplorers section there, otherwise Louper will not be able to fetch ABI information.
e.g.
blockExplorers: {
    default: {
      name: 'Arbiscan',
      url: 'https://arbiscan.io',
      apiUrl: 'https://api.arbiscan.io/api',
    },
  },

Thank you @ezynda3 - we'll look into adding our chain info to Viem to get added!


Only Chinese version on itsdangerous.readthedocs.org?

When you go to http://itsdangerous.readthedocs.org/ (3rd link on google, and many people click it first because they know readthedocs is the nice formatted documentation) it redirects to
http://itsdangerous.readthedocs.org/zh_CN/latest/ and it seems there is not even a different version up there.
I think it should be english by default.

Anyone can claim names on rtd.  The official docs are at https://pythonhosted.org/itsdangerous/.

Thing was that it's not something else on rtd but the Chinese doc for this module and it shows up on the first Google page so I thought it was under your control and you should fix it since many people click rtd links first for python documentation.
Nevermind then :)


propName.toLowerCase is not a function in<EMAIL_ADDRESS>

Which @angular/* package(s) are the source of the bug?
compiler
Is this a regression?
No
Description
I think I've narrowed down the reason for this error. I created an @Input() binding with the name valueOf. I think the angular compiler doesn't like this name for some reason, but I can't find any documentation on this being the case. I forked one of the Angular Material examples and updated the example a bit to demonstrate the error.
@Component({
  selector: 'app-value-of',
  template: '{{valueOf("abc")}}'
})
export class ValueOfComponent {
  @Input() valueOf: (s: string) => any = (s: string) => s;
}

@Component({
  selector: 'autocomplete-filter-example',
  template: '<app-value-of [valueOf]="myValueOf"></app-value-of>',
})
export class AutocompleteFilterExample {
  myValueOf = (s: string) => 'something else';
}

Please provide a link to a minimal reproduction of the bug
https://stackblitz.com/edit/angular-jyiqdv?file=src%2Fapp%2Fvalue-of.component.ts,src%2Fapp%2Fapp.module.ts,src%2Fapp%2Fautocomplete-filter-example.ts,src%2Fapp%2Fautocomplete-filter-example.css,src%2Fapp%2Fautocomplete-filter-example.html
Please provide the exception or error you saw
./src/main.ts - Error: Module build failed (from ./node_modules/@ngtools/webpack/src/ivy/index.js):
Error: propName.toLowerCase is not a function
    at eval (/home/projects/angular-jyiqdv/node_modules/@ngtools/webpack/src/ivy/loader.js:81:18)

./src/polyfills.ts - Error: Module build failed (from ./node_modules/@ngtools/webpack/src/ivy/index.js):
Error: propName.toLowerCase is not a function
    at eval (/home/projects/angular-jyiqdv/node_modules/@ngtools/webpack/src/ivy/loader.js:81:18)

Please provide the environment you discovered this bug in (run ng version)
This information can be found in the stackblitz reproduction. Looks like version 14.

Anything else?
No response

@alxhub, this seems to be caused by the compiler.
$ ngc -p tsconfig.app.json
error TS500: TypeError: propName.toLowerCase is not a function
    at DomElementSchemaRegistry.securityContext (file:///xxxxxx/node_modules/@angular/compiler/fesm2015/compiler.mjs:14884:29)
    at file:///xxxxxx/node_modules/@angular/compiler/fesm2015/compiler.mjs:15433:71
    at Array.map (<anonymous>)
    at file:///xxxxxx/node_modules/@angular/compiler/fesm2015/compiler.mjs:15433:43
    at Array.forEach (<anonymous>)
    at calcPossibleSecurityContexts (file:///xxxxxx/node_modules/@angular/compiler/fesm2015/compiler.mjs:15428:33)
    at BindingParser.createBoundElementProperty (file:///xxxxxx/node_modules/@angular/compiler/fesm2015/compiler.mjs:15316:32)
    at file:///xxxxxx/node_modules/@angular/compiler/fesm2015/compiler.mjs:15792:48
    at Array.forEach (<anonymous>)
    at HtmlAstToIvyAst.extractAttributes (file:///xxxxxx/node_modules/@angular/compiler/fesm2015/compiler.mjs:15783:20)```


Added documentation for changing the size

Just noticed that the directive supports "size" and it's not documented

Hi @geo242,
I just noticed that this PR is based on your master branch. Be careful with this as any future changes on your master will show up in this PR too. It's safer to use an extra branch.

Sorry about that, I do a new PR from a branch. Thanks!


Feat: voting

This PR allows users to use the Connect Wallet button to create an account on the backend.
TODO: store the account number on the cookie.
WIP: allow users to create votes using keysign browser extension which is not working atm.
https://user-images.githubusercontent.com/55182298/172298932-b2374a55-07c5-4643-8f3e-309185758b52.mp4

Everything seems to work as expected but needs some UI updates and fixes from the FE people.


[App]: api.wandb.ai returns 403 forbidden in some regions

Current Behavior

Open https://wandb.ai/my_user_name/my_project_name in the browser, observe the following error message:

No cloud providers available for BYOB. This is an invalid state;
please contact support.
An application error occurred.

Run the following python script (with the correct API key in the WANDB_API_KEY env var)

python -c 'import wandb; wandb.init(project="my_project_name")'

observe the following error

403 response executing GraphQL.
<!doctype html><meta charset="utf-8"><meta name=viewport content="width=device-width, initial-scale=1"><title>403</title>403 Forbidden
wandb: W&B API key is configured. Use `wandb login --relogin` to force relogin
wandb: ERROR It appears that you do not have permission to access the requested resource. Please reach out to the project owner to grant you access. If you have the correct permissions, verify that there are no issues with your networking setup.(Error 403: Forbidden)
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/tmp/reproduction/.venv/lib/python3.10/site-packages/wandb/sdk/wandb_init.py", line 1185, in init
    wandb._sentry.reraise(e)
  File "/tmp/reproduction/.venv/lib/python3.10/site-packages/wandb/analytics/sentry.py", line 155, in reraise
    raise exc.with_traceback(sys.exc_info()[2])
  File "/tmp/reproduction/.venv/lib/python3.10/site-packages/wandb/sdk/wandb_init.py", line 1171, in init
    return wi.init()
  File "/tmp/reproduction/.venv/lib/python3.10/site-packages/wandb/sdk/wandb_init.py", line 776, in init
    raise error
wandb.errors.CommError: It appears that you do not have permission to access the requested resource. Please reach out to the project owner to grant you access. If you have the correct permissions, verify that there are no issues with your networking setup.(Error 403: Forbidden)

Run the following curl command

curl 'https://api.wandb.ai/' -vvv

observe that it responds with a 403

* Host api.wandb.ai:443 was resolved.
* IPv6: (none)
* IPv4: <IP_ADDRESS>
*   Trying <IP_ADDRESS>:443...
* Connected to api.wandb.ai (<IP_ADDRESS>) port 443
* ALPN: curl offers h2,http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 / X25519 / RSASSA-PSS
* ALPN: server accepted h2
* Server certificate:
*  subject: CN=api.wandb.ai
*  start date: May  1 09:38:04 2024 GMT
*  expire date: Jul 30 10:31:38 2024 GMT
*  subjectAltName: host "api.wandb.ai" matched cert's "api.wandb.ai"
*  issuer: C=US; O=Google Trust Services LLC; CN=GTS CA 1D4
*  SSL certificate verify ok.
*   Certificate level 0: Public key type RSA (2048/112 Bits/secBits), signed using sha256WithRSAEncryption
*   Certificate level 1: Public key type RSA (2048/112 Bits/secBits), signed using sha256WithRSAEncryption
*   Certificate level 2: Public key type RSA (4096/152 Bits/secBits), signed using sha384WithRSAEncryption
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://api.wandb.ai/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: api.wandb.ai]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: curl/8.8.0]
* [HTTP/2] [1] [accept: */*]
> GET / HTTP/2
> Host: api.wandb.ai
> User-Agent: curl/8.8.0
> Accept: */*
>
* Request completely sent off
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* old SSL session ID is stale, removing
< HTTP/2 403
< content-length: 134
< content-type: text/html; charset=UTF-8
< date: Sat, 29 Jun 2024 02:31:20 GMT
< alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
<
* Connection #0 to host api.wandb.ai left intact
<!doctype html><meta charset="utf-8"><meta name=viewport content="width=device-width, initial-scale=1"><title>403</title>403 Forbidden

Expected Behavior

website working as usual

script working as usual

curl 'https://api.wandb.ai/' should return a 404, not a 403

I suspect, that there is some erroneous region blocking going on, because the same curl request from my server in a different region gives the correct results:

* Host api.wandb.ai:443 was resolved.
* IPv6: (none)
* IPv4: <IP_ADDRESS>
*   Trying <IP_ADDRESS>:443...
* Connected to api.wandb.ai (<IP_ADDRESS>) port 443
* ALPN: curl offers h2,http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 / X25519 / RSASSA-PSS
* ALPN: server accepted h2
* Server certificate:
*  subject: CN=api.wandb.ai
*  start date: May  1 09:38:04 2024 GMT
*  expire date: Jul 30 10:31:38 2024 GMT
*  subjectAltName: host "api.wandb.ai" matched cert's "api.wandb.ai"
*  issuer: C=US; O=Google Trust Services LLC; CN=GTS CA 1D4
*  SSL certificate verify ok.
*   Certificate level 0: Public key type RSA (2048/112 Bits/secBits), signed using sha256WithRSAEncryption
*   Certificate level 1: Public key type RSA (2048/112 Bits/secBits), signed using sha256WithRSAEncryption
*   Certificate level 2: Public key type RSA (4096/152 Bits/secBits), signed using sha384WithRSAEncryption
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://api.wandb.ai/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: api.wandb.ai]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: curl/8.8.0]
* [HTTP/2] [1] [accept: */*]
> GET / HTTP/2
> Host: api.wandb.ai
> User-Agent: curl/8.8.0
> Accept: */*
>
* Request completely sent off
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* old SSL session ID is stale, removing
< HTTP/2 404
< content-type: text/plain; charset=utf-8
< vary: Origin
< x-content-type-options: nosniff
< date: Sat, 29 Jun 2024 02:32:39 GMT
< content-length: 19
< via: 1.1 google
< alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
<
404 page not found
* Connection #0 to host api.wandb.ai left intact

Steps To Reproduce
See above
Screenshots

Environment
OS: Linux
Browsers: Chrome
Version: 126.0.6478.114
Additional Context
No response

I have the same problem.
Python 3.8
wandb 0.17.3
transformers 4.41.2
[rank0]:   File "/home/ixtora/.virtualenvs/main_env/lib/python3.8/site-packages/transformers/integrations/integration_utils.py", line 746, in setup [rank0]:     self._wandb.init( [rank0]:   File "/home/ixtora/.virtualenvs/main_env/lib/python3.8/site-packages/wandb/sdk/wandb_init.py", line 1195, in init [rank0]:     raise e [rank0]:   File "/home/ixtora/.virtualenvs/main_env/lib/python3.8/site-packages/wandb/sdk/wandb_init.py", line 1176, in init [rank0]:     run = wi.init() [rank0]:   File "/home/ixtora/.virtualenvs/main_env/lib/python3.8/site-packages/wandb/sdk/wandb_init.py", line 785, in init [rank0]:     raise error [rank0]: wandb.errors.CommError: It appears that you do not have permission to access the requested resource. Please reach out to the project owner to grant you access. If you have the correct permissions, verify that there are no issues with your networking setup.(Error 403: Forbidden)

same error - wandb.ai as a whole does not work, seems like some region blocking is going on similar to recent docker outage
will there be any comments by WANDB team? it would be nice to at least have an official statement on termination of work in said regions

Hi there, apologies for the inconvenience caused here. We are currently looking into this issue. Could you guys share the page where you are encountering this error? It will really help speed up the resolution of this error.
If you wish not to share your project publicly, you can also email me the link at<EMAIL_ADDRESS>

@ramit-wandb it appears that the whole api.wandb.ai subdomain is getting region blocked in Russia, so any specific URLs/pages/projects are irrelevant. As you can see in the issue, even the root URL of https://api.wandb.ai/ returns a 403, unless I access it from an overseas server or use a VPN.
This is a very recent change and there wasn't any official announcements by wandb. As such, I am assuming that this was a misconfiguration of some kind.

Could you guys share the page where you are encountering this error? It will really help speed up the resolution of this error.
As an example, the login page does not work (403).
See: https://api.wandb.ai/oidc/login?

Looks like fixed for now

Hi, as the issue is now fixed I will close this. Thank you for your patience while we investiagated.


How to hide a column in Reactabular?

I have data and column like below. I want to hide one column i.e.followers
var data= [
{
name: 'React.js',
type: 'library',
description: 'Awesome library for handling view.',
followers: 23252,
worksWithReactabular: true,
},
{
name: 'Angular.js',
type: 'framework',
description: 'Swiss-knife of frameworks. Kitchen sink not included.',
followers: 35159,
worksWithReactabular: true,
}]
var columns = [
{
    property: 'name',
    header: 'Name',
	cell: [editable({
          editor: editors.input(),
       })],

},
{
    property: 'type',
    header: 'Type',
	cell: [editable({editor: editors.input(),})],

},
{
    property: 'description',
    header: 'Description',
	cell: [editable({
          editor: editors.input(),
       })],

},
{
    property: 'followers',
    header: 'Followers',

	search: (followers) => followers - (followers % 100),
	cell: [editable({
          editor: editors.input(),
       })],

},

 <Table columns={columns} data={data} />

The simplest way to achieve that is simply to remove the column you don't need to show from your column definition. You probably need some other logic to control this if you need to show the column again. That's something you can solve on React's side. Table just shows what you pass to it.

Hi, @bebraw ,that's one point of view. But I have one ID, through which I can edit and delete the row i.e back-end operation.

I think you'll still have access to the id even if you don't show the id column at all. If I understand right, just removing the id from column definition should do the trick.

That ID is unique, If I remove the id from column definition, how would i get the id to delete or edit the row ( you mean row index), but through row index i cannot go for backend-operation

I think you may need to do it in two parts: 1. seek the row data based on row index 2. get id property from there.
I agree it might not be an ideal interface. It could be better to pass whole row data to editable to make these kind of things easier.

Yes Sir,
My table is dynamic (may be 20 columns come after web service call or 30 columns). That's the problem.How can I hide the column a big problem.
can I add ClassName  in this
     {
                property: 'name',
                header: 'Name',
                                },

So that the column will be hide

If you look at src/table.js, you can see a line like
className={cx(column.classes)}

This means you can do for example
{
  property: 'name',
  header: 'Name',
  classes: {hidden: true}
},

See classnames for details. I need to document this as it wasn't on readme.

Yes Sir,
I found that's working fine.
see image data hide successfully but column does not hide

var data= [
{
name: 'React.js',
type: 'library',
description: 'Awesome library for handling view.',
followers: 23252,
},
{
    name: 'Angular.js',
    type: 'framework',
    description: 'Swiss-knife of frameworks. Kitchen sink not included.',
    followers: 35159,

},
{
    name: 'Aurelia',
    type: 'frameworkRanjan',
    description: 'Framework for the next generation.',
    followers: 229,

},

];
What should write in data....or what should mention?

Ah, forgot about that. Of course it doesn't hide the column given the table layout works...
As I mentioned earlier, you will make your life far simpler by removing the column you want to hide from the column definition. You can still dig the data you need when you need it. The data definition can contain all fields you like. Reactabular doesn't care about that.
I hope that's it.

Ok, I will hide the column and by index I can get the particular id from that like
this.state.data[rowIndex].id
I have to declare two variable
is it ok ?

this.state.data[rowIndex].id
I have to declare two variable
is it ok ?

Sure.

Hi, I just keep all data and remove that column name from columns. It hide the column.
Thanks @bebraw

Great.


Disable system checks for renderstatic command

No need for DB to be live...

This is unnecessary --skip-checks command line argument allows users to bypass checks.


Injecting values in arbitrary plist files on IOS

Is it possible to inject values from env file in arbitrary plist files in root?
For example AppCenter-Config.plist
Thanks.

Hi,
it is not possible to inject values into such files using builtin capabilities of xcode (it doesn't interpolate values in plist files other that info.plist) however you can use hooks capability and copy prepared plist files from to your project. An example of how hooks can be used is located here

Thanks @maxkomarychev


need to manually generate the wss authentication certificate

这个问题怎么处理？

please ensure the the CrtFile and KeyFile files exist


[Complete] Dependency updates

Upstreaming #8

Can someone merge this? I don't have permissions.

I merged the [Start] PR, I think i'll just merge develop forward into complete.

Done - https://github.com/material-components/material-components-android-motion-codelab/commit/12bce627855b45616514dd29dc76f97ce72e40af.


Matcher template semantic issue

This may be a case of user error, however after setting up cedar in our iOS project and blank test projects from scratch half a dozen times I'm still here scratching my head as to why I can't get any of the matchers to work with object literals. I sent a message to the Google Group a couple weeks ago but noticed it hadn't been approved.
The issue is that if I pass in object literals like @strings or [NSNumber numberWithInt:2] to the equal or expect macros then the examples won't build. The errors usually look like this:
Semantic Issue
error: no matching function for call to 'equal' [3]

For example, here's a sample spec I set up in a blank project + cedar:
#import <Cedar-iOS/SpecHelper.h>

using namespace Cedar::Matchers;

SPEC_BEGIN(ExampleSpec)
describe(@"Example", ^{
    it(@"should compare scalars", ^{
        expect(1+1).to(equal(2));
    });

    it(@"should compare objects", ^{
        // Works fine
        NSString* aString = @"something";
        expect(aString).to(equal(aString));

        // Works fine
        NSString* bString = @"something";
        expect(aString).to(equal(bString));

        // Semantic Issue
        // error: no matching function for call to 'equal' [3]
        expect(aString).to(equal(@"something"));

        // Semantic Issue
        // error: no matching function for call to 'equal' [3]
        NSNumber *two = [NSNumber numberWithInt:(1+1)];
        expect([NSNumber numberWithInt:(1+1)]).to(equal([NSNumber numberWithInt:(2)]));
    });
});
SPEC_END

I've detailed the exact setup instructions I've taken along with code and screenshots in this gist: https://gist.github.com/1691576
I've tried to get the target settings to match the Cedar iPhoneSpecs target settings, but still no joy. Any ideas?

Hey Jeff. ARC and Cedar are not very friendly to each other as of now. We are slowly moving towards Cedar being compatible with ARC; however, there are couple of issues that remain unsolved. Problem you're experiencing is one of those issues. If you turn off ARC you should be able to run above spec successfully.

Thanks for the update Dmitriy. I'd been following issue #20 so when I saw that was closed I thought Cedar was fully ARC compatible now. But like you said, it seems to work fine without ARC.


Remove empty tests/unit_tests directory+makefile

This came into being in 79a4045749 but the referenced main.cpp wasn't checked in, nor was it ever hooked into the tests/ Makefile

Cherry-picked to v9.2.x


Upload protocol to http session instead of RPC

This ticket will be used to capture CPX dependencies needed to enable the rollout of protocol upload revamp (7633)
The protocol upload revamp (along with labware position check) will present users with a clear mental model and step by step process for successfully setting up a protocol run. You can see the basic flow in the screenshot below.
This flow should be rolled out for both JSON and Python protocols concurrently, and in order to do so we have some dependencies on CPX work with protocol engine, specifically:

Protocol Upload Response parity between JSON and Python. When a protocol is sent to POST'ed  to protocols/, the successful response JSON should adhere to the protocol JSON Schema. JSON protocol schema version 6 will include affordances to capture all PE command concepts in JSON (Protocol Schema V6 doc)
New endpoints are needed that mimic the functionality of calibration endpoints. The should be nested within a session resource and be accessible via a labware's unique identifier within the protocol (e.g. GET or POST to sessions/:id/offsets/:labwareId

This will include back and forth with CPX to ensure we can backup the 3 accordion views

Stale ticket, superseded by other work


Add creation_action specifier on Dataset registation

Copied from HIVE Board:
For Datasets and Publications add a new transient field used only at create/POST time to set the creation_action attribute of the Activity that links the Dataset/Publication to the parent entity or entities.

If creation_action is not provided at POST time, create the Activity as it is created now with the default creation_action field.
If a creation_action is provided, store that value in the Activity.create_action field.

Currently there is no need to return the creation_action on a GET as it will only be used during internal queries.
Currently, allowable values for Dataset/Publication creation_action are:

"Lab Process"
"HIVE Process"

[ ] Get a definition for the HM specific actions and discuss the actions to be set for SenNet

Discussion on HuBMAP card
https://github.com/hubmapconsortium/entity-api/issues/533


Ensure memory-mapped files are safely closed

Adds a new class io.MMapArray, an array_like type that uses a memory-mapped file buffer for storage, and replaces usage of numpy.memmap with io.MMapArray throughout the codebase.
numpy.memmap does not have an API that guarantees that the underlying file is closed:

Currently there is no API to close the underlying mmap. It is tricky to ensure the resource is actually closed, since it may be shared between different memmap instances.

This could lead to a large number of file descriptors staying open for much longer than necessary. It seems to have been the cause of errors encountered in @scottstanie's testing due to too many open files when unwrapping multiple interferograms in parallel.
OSError: [Errno 24] Too many open files

TODO: fix pre-commit failures, finish docstrings, add unit tests
@scottstanie will you please test this out and see if it resolves the issue for you?

not related to this PR, but i retried an editable install after checking out the branch, and it didn't error on install... but then I got this during the run
  File "/Users/staniewi/repos/snaphu-py/src/snaphu/_conncomp.py", line 307, in grow_conncomps
    regrow_conncomp_from_unw(
  File "/Users/staniewi/repos/snaphu-py/src/snaphu/_conncomp.py", line 110, in regrow_conncomp_from_unw
    run_snaphu(config_file)
  File "/Users/staniewi/repos/snaphu-py/src/snaphu/_snaphu.py", line 89, in run_snaphu
    subprocess.run(args, stderr=subprocess.PIPE, check=True, text=True)
  File "/Users/staniewi/miniconda3/envs/mapping-311/lib/python3.11/subprocess.py", line 548, in run
    with Popen(*popenargs, **kwargs) as process:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/staniewi/miniconda3/envs/mapping-311/lib/python3.11/subprocess.py", line 1026, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/Users/staniewi/miniconda3/envs/mapping-311/lib/python3.11/subprocess.py", line 1950, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: '/Users/staniewi/repos/snaphu-py/src/snaphu/snaphu'

so I wonder if it's possible to support that for testing

Unfortunately i dont think this is working (on Mac still).
I dont quite get why psutil doesnt show the memmaps that still have a file descriptor, but lsof is showing the list growing over time (screencast from running watch -n 0.3 "lsof -p 91685 | grep snaphu" while that dolphin process is running ):

Also just clarifying- this is not doing any parallel processing; it's just unwrapping each interferogram in serial

@scottstanie found this issue which will be fixed in the next Python release (v3.13) with the addition of the trackfd=False option:
https://docs.python.org/3.13/whatsnew/3.13.html#mmap

Closing this in favor of #82


If $PIPENV_SHELL doesnt exist, use system_which

Fixes #1058
Falls back to system_which to find shell if it is just a name instead
of a path

I'm ok with closing this / not merging, I just wanted to officially propose it and discuss it


General performance improvements discussion

Summary:
At the suggestion of @bob-carpenter, I'm opening this as a discussion thread for how to improve the performance of Stan both generally, and on specific platforms. These improvements can vary between simple compile and run-time tricks the user can perform in certain environments which can be addressed with documentation and basic automation, to deep overhauls of the internals to exploit modern processor architecture. While my experience with the code is minimal currently, it seems Stan is already at a very good baseline for performance, but there is likely room for improvement (such as exploiting vectorization better and improving special function performance, for starters).
Description:
Stan is great, and I want to help make it better. This issue is a place to discuss how to best do so, and provide various benchmarks on common systems I have access to see where performance is lagging. The main machines I have readily available for trials are:
AMD Ryzen 5800X (Ubuntu 21.04, Windows 10)
2X AMD EPYC 7742 64-Core Processor (CentOS 7)
2X Intel(R) Xeon(R) Gold 6128 CPU (CentOS 7)
2X Intel(R) Xeon(R) CPU E5-2680 v4 (CentOS 7)
2X Intel(R) Xeon(R) Gold 6148 CPU (CentOS 7)
Fujitsu A64FX (CentOS 8)
ThunderX2 99xx (CentOS 8)
Intel(R) Core(TM) i9-10885H CPU (Ubuntu 21.04)
Intel(R) Core(TM) i7-6920HQ (Big Sur)
Apple M1 (Big Sur)
Benchmarking tools:
I've been using these programs to do some simple benchmarks.
simple cmdstan benchmark
compare amdlibm to libm, need to extract amd-libm somewhere and add the library to library path as in the example script.
Results
This is currently mostly a more qualitative stub, with more results to come later. I'm only using cmdstan so far.
On machines running CentOS 7, glibc is painfully out of date. From a practical standpoint, this means that libm (log, exp, etc.) is also incredibly out of date (2.17). AMD provides a performance tuned version of libm, which honestly is approximately the speed of current libc implementations (given their permissive license, the code might have been absorbed into glibc). However, it absolutely crushes old libc versions.
./test_libm.sh 10
Model name:            Intel(R) Xeon(R) Gold 6128 CPU @ 3.40GHz
GNU libc version: 2.17
GCC version 7.4

func	libm.so	libalm.so
log	0.3302	0.0555
exp	0.1533	0.0503
log1p	0.1225	0.0994
cos	0.1308	0.0613
sin	0.1379	0.0570
acos	0.1903	0.2063
asin	0.1731	0.2296
atan	0.2069	0.1938
exp10	0.2888	0.0562
exp2	0.1047	0.0518
log10	0.3369	0.0671
log2	0.0930	0.0605
cosh	0.1750	0.2473
sinh	0.1720	0.2661
tanh	0.1916	0.1154
expm1	0.1063	0.0997

Other notes:

The code spends a non-negligible amount of time pushing things to the vari_base* stack. This improves with more modern compilers, but is still probably ~5% of execution time on this example for the x86_64 machines. It could be better or worse, it's kinda painstaking to isolate because the stack is modified everywhere.
Any BLAS implementation can be swapped in. This can be useful for conda packages, since I doubt you want to auto-pull and build openblas/blis/mkl/whatever.
There are likely techniques for more rapid evaluation of heavy 1-dimensional functions, which can really hurt performance on certain problems. I have one such utility for this, but it's on a limited domain/range. There are still probably very good ways to re-tool it to handle these problems.
apply_scalar_unary can probably be vectorized for many functions. Vector instructions are currently under-utilized in my limited profiling, but I will investigate this more

Current suggestions
It might be worth detecting the libc implementation (when appropriate) and suggesting the AMD implementation be loaded. This could also be pulled in directly, given their permissive license. The make/local I'm using in cmdstan contains
LDFLAGS+= -L/mnt/home/rblackwell/tmp/amd-libm/lib -Wl,-rpath,"/mnt/home/rblackwell/tmp/amd-libm/lib" -lalm -lm to enable this feature, but this could be changed to $(PWD) or whatever the make equivalent is.
On the same machine/OS, I got significant performance bumps from using a more modern compiler (gcc10 vs gcc7), and swapping the Eigen backend out for MKL, both of which were relatively trivial. The combined effect of these three things cut execution time down from ~75s to ~45s, and it was all very low hanging fruit. I didn't see any obvious mention of this in documentation. The same modifications on my modern Ryzen system didn't do much of anything though (I didn't try an older compiler, MKL and libalm didn't help noticeably). The code executed in about 28-30s, depending on configuration.
Current Version:
v2.27.0

Where can we help with the discussion? I saw the current suggestion, but not sure where what could actually be configured as $(PWD) (or the make equivalent).
Maybe it'd help to know exactly what things you're suggesting?

I made an example. Unfortunately I had to directly include the binary libalm.so object, since they don't do github releases from their source and they don't provide direct download.
https://github.com/blackwer/cmdstan/commit/603cdd48d89f9764dee6bfeb433a60da18af01ef
This checks, when running linux, if glibc is older than some threshold, and automatically links in libalm.so if glibc is older than that threshold. There's lots of room for improvement, so it's more a proof of concept. For example, I wrote that simple benchmarking program, and a decision could just be made based on the output of that. I'm not sure how much you want to automate this kind of stuff in the build process, since it adds complexity and sometimes fragility. Simply detecting that things are slow and warning the user and providing a link to a simple remedy might be reasonable. There's also means to directly hotswap out certain calls in the C++ code itself, rather than doing anything at build time, though this is considerably more complicated.

One note: we've tested MKL in the past. It turns out that the implementation gets loose with IEEE floating point rules and although the wall time is faster, we found that:
1. a lot of our tests fail due to numeric issues

I've had this experience with dgemm et. al. on other projects. I never verified, but I thought it had more to do with operation ordering. My answers were always different comparing Eigen to MKL, but not necessarily more or less right. That said...

2. due to the numerical error, the effective sample size per unit time ended up being lower than using the current implementation even though the per iteration time was faster.

That's interesting. I should really investigate this further for other projects. This isn't really a problem for me, but I should really try to figure out why they give different results once and for all.

I'm wary of things that are faster that produce different results. It requires a bit more effort to sort through what that means and actually assess whether it's faster.

Agree completely. Did you try other BLAS implementations to see? They likely also had different results, so it probably falls in the same bucket, but might be worth a gander.

Thanks @blackwer!! Couple little notes

The code spends a non-negligible amount of time pushing things to the vari_base* stack. This improves with more modern compilers, but is still probably ~5% of execution time on this example for the x86_64 machines. It could be better or worse, it's kinda painstaking to isolate because the stack is modified everywhere.

Yes so this has vex'd us for a while, the vari_base std::vector<vari_base*> stack is a struct which has pointers (or smart pointer like objects) for data needed in a reverse pass calculation and a method for executing a reverse pass calculation. The blog post here goes over this in more detail. Everytime we use a var type in an operation we place a type inheriting from vari_base onto that stack. We call the chain() method for each reverse pass callback via a virtual function scheme which feels not optimal but every time we've tried rewriting this we haven't found a way that's faster. The vari_base is also the abstract base class of our vari that sit inside of Stan's scalar type, var (our scalar type follows a PIMPL/smart pointer form. The below is a pseudo-code example of the structure.
// abstract base class
struct vari_base {
  virtual void chain() = 0;
}

// internal impl
struct vari : vari_base {
  // vtable ptr for chain()
  double val_;
  double adj_;
}

// smart pointer like class
struct var {
  vari* vi_;
};

There are likely techniques for more rapid evaluation of heavy 1-dimensional functions, which can really hurt performance on certain problems. I have one such utility for this, but it's on a limited domain/range. There are still probably very good ways to re-tool it to handle these problems.

apply_scalar_unary can probably be vectorized for many functions.

So these two sort of go hand in hand. apply_scalar_unary is much more for convenience than performance. It let's us write much fewer function that works on objects that are containers of containers like std::vector<std::vector<Eigen::Matrix<var, -1, -1>>>. It would be better if we had reverse mode specializations for all unary functions that take in eigen matrices. That would certainly help out with memory, but then we hit your next point

Vector instructions are currently under-utilized in my limited profiling, but I will investigate this more

This is where the culmination of all the above leads to not being able to have vectorized instructions. Since our base var scalar type is not POD, eigen (and any autovectorizer in a compiler) will not be able to auto gen vectorized instructions. Our approach instead has been to add a template to vari that enables the value and adjoint to be Eigen matrices / arrays instead of single scalars such as the below pseudocode. An easy way to think of this is that normally we do an Array of Structs approach to matrices, but in the below we are doing a Struct of Arrays approach.
struct vari {
  // vtable pointer to chain() method
  Eigen::MatrixXd val_;
  Eigen::MatrixXd adj_;
};

So then when we do the reverse pass for matrix operations and we access the values and adjoints of the matrix we can actually have vectorized instructions.
The only alternative to the above would involve adding packet math for var types for each instruction set Eigen has specializations for. This would would involve unpacking packs of the values and adjoints in the varis of the vars of the matrix into seperate packets, storing those packets on our arena allocator, then using intrinsics over those packets when running the forward and reverse pass. If we didn't have the vtable pointer inside of the vari this might not actually be that bad, but my ballpack has always been that because we'd have to work around each of the vtable pointers inside of the vari when doing unpacking that the rest of the custom packet math would not be worth it.

Did you try other BLAS implementations to see? They likely also had different results, so it probably falls in the same bucket, but might be worth a gander.

I haven't tried personally, but I do think others have.
If you end up with any results (positive, negative, same), please let us know!