Gardener Canary Update/Melt-Down Protection

Stories

As provider I want to stop a new Gardener roll-out when it detects issues during cluster operations that indicate a problem with the new Gardener version, so that the damage it contained automatically.

Motivation
See above.
Acceptance Criteria

[ ] Run operations such as a cluster update following a Canary process, i.e. first migrate one cluster and validate it, then migrate more clusters batch by batch (max-in-flight) or in customer-defined maintenance time window

[ ] If e.g. 5 out of 10 fail (turns a healthy into an unhealthy cluster), it's time to stop the Gardener from doing more harm

Implementation Proposal
@mvladev suggested to use a separate controller that keeps track of the Gardener metrics endpoint and scale it down to 0 if the metrics indicate an issue with the new Gardener version (in comparison to the last one, e.g. by resetting the success vs. overall operation counts after deployment).
Definition of Done

[ ] Knowledge is distributed: Have you spread your knowledge in pair programming/code review?
[ ] Unit Tests are provided: Have you written automated unit tests or added manual NGPTT tickets?
[ ] Integration Tests are provided: Have you written automated integration tests?
[ ] Minimum API exposure: If you have added public API, was it really necessary/is it minimal?
[ ] Operations guide: Have you updated the operations guide?

See also https://github.com/gardener/machine-controller-manager/issues/470 for a similar problem on MCM level.
We should develop something like a scoring function that tells us whether we have destabilised a landscape or shoot with an update or not (beyond a certain threshold). Threshold, because we cannot expect all shoots/pods to come up again (what this means is not even clear), so there needs to be some fuzzyness. Like e.g. "the number of pods that are not running (pending, crash-looping, container-creating, etc.) hasn't gone up by more than 30% of the number of pods that were drained from the affected nodes". Only then we continue or else we brace ourselves (pause) and watch whether the situation improves. It's more complicated than that (pods are not guaranteed to come up in the same number or may fail for many other reasons), but I believe we need to develop this notion/formula. It's also what we as human operators do. We don't expect all shoots/pods to be running again after an update, but we watch the tendency and in case of issues we then intervene, pause, and analyse what's going on. Automation can't analyse, but can pause and alert.

use a separate controller that keeps track of the Gardener metrics endpoint and scale it down to 0 if the metrics indicate an issue with the new Gardener version (in comparison to the last one, e.g. by resetting the success vs. overall operation counts after deployment).

I would suggest to mediate this via status.conditions along the lines discussed in https://github.com/gardener/gardener/pull/1797. The co-ordination point would not be the Cluster status. Landscape status perhaps? The status.conditions approach lends itself to multi-level co-ordination. Relevant information can be propagated up (node and cluster issues) and down (landscape and infra issues) the levels.

/remove-lifecycle rotten

Even though this is about new Gardener versions, it may also be helpful to safeguard against seed configuration changes (cc @adenitiu @dguendisch), although this can, should, and probably must be orchestrated "from the outside" as seeds are externally configured (even if ManagedSeed is used; while ManagedSeedSet is not yet implemented).
In that case, shoot'ed seeds should probably be updated and reconciled one by one, continuing only if the previous shoot'ed seed has been successfully reconciled, all status conditions are healthy, and the hosted control planes are healthy as well (possibly waiting for a certain percentage of hosted control planes to have reconciled successfully as well with the shoot's status conditions to be healthy as well, which shouldn't be necessary, if the gardenlet wasn't changed, but can in some cases be helpful to spot an unexpected problem).
Ideally, this is taken care of by some "seed operator" instead of some fragile and interruptible CI/CD procedure, which would probably benefit from Gardener's code like also gardener-operator does. This brings us back to the idea of ManagedSeedSet and its operator.


Add migration/migrator_spec

This mocks a rails application initialization process. It loads the config and runs rake redis:migratein a spec environment.

Codecov Report

Merging #51 into 55f16a3a8fb22017a9d9e69cf477da7f7c4574d0 will increase coverage by 2.35%.
The diff coverage is 100.00%.

@@                             Coverage Diff                              @@
##           55f16a3a8fb22017a9d9e69cf477da7f7c4574d0      #51      +/-   ##
============================================================================
+ Coverage                                     96.55%   98.91%   +2.35%
============================================================================
  Files                                            24       26       +2
  Lines                                           872      924      +52
============================================================================
+ Hits                                            842      914      +72
+ Misses                                           30       10      -20

Impacted Files
Coverage Δ

spec/migration/migrator_spec.rb
100.00% <100.00%> (ø)

lib/redcord/tasks/redis.rake
100.00% <0.00%> (ø)

lib/redcord/migration.rb
100.00% <0.00%> (+6.25%)
:arrow_up:

lib/redcord/railtie.rb
100.00% <0.00%> (+37.50%)
:arrow_up:

lib/redcord/migration/migrator.rb
97.43% <0.00%> (+41.02%)
:arrow_up:

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 55f16a3...57296cc. Read the comment docs.

expect the migration versions on redis have changed
:mag_right: Click to see changes since last update.


new version RN

Release stable RN 0.46 https://github.com/facebook/react-native/releases/tag/v0.46.0

Hello! There is an approximately ~2 week delay between a react-native release and updating the Create React Native App version. We will release an update soon :)


Code style

Great. But currently I'm refactoring the code, and all these files will be removed except .gitignore. But thanks for your effort. Did you fix these items automatically? I'm going to use TSLint to prevent such things in future.

Yeah, I have used IntelliJ for these changes.
Additionally to TSLint I recommend using https://github.com/prettier/prettier as a code formatter. Most IDEs/editors (Atom, VS Code, vim, IntelliJ/WebStorm,...) provide extensions for it. It also integrates nicely with TSLint.

This is a great tool, I will give it a try. I've also heard it can be executed before git commit https://medium.com/@brindelle/format-your-javascript-with-prettier-before-committing-177079ec356a

You can even configure this precommit hook in the package.json: https://prettier.io/docs/en/precommit.html


Friendly message when search returns nothing

When search returns nothing, there should be a message displayed:
No stocks found for the query: 'your query'

This should be displayed where the stocks normally are

Closed by #214


Add prebuild deps, scripts, and gitignore

This adds the prebuild dependencies, scripts, and .gitignore addition for #147 (only the prebuild-install is really necessary for users, actually easiest to globally install npm install -g prebuild for yourself, I think). You will have to run prebuild locally for new versions, and upload with a github token (instructions at https://www.npmjs.com/package/prebuild). I think you can only generate prebuilds for your architecture, so not sure if you want others to upload other binaries (I am running win32x64, which is what I was interested in creating binaries for), although unfortunately I think github tokens don't provide much granularity with permissions.

@kriszyp Hi Kris, it looks good but I haven't had the time to review it thoroughly yet. I'll be on vacation till next weekend; you can expect me to take a detailed look at it then. Sorry for the delay, and thanks again for your excellent work!

@Venemo when you get a chance, can you review this again? I'd love to see it in the mainline. tx!

@crfroehlich @kriszyp I just returned from vacation. Looks good, merging :)

Sorry to disturb this discussion with my ignorance.
This is a great lib and my tests show a 20% loss in writes and a 300/500% gain in reads, when compared to leveldown (which is also a great lib).
Leveldown has prebuilt binaries for most of architectures so this should not be extremely difficult to create in this project (always easy to ask others to do your work). I think the acceptance of this  project would increase if windows (bin) was supported seamlessly from install.
Following win build instructions is kind of "not easy", and I ended up (after some time spent on it) using a require like:
var lmdb = require('./build/Release/node-lmdb.node');
Worked perfectly but I guess the average user will not go throught all of it and will quit.
Best regards and thank you for a great little db system proxy.

I just published version 0.7.0 which includes this PR. @kriszyp How can I make sure that the pre-built binaries are there?

Sorry they are not. Message from npm install:
prebuild-install WARN install No prebuilt binaries found (target=8.11.1 runtime=node arch=x64 libc= platform=win32)

If you install leveldown (the example mentioned), in node_modules/leveldown you will find a folder prebuilds with a folder for each arch: android-arm, …, linux-x64, win32-64
Sorry not being more helpfull and thanks for all this.

@jorge-agra Ouch. I'm not quite sure what might be the problem, I thought @kriszyp 's PR took care of it.

I'll try to check it, at least for windows... Not promising anything though. Not my area of expertise!
There is a npm prebuild pkg that seems to do the trick.

Well, will not be an easy one I guess, and will need further investigation.
With prebuild npm pkg I was able to create a prebuilds folder and a file node-lmdb-v0.6.2-node-v57-win32-x64.tar.gz in it... Don't really know what to do with it, namely, how to include it in your pkg.

@Venemo You have to create a github token and run the prebuild script (when you do a release) as described in https://www.npmjs.com/package/prebuild#uploading.
@jorge-agra What error do you get on just doing require('node-lmdb')? I don't know what package configuration would make it so require('./build/Release/node-lmdb.node') works instead; that seems like it means that your binary compilation must have succeeded, but there is some weird package folder setup?

@kriszyp, just don't worry about my require, not important. I'm confident that when Venemo runs the prebuild and publishes a new version, the binaries will be there :)

But if you have a build/Release/node-lmdb.node, then you already have the binaries. Uploaded binaries are helpful for situations where the binary compilation fails (due to the enumerable ways that MSBuild can be mis-configured, not installed, etc.).

Ok, just tell me what I should do with it :)
node-lmdb-v0.6.2-node-v57-win32-x64.tar.gz

If you have done npm install node-lmdb, then node-lmdb.node should be inside of the package like /your-project/node_modules/node-lmdb/build/Release/node-lmdb.node. And running node from within /your-project (not inside node-lmdb), you should be able to require('node-lmdb') to load node-lmdb (which should transitively find/require node-lmdb.node). If there are any errors, please report.

Sorry, not exactly like that, maybe i'm missing something or i mislead you, truly sorry for that.
To build the bin for windows, I cloned node-lmdb from github, installed all that stuff from node-gyp and windows build tools, restarted a few times, installed python27, and after some very frustrating failures was able to finally produce a VS project that compiled and built correctly, producing a build/release/node-lmdb.node inside node-lmdb project.
It also created a bunch of VS related files in build folder (of node-lmdb), for instance a binding.sln, config.gypi, etc.
After that, and that is what I should not have done, to make things easier, I copied that file ({node-lmdb}/build/Release/node-lmdb.node) to my lmdb test project, to folder ./build/Release/node-lmdb.node and pointed my require to that. And all worked fine.

Normally, you would just do npm install node-lmdb, rather than cloning (you only need to clone if you are dev'ing node-lmdb), and if we have uploaded binaries at some point, npm install node-lmdb will download the correct binary for your machine. But yeah, installing python, etc., can be frustrating, and that's what the uploaded binaries would help avoid.

@kriszyp, that would be the most usefull and simple thing to do. But right now, when you do that (npm install node-lmdb), just tried it, npm tries to compile for my plattform, no prebuilds in package.
To me, now that I've the building system ok, no problem, and after installing (triggers a build) node-lmdb from npm install, I can just do a require('node-lmdb') and everything works.
But my point is that, if you don't have the build env properly configured, and that is not easy, a prebuild for your arch would be great and avoid all this hassle.

@jorge-agra I completely agree that prebuilt binaries would be great. That's why I made the PR :).

@kriszyp I tried prebuild --all but it failed.

prebuild -all seems pretty ambitious since it apparently attempts to compile (supposedly supported) versions of node, that node itself doesn't even support anymore.

@kriszyp Which versions should I want to compile for? i.e. What is the correct prebuild command that I should use?

@Venemo, if you just do prebuild, no parameters, it will build for current supported plattform.

I think versions 8-12 would be:
prebuild -t 10.16.0 -t 11.15.0 -t 12.4.0 -t 9.11.2 -t 8.16.0 -u <your-github-token>

But, the bigger challenge is that I think you have to compile each platform on that platform. That is, to compile for Windows, you have to compile on Windows. I don't know if you have machines for each platform (or at least popular platforms) available to you (Mac and Windows would probably be the most popular, I suppose).

Well, made same advances... my setup:

windows machine with vs2017 build tools VC++
node 10.16.0

Main steps:

clone node-lmdb
npm i windows-build-tools --production (=> important to detect vs2017 i think)
prebuildify -t<EMAIL_ADDRESS>
This builds the project with msbuild and creates in node-lmdb/prebuilds/x86_x64 folder a file named "node.abi64.node". Kind of a strange name but tested and it works.
But that's just the beggining of it. The article below explains how to use prebuilds:
https://github.com/prebuild/node-gyp-build
Some changes must be made to current setup of bindings. Didn't tested it though.

To add another bit, just got a successfull build of node-lmdb (windows) from appveyor. Easy to setup, a free windows build env. Very neat.

Sorry guys, I only have a Linux machine here, and no time to set up a Windows VM. Any help in this area is greatly appreciated.

I would be glad to upload Windows binaries, which I think I can do if you add me as a collaborator to the repo.

@kriszyp Added you. One more thing: looks like you added package-lock.json to the repo. Was that intentional?

Version 7.0 binaries for Windows are uploaded. I verified that npm install node-lmdb now installs without any compilation on Windows.

looks like you added package-lock.json to the repo. Was that intentional?
No, sorry about that. And I don't know how that got added since it is in .gitignore. Feel free to delete, that wasn't intentional.

@kriszyp I will try to run the same prebuild command on Linux to see what happens. In the meantime I added your name to the acknowledgements list in the README, I hope that's OK with you. This is the least I can do to express my gratitude.

Hi guys,
an update after some experiments. I have a cloned repo, for testing purposes, that automatically builds for windows and creates the prebuilds file for windows. Other architectures can build on install or maybe some other prebuilds can be included.
It is a kind of involved process, I will try to explain briefely but you can check the setup on my repo,  jorge-agra/node-lmdb.
Basically it involves:

Create an appveyor account. Appveyor will handle the windows build without the need for a VM or win machine.
Use prebuildify-ci to init an appveyor.yml
Change appveyor.yml to build as we need and include an encrypted github token so appveyor can upload the built artifact to Venemo/node-lmdb repo
On github, add appveyor as app to your account (Venemo) so it can watch for commits and start the build
After build is done in appveyor, an artifact will appear in github release
Download artifact with prebuildify-ci. It will be in prebuilds/win32-x64
Add a .npmignore that does not ignores prebuilds
Use node-gyp-build in app so that prebuilds are handled transparently
In index.js

module.exports = require('bindings')('node-lmdb.node');

module.exports = require('node-gyp-build')(__dirname)

And that's it. As I said, not easy, but kind of straitgh forward. Not my doing, just saw what leveldown does and made some changes.
Note: having a prebuild in build/Release does not seem like a standard practice.
Drop me a message if you want to implement this and need help, and feel free to peek the cloned repo I created to test it.
A final note: i did not published the package to npm, so no idea it will work. On my local env, works ok, and tested on linux also. In llinux a build is made because the prebuilds don't include the needed arch.
Best regards.


Checking Internet connectivity from behind a proxy server

I am working through the proxy server of my college.
$ is-online

returns Offline even though Internet works after proxy authentication on the browser.

Assuming macOS, can you post the output of
traceroute google.com -nm 1
dig +short google.com
route -n get default

once before and once after authenticating?

El Capitan v10.11.3
Before authentication:

After authentication:

Okay so DNS works regardless of authentication, but we don't know yet who's answering the queries and how that proxy operates exactly. Can you show these before and after authentication:
dig google.com
curl -v http://wpad/wpad.dat

Oh, and sorry about that first command, didn't realize argument order is signifcant as opposed to Linux. But I guess it won't show any meaningful information anyways.

Oh, and
ipconfig getpacket en0

might be of interest too (shouldn't differ based on authentication)

Before authenticating:

After authenticating:

Hmm, still not sure how this proxy operates, but it looks to not intercept DNS, but also doesn't seem to allow direct connections to the outside. I think we might be able to detect the proxy through HTTP.
@faheemzunjani can you tshow his before and after authentication:
curl -v https://icanhazproxy.com
```
And this after authenticating (Replace `Wi-Fi` with the name of your interface):

networksetup -getwebproxy "Wi-Fi"

Before authenticating:

After authenticating:

Is it possible that the error is coming because a few ports are blocked by our proxy server like UDP port is blocked here?

Is it possible that the error is coming because a few ports are blocked by our proxy server like UDP port is blocked here?

It certainly doesn't help that direct outbound DNS (53/upd) seems to be blocked, but that's what our HTTP fallback should ideally solve, but it fails because it has no proxy support yet.
I haven't worked much with SOCKS proxies (which I assume yours is) yet, but https://github.com/sindresorhus/got#proxies could be used instead of plain HTTP here, I guess: https://github.com/sindresorhus/is-reachable/blob/master/index.js#L39.

Moving this topic to https://github.com/sindresorhus/is-reachable/issues/7.


Is it possible to load images from network and use an activity view?

Hello!
Is it possible to use this component when I only have a set of URLs rather the UIImage objects?
Perhaps
https://github.com/MailOnline/ImageViewer/blob/master/ImageViewer/Source/GalleryItem.swift
Using  GalleryItem, custom enumeration
But, in that case, how should I add an activity view while the image is downloaded?
Can I combine this library with:
https://github.com/rs/SDWebImage
and use:
[imageView sd_setShowActivityIndicatorView:YES];
[imageView sd_setIndicatorStyle:UIActivityIndicatorViewStyleGray];
Thanks  a  lot for suggestions.

I see we have
case spinnerStyle(UIActivityIndicatorViewStyle)
case spinnerColor(UIColor)
but, how do we connect that with a network request?

If you are using kingfisher check code sample below, using requests instead of image manager should be pretty similar
extension ScreensTableView: GalleryItemsDataSource, GalleryDisplacedViewsDataSource {
    func provideGalleryItem(_ index: Int) -> GalleryItem {
            return GalleryItem.image { callback in
                KingfisherManager.shared.retrieveImage(with: url, options: [], progressBlock: nil, completionHandler: { (image, error, cacheType, url) in
                    callback(image)
                })
            }
    }
}

Thanks, I already got that using sdWebImage.
I guess when using a network request we should not use the displacement view (a thumbnail of the imag is about to be downloaded).
Basically because the UX would be very bad.
What do you think.

I am providing displacement view all the time, but when image is not yet loaded ImageViewer won't use it for displacement view and appears without displacement animation, which is kinda bugged due to applying opacity to UIVisualEffectView, but i hope they will fix that in future.
And most of the time you should have 2 different urls, one for small image in your controller and another one for fullscreen viewing.

The situation is getting a bit out of hand.
ImageViewer cannot function properly (concentually & from UX point of view )  if images are not available, and having an asychronous source means they are not available.
Guys pls do not merge anything unless it is properly considered in terms of future product evolution.

@Krisiacik it is very common to have thumbnails (small pictures) and when you tap them, go to the viewer and download a high resolution version of those thumbnails.

@Ricardo1980 isn't that exactly what ImageViewer is doing from the start?
I think we did not understand each other in terms of who actually means what.
So to recap - I am ok with the idea of having async full image..that's why we have implemented it.
However, I don't se much point supporting async thumbnails.
What kind of UX would that be? Yuo would tapping on (best case) placeholder image or nothing, only to get another placeholder "something" because the real content is still on the way.
But, perhaps it's a matter of imagination/proper use case.


proposal: all: unify context and return err idioms for error handling

Proposal Details
Go is capable of achieving concise and elegant error handling today, without the need for any language changes.
The following code is the archetypal CopyFile() example, rewritten in terms of a unified context and return err pattern:
func CopyFile(ctx *context, src, dst string) {
	if ctx.Err() != nil {
		return
	}

	r := os.Open(ctx, src)
	defer r.Close(ctx) // must be robust to nil pointers
	w := os.Create(ctx, dst)

	if ctx.Err() != nil {
		// no need for fmt.Errorf("...: %v", ..., err)
		ctx.Push(fmt.Errorf("copy %s %s", src, dst))
		return
	}

	io.Copy(ctx, w, r)
	w.Close(ctx) // must close even if ctx.Err() != nil

	// a vet error can catch any accidental returns without checking ctx.Err()

	if ctx.Err() != nil {
		os.Remove(new(context), dst)
		ctx.Push(fmt.Errorf("copy %s %s", src, dst))
	}
}

Given that a v2 of the standard library is in the works, this is probably the best time to consider an API overhaul like this.
On the other hand, func(...) (T,error) may be too ingrained into Go culture at this point for a change like this.

This feels like reinventing C's errno system.
Conceptually, you can split up functions into:

Pure functions, which can't fail
Functions which can fail but don't do syscalls and aren't time sensitive (e.g. converting a string to an int)
Functions which do syscalls and/or are time sensitive and therefore can fail

I appreciate then that once context is involved, you always also need errors, but I don't think obscuring the return type helps. These are different kinds of functions, they should have different kinds of signatures.
If I were making a new language, I would use goroutine safe dynamic package variables instead of context and result types instead of error return tuples, but it's probably too late to change Go in either of those ways at this point, and it would be more than you could bolt on for a new standard library package.

I'm not clear on what the proposal is.  You are adding a Push method to context.Context?  What are the semantics?
As you say, we could only make such a change in a context/v2 package.

context package is already handling too many reponsibilites and it's polluting every function. this will make it impossible to write any funciton without the god-like context

A major problem with go error handling is template code such as：
if err!=nil{
    return nil,err
}

The proposal does not solve that.
The API with and without a receive context has swollen the number of standard library apis, and if try func(...) (T,error) and func(context,...) (T) Two different forms, adding API is a lot of work, not worth the loss.

 Call func/closure from assignment and 2. break/continue/return more than one level. #32473 (closed)

(Emoji vote if this was helpful or unhelpful; more detailed feedback welcome in this discussion.)

Closing due to unanimous disapproval (see emoji votes)


Rectified Shape calculator working over negative values

Related Issuse

Rectified Shape calculator working over negative values

Closes: #[issue number that will be closed through this PR]
Made the code work for positive values and propt user in case of negative values entered
A clear and concise description of what you have done to successfully close your assigned issue. Any new files? or anything you feel to let us know!
Checklist:

[x] My code follows the style guidelines of this project.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] I have made corresponding changes to the documentation.
[x] My changes generate no new warnings.

Screenshots

Original
Updated

original screenshot

updated screenshot

Kindly notify if changes are acceptable

I have made changes for square only if you find it feasible i will work further over rectifying all shapes calculation

Keeping in mind that length of side can't be negative and also making the user aware of the same I have made the changes

You must not create a PR, before assignment of issue.
Follow the ethics of Open Source. Thanks

I will make sure to follow the ethics of Open Source. This is my first contribution on Github so I couldn't figure out what steps to follow

Firstly Congratulations on you first PR being merged.
Secondly, Feel free to ask your doubts,if any.


Update breaking-changes-ps6.md

Docs Build status updates of commit b10f61e:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

archived-reference/docs-conceptual/whats-new/breaking-changes-ps6.md
:white_check_mark:Succeeded
View (>=powershell-3.0)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Add "single file mode"

Currently, Marksman requires a project/root/folder to provide language features such as cross-file references, workspace symbols, and rename refactor that works across many files.
However, it would be convenient to provide a subset of language features in situations where there's no project/root/folder. Some features like "document symbols" will be the same as before in "single-file mode". Other will lose cross-file capabilities and will work only intra-file, e.g. goto def, references, renames, completion. But perhaps this is enough for one-off edits of random markdown files.

/cc @jwortmann @jfcherng @rwols this is a continuation of #66 focused on "single file mode" support.


#692 multi line codes in  turn to one line after mail send.

Fixes
Fixes #692
Checklist

[x] I have made a material change to the repo (functionality, testing, spelling, grammar)
[x] I have read the [Contribution Guide] and my PR follows them.
[x] I updated my branch with the master branch.
[x] I have added tests that prove my fix is effective or that my feature works
[x] I have added necessary documentation about the functionality in the appropriate .md file
[x] I have added in line documentation to the code I modified

Short description of what this PR does:

Made changes with several cases of  tags to support line wrap.

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

Hi @ssiddhantsharma,
Could you please move this content here.
Thank you!
With Best Regards,
Elmer

Hello @ssiddhantsharma,Thanks again for the PR! It's HACKTOBERFEST! We want to show our appreciation by sending                                              you some special Hacktoberfest swag. If you have not already, could you please fill out                                              this form so we can send it to you? Thanks!                                             Team SendGrid DX

@thinkingserious Updated the troubleshoot file with your request.
#785

Thank you for the update! It looks like we can close this PR and move #785 forward.

@reedsa I am working on an updating #785, but yes we should close this one.


[#137] Institute nag message for profile completion

These changes should satisfy the AC for the ticket.  We will run into the same challenge when calling the hsapi with basic authentication however.

woohoo - the CI works - looks like your change to what the userinfo rest api returns has broken another test (hs_core/tests/api/rest/test_user_info.py#38). Looks fairly straight forward.


Centralize and update test documentation - Part 1 Explanation section

Fixes part of https://github.com/adoptium/aqa-tests/issues/1558

Thanks @Ndacyayisenga-droid - can you also create a pages dir inside of docs to mimic what is currently in smlambert.github.io ?  That layout and all of the extra files inside of https://github.com/smlambert/smlambert.github.io/tree/main/docs are used to serve up the documentation (as seen at https://smlambert.github.io/).
Once we have that structure in place, we can start adding more pages, and linking them off of the 4 main categories as appropriate.

hi @Ndacyayisenga-droid - let's move this one out of draft


Can't install rsvg

dandaka-mbp:html dandaka$ npm install rsvg
npm WARN package.json<EMAIL_ADDRESS>No repository field.
npm http GET https://registry.npmjs.org/rsvg
npm http 304 https://registry.npmjs.org/rsvg

<EMAIL_ADDRESS>install /Users/dandaka/projects/oco-web/html/node_modules/rsvg
node-gyp rebuild

/bin/sh: pkg-config: command not found
gyp: Call to 'pkg-config --libs-only-l librsvg-2.0 cairo-png cairo-pdf cairo-svg' returned exit status 127.
gyp ERR! configure error
gyp ERR! stack Error: gyp failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:337:16)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:797:12)
gyp ERR! System Darwin 13.4.0
gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/dandaka/projects/oco-web/html/node_modules/rsvg
gyp ERR! node -v v0.10.26
gyp ERR! node-gyp -v v0.12.2
gyp ERR! not ok
npm ERR<EMAIL_ADDRESS>install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script.
npm ERR! This is most likely a problem with the rsvg package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls rsvg
npm ERR! There is likely additional logging output above.
npm ERR! System Darwin 13.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "rsvg"
npm ERR! cwd /Users/dandaka/projects/oco-web/html
npm ERR! node -v v0.10.26
npm ERR! npm -v 1.4.3
npm ERR! code ELIFECYCLE
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!

FWIW just uninstalling and reinstalling pkg-config via brew fixed this for me.
I also got an error that the post-install step did not succeed. Uninstalling and reinstalling libffi seemed to make that happy.
However I now issue #7. So.

+1

+1

+1


Double-check the GitHubIssue.closedAfter() implementation

@oheger-bosch, the first !closed condition looks wrong here:
https://github.com/oss-review-toolkit/ort/blob/df0ba6ef63ff770aea52720babfbb64cfc6af802/plugins/advisors/github/src/main/kotlin/GitHubDefects.kt#L346-L351
Mind elaborating whether this is as intended, esp. how closed issues without a close date should be handled?

To clarify, I would have more expected something like
(closed && closedAt == null) || (closedAt != null && Instant.parse(closedAt).isAfter(time))

or even just
closedAt != null && Instant.parse(closedAt).isAfter(time)

However, both make a ton of tests fail 😕

Also see the probably related https://github.com/oss-review-toolkit/ort/security/code-scanning/3152 hint.

Hm, it has been a while...
The context of this function is to find a release in which the issue has been fixed. This is not straight-forward, because there is no direct connection between issues and releases, but the association can only be done via release dates. IIRC, my original line of thoughts was that if the closed flag is false, the issue can be considered to be closed after any date (assuming a date not in the future). So, no release would be matched.
I guess, the question boils down to the exact relation between the closed and closedAt properties. Is it possible that they are not in sync? The current implementation gives priority to the closed flag and assumes that if it is false, the issue is still open and can thus not be fixed in any release. Maybe it is necessary to have a look at concrete GitHub issues to see how these properties behave in practice?

he current implementation gives priority to the closed flag and assumes that if it is false, the issue is still open and can thus not be fixed in any release.

Actually, AFAIU the current implementation does the opposite: If closed is false, then !closed is true, which means no further || condition is checked, and closedAt() returns true independently of the time. So if the issue is not closed, it is always closedAt, which IMO makes no sense either way. Or am I missing something @oheger-bosch?

The logic is indeed tricky, I am afraid.
The code tries to find a release for the passed in package to obtain a release date. Then it tries to find all issues that affect this release. These are the issues still open or the ones that have been closed after the release date. This is what the closedAfter() function checks. So, a result of true means that the issue is present for this release. Therefore, the open issues (!closed is true) should be contained in this set.

Obsolete as of https://github.com/oss-review-toolkit/ort/pull/8994.


TypeError: Path must be a string. Received undefined

What version of WebTorrent Desktop? 0.17.2
What operating system and version? Mac, Windows
From our telemetry error logs, we picked up this error. It occurred 6 times today.
Processes: window, platforms: darwin win32, versions: 0.17.1 0.17.2
TypeError: Path must be a string. Received undefined
    at assertPath (path.js:7:11)
    at Object.parse (path.js:1496:5)
    at TorrentListController.saveTorrentFileAs (.../build/renderer/controllers/torrent-list-controller.js:239:28)
    at saveTorrentFileAs (.../build/renderer/main.js:239:81)
    at dispatch (.../build/renderer/main.js:319:26)
    at dispatch (.../build/renderer/lib/dispatcher.js:18:13)
    at click (.../build/renderer/controllers/torrent-list-controller.js:227:35)
    at CallbacksRegistry.apply (/Applications/WebTorrent.app/Contents/Resources/electron.asar/common/api/callbacks-registry.js:54:39)
    at EventEmitter.<anonymous> (/Applications/WebTorrent.app/Contents/Resources/electron.asar/renderer/api/remote.js:282:21)
    at emitThree (events.js:116:13)

How to reproduce:

Disable internet connection.
Add a new torrent by magnet link.
Right click it, then Save Torrent File As...

The problem is that we are able to generate a torrent file only after we download all the metadata, which magnet links don't contain.

@Goldob Nice work tracking this down. Makes a lot of sense.


Failure to discover local Docker images

Issue Type

Bug report

Molecule and Ansible details
ansible --version
ansible 2.6.1
  config file = None
  configured module search path = [u'/Users/jpereira/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python2.7/site-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 2.7.14 (default, Mar 22 2018, 14:43:05) [GCC 4.2.1 Compatible

molecule --version
molecule, version 2.16.0

Molecule installation method (one of):

pip

Ansible installation method (one of):

brew

Desired Behavior
Trying to run and ssh into a basic role created through molecule.
Actual Behaviour (Bug report only)
TASK [Discover local Docker images] ********************************************
    failed: [localhost] (item=None) => {"censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result", "changed": false}
    fatal: [localhost]: FAILED! => {"censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result", "changed": false}

I receive this error when I input molecule converge into terminal

I can't really help you based on the information provided.  Please run molecule --debug and provide appropriate details.

You're not giving a lot of info of what you're doing specifically, but based on the title I think this might be a duplicate of #1234 . In summary: In the create.yml playbook, which is used to create an instance, the docker_image module is used. Setting pull: false would perhaps solve the issue.

As a quick note for others who may bump into this, the error is hidden by the "censored" output. In my case, it was not the pull: false issue but the fact that I was missing the pipdocker or docker-py requirement for molecule.
This was a fresh install - so I was going from memory (bad me).

docker --version
Docker version 18.09.0, build 4d60db4
molecule --version
molecule, version 2.20.0
ansible --version
ansible 2.8.0a1
config file = /etc/ansible/ansible.cfg
configured module search path = ['/Users/user_name/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python3.7/site-packages/ansible
executable location = /usr/local/bin/ansible
python version = 3.7.3 (default, Mar 27 2019, 09:23:15) [Clang 10.0.1 (clang-1<IP_ADDRESS>)]

my molecule.yml has
---
dependency:
  name: galaxy
driver:
  name: docker
lint:
  name: yamllint
platforms:
  - name: instance
    image: centos:7
    pull: False
provisioner:
  name: ansible
  lint:
    name: ansible-lint
scenario:
  name: default
verifier:
  name: testinfra
  lint:
    name: flake8

Error i get
TASK [Discover local Docker images] ********************************************
    failed: [localhost] (item=None) => {"censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result", "changed": false}
    fatal: [localhost]: FAILED! => {"censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result", "changed": false}

is there a way to override no_log:true ??

@vignajethkk, pass --debug to your molecule invocation :+1:

pip install docker


Improve colors for help text to support more terminal themes

As discussed in the discord channel https://discord.com/channels/748965956377772055/804514019301916693/853276012619890699 we should think about using different colors for the generated help text, because in some terminals like Powershell some parts of the help text are not or badly visible.
legacy powershell theme

dragonstyle from the Discord channel suggested to use some rgb colors like 5DADE2 for blue and A569BD for purple, which are more visible than the other colors in the legacy powershell theme, and I like the colors too.
blue on blue

purple on blue

But the problem with rgb colors is that they can't be mapped. Most terminals have the ability to map the default ansi colors to different colors to create better terminal themes. But this is not possible when we use rgb colors.
I would prefer to stick with the default ansi colors, but it would be cool to get some more feedback from the community on what colors we should use to support a wide range of terminal themes.

Is it possible to disable colored output?

Been looking at this. Is there appetite for making Cliffy more generally themeable? I might be able to contribute if so.

Hi @eropple, any help is welcome.
I think it's fine for me to make the colors configurable. Do you already have an idea how to implement this?

np, thx!


No sanity check was performed by LazyLLMDataset when truncation_strategy was set to 'delete'.

In LazyLLMDataset the get_item method will return None if the truncation_strategy was set to 'delete' and the sample at the target idx has a length longer than max_length.
If lazy_tokenize was not activated then before initializing the LLMDataset all the None samples were explicitly removed (in the dataset_map method). However LazyLLMDataset lacks this check since it encodes samples on the fly.
https://github.com/modelscope/swift/blob/ead35228b4d028438fcbb1619b767f3a75dfebc0/swift/llm/utils/utils.py#L250-L266

I understand what you mean. Thank you very much. 😊

Currently, a random algorithm is being used to address this issue, but there is still a small probability of encountering problems. For example, if 1% of the content does not satisfy the max_length requirement, there is a probability of $0.01^{20}$ of encountering an error. I cannot think of a better method to solve this problem.

Got you! I think the provided solution is enough for now, thanks!


DOCSP-8449: handle option and program rstobjects

This replaces the "targets" attribute on target nodes with "target_definition"
child nodes, allowing multiple target-title pairs per target.
Notable problem: ref_role target attributes are not canonical; e.g. if a writer links to --config and snooty resolves that to mongod --config, the ref_role still has target=-"-config" even though it has the appropriate fileid or url attribute.

https://jira.mongodb.org/browse/DOCSP-9270


Improve README

I was able to successfully run PPPwnUI and jailbreak my PS4 under Debian 12 using the instructions I've added to the README with this PR.
Thanks for the very cool tool @B-Dem !

PS Have you ever heard of the fully open source 8 bit console, the Uzebox?
https://uzebox.org/


Bad Sad Error When Running a Module

Description:
When I try to run any of the three modules other than the webserver module from this project blockchain-iam-group-chat I get Bad Sad Error. The ballerina-internal.log file contains the following error message when I try to run holder module with the command ballerina run target/bin/holder.jar,
[2019-11-07 14:32:50,820] SEVERE {b7a.log.crash} - ballerina.lang_annotations.___init.ballerina_lang_annotations__init_(Lorg/ballerinalang/jvm/scheduling/Strand;)Ljava/lang/Object;
java.lang.NoSuchMethodError: ballerina.lang_annotations.___init.ballerina_lang_annotations__init_(Lorg/ballerinalang/jvm/scheduling/Strand;)Ljava/lang/Object;
	at wso2.holder.___init.$moduleInit(holder:65535)
	at wso2.holder.___init.$lambda$$moduleInit$(holder)
	at org.ballerinalang.jvm.scheduling.SchedulerItem.execute(Scheduler.java:422)
	at org.ballerinalang.jvm.scheduling.Scheduler.run(Scheduler.java:201)
	at org.ballerinalang.jvm.scheduling.Scheduler.runSafely(Scheduler.java:174)
	at java.lang.Thread.run(Thread.java:748)

[2019-11-07 14:32:50,824] SEVERE {b7a.log.crash} - ballerina.lang_annotations.___init.ballerina_lang_annotations__init_(Lorg/ballerinalang/jvm/scheduling/Strand;)Ljava/lang/Object;
java.lang.NoSuchMethodError: ballerina.lang_annotations.___init.ballerina_lang_annotations__init_(Lorg/ballerinalang/jvm/scheduling/Strand;)Ljava/lang/Object;
	at wso2.holder.___init.$moduleInit(holder:65535)
	at wso2.holder.___init.$lambda$$moduleInit$(holder)
	at org.ballerinalang.jvm.scheduling.SchedulerItem.execute(Scheduler.java:422)
	at org.ballerinalang.jvm.scheduling.Scheduler.run(Scheduler.java:201)
	at org.ballerinalang.jvm.scheduling.Scheduler.runSafely(Scheduler.java:174)
	at java.lang.Thread.run(Thread.java:748)

Note that this error does not get thrown in Ballerina 1.0.2 version. All the modules successfully run with Ballerina 1.0.2 version.
Steps to reproduce:
Download and extract the attached zip file blockchain-iam-group-chat , change directory to "blockchain-iam-group-chat" folder.
Next, issue the command,
ballerina build -a --skip-tests
Then run the module holder by issuing,
ballerina run target/bin/holder.jar
Affected Versions:
Ballerina 1.0.3
OS, DB, other environment details and versions:
Ubuntu 16.04
Related Issues (optional):

Suggested Labels (optional):

Suggested Assignees (optional):

Is dependency in the toml /home/miyurud/git/ballerina-eth-utils/target/bin/utils.jar an executable created from a another ballerina module?
If so, whats the version it was compiled from?

The utils.jar file you mentioned has been built with some older version of Ballerina. This was the cause for this error. I got this issue solved by rebuilding the project ballerina-eth-utils with Ballerina 1.0.3 (this created a new utils.jar file). Now all the four modules of the above project runs successfully.


Don't lint git diff.

This actually requires work in VS Code.

@dbaeumer Is there any issue in VSCode repo that could be linked here? I'm having similar issue and it's super annoying singe it's a tooltip error that comes from above (using ES6 modules and babel).

The discussion in VS Code takes place here: https://github.com/Microsoft/vscode/issues/20859


Update virtual-machines-windows-sql-change-edition.md

Changed the reference to the media location to C:\SQLServerFull that is used in the SQL Server Azure Marketplace images.

@PhilB-MSFT : Thanks for your contribution! The author(s) have been notified to review your proposed change.

thanks @PhilB-MSFT ! #sign-off


versioneye/crawlr cannot

After checking out this repository and starting the base services I run
$ ./versioneye-update
This gives alot of output that ends with this:
Digest: sha256:d3b236e105a11ac84c6aa0c1b136b15e76fa2f22200bc96e01b6fd6012db9afa
Status: Image is up to date for reiz/rabbitmq:3.4.2
2.3.17: Pulling from versioneye/crawlj
Digest: sha256:48908f2621a33900c6352bf1fd75091ddbf21b3ca89f8c3c153c887f133d217d
Status: Image is up to date for versioneye/crawlj:2.3.17
2.3.22: Pulling from versioneye/crawlj_worker
Digest: sha256:6a85465899882cecd1d3855e50655e6e8fdd4b4993a8b7d3437ff1579e56fc80
Status: Image is up to date for versioneye/crawlj_worker:2.3.22
Pulling repository docker.io/versioneye/crawlr
Error: image versioneye/crawlr not found
2.12.16: Pulling from versioneye/rails_api
Digest: sha256:546a202cf2f8b886509839f3304c2038b9e44b9ab5f027f73d5bfcba90db7258
Status: Image is up to date for versioneye/rails_api:2.12.16
4.14.1: Pulling from versioneye/rails_app
Digest: sha256:86f07fbf7aa2e3ccb54789d11103ea4ca4c470dfc744a3da3ef8fc9e25524603
Status: Image is up to date for versioneye/rails_app:4.14.1
2.3.39: Pulling from versioneye/tasks
Digest: sha256:728a4230a476e7b1a473a0d3c3b901ad1bd9259865bf5aae3bdbfda6c0ee4032
Status: Image is up to date for versioneye/tasks:2.3.39
Looking at https://www.versioneye.com/docker/remote_images.json it seems it references a docker image that cannot be found on Docker Hub.
``
{ ...
versioneye/crawlr:1.14.4: {
container_start_opts: {
Links: [
"mongodb:db",
"elasticsearch:es",
"memcached:mc",
"rabbitmq:rm"
],
Binds: [
"/mnt/cocoapods:/mnt/cocoapods",
"/mnt/logs:/app/log"
],
RestartPolicy: {
Name: "always"
}
},
auth: true,
comments: "Introduce Supervisord"
}
...
}

Well. That's not a bug. the versioneye/crawlr repo is not yet open source, but that doesn't effect the whole system. VersionEye can totally run without that Docker container.

@reiz Is crawl_r ready to be part of docker-compose.yml nowadays?

@tomzx Yes. It's open source now and available on Docker Hub.

@reiz Should it be added to https://github.com/versioneye/ops_contrib? As of https://github.com/versioneye/ops_contrib/commit/66046c51328eebc90f4f090a59d26062af2a36dd, the docker-compose.yml makes no use of versioneye/crawl_r, hence my question.

@tomzx Good point! I just added it with this commit.


Incorrect array returned from guvectorize

The results returned from the function accelerated don't match the array values in the function. The values computed in the function are correct, however when I print them out in the caller the results are different. The signature of my function is shown here
@guvectorize(
    ["u8, u8, u8, u8, f8[:,:], f8[:,:], f8[:,:], f8[:,:], f8[:], f8[:], f8[:,:]"], "(), (), (), (), (nrow, nrow), (ncol, ncol), (nrow, ncol), (nrow, ncol), (nrow), (ndim) -> (nrow, ndim)", nopython=True,  target="cpu"
)
def numba_svd_derivative(j, nrow, ncol, ncomp, u, v, Xorig, X, d_sq, dum_var, result):

This is assigned in the caller as
res = numba_svd_derivative(j, self.nrow, self.ncol, self.projection_components, \
                                        self.u, self.v, self.Xorig, self.X, d_sq, dum_var)

I print out the result in the function and the caller as
Result from function  [[-0.05272821 -0.0053777 ]
 [-0.41784501  0.02318533]
 [ 0.44103981 -0.05173443]
 [-0.4346603   0.02583883]
 [ 0.46492926 -0.03837702]]

Result in caller  [[ 1.41032176e-08 -2.77016590e-07]
 [-5.57580582e-09  1.01076087e-06]
 [ 5.33546625e-08 -8.56518529e-07]
 [ 3.96530548e-08 -1.49919655e-06]
 [-3.67771149e-08  7.18771000e-07]]

I have verified the return types and shapes of the result array and they are both float64. Any ideas why this should happen?

@sjster thanks for reporting this on the Numba issue tracker. It is not possible to diagnose or reproduce this w/o having access to the code. Maybe you could construct a minimal reproducer which you can submit that highlights the issue? In any case, just guessing from the numbers in the result in the caller it might be that you are seeing is an uninitialized memory region, for example created with np.empty.?

I can put a self-contained repository in GitHub and give you access. Would that work?

You can access the code here https://github.com/sjster/Numba/blob/master/numba_test.py
You run it as python numba_test.py and in the output there are two relevant sections.

The output matrix under 'Result from function' (A)differs from the
output matrix under 'Result in calling function' (B).

A is correct however B is not and as you suggested probably a Numpy initialized location.  The function that is accelerated by Numba is named 'numba_svd_derivative '(A) and the calling function is named 'compute_svd_derivative' (B).
Please let me know if I can provide any further information

@sjster thanks for submitting this, it should help to figure out what is going on. Since the code seems quite involved, it may take some time to get to the bottom of this, however.

This line is likely the problem:
https://github.com/sjster/Numba/blob/master/numba_test.py#L174
it should read:
result[:, :] = res_elem1 + res_elem2

such that the value from the addition is assigned back into the memory allocated in the result array. At present result = <new memory> is probably just making the underlying pointer point to somewhere it shouldn't be, hence no update and weird values.

Thanks for the pointer and the explanation, this fixed it!

@sjster thanks for confirming, will close the issue now as I believe it is resolved. If you encounter any Numba snags in future please don't hesitate to open an issue! Thanks.


Add Explanation SQL Server on Linux to document.

Add Explanation SQL Server on Linux.
If SQL Server on Linux user follow this document,he will get error.
Error detail is written "Restore your database on Linux" in Migrate a SQL Server database from Windows to Linux using backup and restore .
I suggest modify this document.

@KatsutoshiOtogawa : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@MashaMSFT : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Hi @KatsutoshiOtogawa , thanks so much for your contribution and improving our docs! I edited your submission slightly so that it was more aligned with our style guide :) Thanks again! #sign-off
@VanMSFT fyi


Feature Request

Great Plugin, thanks btw
Would be great to have support for support multiple entrypoints:
build: {
    rollupOptions: {
      input: {
        'entry-point-a': path.resolve(__dirname, 'src/entry-point-a.tsx'),
        'entry-point-b': path.resolve(__dirname, 'src/entry-point-b.tsx'),
      },
    }
  },

maybe configurable like this
'arnoson.kirby-vite.entry' => [
    'entry-point-a' => 'entry-point-a.tsx',
    'entry-point-b' => 'entry-point-b.tsx',
]

Glad you like it!
Have you looked at the vite.config.js in the multi-page kit? I am not sure if it makes sense to add this feature to the plugin. If you configure it in the vite.config.js you have maximum flexibility. What do you think?


codeium: various minor improvements

Things done

codeium: format
codeium: correct meta.mainProgram
codeium: add versionCheckHook
vimPlugins.codeium-nvim: minor checkPhase refactoring

cc @anpin

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 360477

x86_64-linux

:white_check_mark: 4 packages built:

codeium
emacsPackages.codeium
vimPlugins.codeium-nvim
vimPluginsUpdater

aarch64-linux

:white_check_mark: 4 packages built:

codeium
emacsPackages.codeium
vimPlugins.codeium-nvim
vimPluginsUpdater

x86_64-darwin

:white_check_mark: 4 packages built:

codeium
emacsPackages.codeium
vimPlugins.codeium-nvim
vimPluginsUpdater

aarch64-darwin

:white_check_mark: 4 packages built:

codeium
emacsPackages.codeium
vimPlugins.codeium-nvim
vimPluginsUpdater


Consider providing the ability to color objects such as "InterfacePropertyDef" externally

At present, we can only use DocPrinter to decide if it should colorize or not. But when deno_doc is used as a crate, we may not always want to print an entire DocNode object. But if we don't call colors::enable, no colors will be displayed.
related: https://github.com/denoland/deno_doc/pull/38

@zhmushan that would require completely rewrite of printer so it can format any struct available in the crate. I'm happy to take contributions but it's something we won't be working on in the foreseeable future.

I'm gonna close this issue for now as there's not much interest in it and it would require significant engineering effort.


Add tests for any new Clojure 1.12 syntax/conventions

Clojure 1.12 is now in beta.
Probably best to add some explicit rewrite-clj tests for any new syntax it introduces.
Since we've had no complaints, things are probably fine, but this gives me a chance to list and understand 1.12 newnesses.
Method Values
I don't think there is anything to confuse rewrite-clj here:
Before 1.12
(map #(Long/toBinaryString %) (range 8))
;; => ("0" "1" "10" "11" "100" "101" "110" "111")

In Clojure 1.12 can be expressed as:
(map Long/toBinaryString (range 8))
;; => ("0" "1" "10" "11" "100" "101" "110" "111")

Qualified Methods
Again, nothing weird expected for rewrite-clj here:
Before 1.12
(map #(new Long %) ["1" "2"])
;; => (1 2)

;; static method
(map #(Long/decode %) ["0xf" "0xa"])
;; => (15 10)

;; instance method
(map #(.toUpperCase %) ["hey" "ho"])
;; =>  ("HEY" "HO")

New in 1.12
(map Long/new ["1" "2"])
;; => (1 2)

;; static method
(map Long/decode ["0xf" "0xa"])
;; => (15 10)

;; instance method
(map String/.toUpperCase ["hey" "ho"])
;; => ("HEY" "HO")

Param tags
I'll verify param tags, they should read like regular metadata.
I'll compare with how we currently handle ^SomeType and its long-form ^{:tag SomeType}.
;; short form
(^[double] String/valueOf 3)
;; => "3.0"

;; long form
(^{:param-tags [double]} String/valueOf 3)
;; => "3.0"

;; arity selection example
(map ^[_ _] clojure.lang.Tuple/create [1 2 3] [4 5 6])
;; => ([1 4] [2 5] [3 6])

Array class syntax
I don't expect issues here.
Did not come up with a meaningful example, but... this contrived code in 1.11
(String. ^"[B" (byte-array [72 73]))
;; => "HI"

Can be expressed in 1.12 like so:
(String. ^byte/1 (byte-array [72 73]))
;; => "HI"

Ok. Interesting. Currently barfing on the new array class syntax.
(z/of-string "(String. ^byte/1 (byte-array [72 73]))")
;; => Execution error (ExceptionInfo) at clojure.tools.reader.impl.errors/throw-ex (errors.clj:34).
;;    Invalid symbol: byte/1.

And with clojure tools reader:
(require '[clojure.tools.reader.edn :as edn])

(edn/read-string "(String. ^byte/1 (byte-array [72 73]))")
;; => Execution error (ExceptionInfo) at clojure.tools.reader.impl.errors/throw-ex (errors.clj:34).
;;    Invalid symbol: byte/1.

Options for supporting Array class tokens
Decision1: How to support new syntax

Wait for new version of tools.reader, and update our dependency
PRO: Easy for us.
CON: If user overrides tools.reader in their deps with older version rewrite-clj will fail for 1.12 array class token syntax.
CON: We have to wait for updated tools reader to parse array class syntax

Support new syntax using current version of tools.reader
PRO: Can support 1.12 array class token syntax now
PRO: If user is overriding with older version of tools.reader rewrite-clj will still be able to parse 1.12 syntax
CON: Means customizing tools.reader behaviour, but we've already done this, so there is a precedent

I'm leaning toward option 2.
Decision2: When to support new syntax

Optionally [rejected]
Allow the user to consider array class token syntax as invalid through some rewrite-clj option.
PRO: I don't really see any big pro here. Rewrite-clj wants to parse valid Clojure code, but has never explicitly been a validator of specific versions of Clojure code.
CON: Waste of effort, won't be used.

Always [chosen]
No option to consider new array class token syntax as invalid.
PRO: Simple. Matches current spirit of rewrite-clj.

Option 1.3: use edamame, already supports it ;)

Also interesting: tools.reader barfs on shorthand syntax for metadata (see TRDR-70) but rewrite-clj happens to handle it.
(edn/read-string "(^[double] String/valueOf 3)")
;; => Execution error (ExceptionInfo) at clojure.tools.reader.impl.errors/throw-ex (errors.clj:34).
;;    Metadata cannot be [double]. Metadata must be a Symbol, Keyword, String or Map.

(-> "(^[double] String/valueOf 3)"
    z/of-string
    z/string)
;; => "(^[double] String/valueOf 3)"

Option 1.3: use edamame, already supports it ;)

Ha! Of course it does!

Wait, maybe I spoke to soon. What does tools.reader currently not support? I assumed it was about the ^[bool] metadata, which edamame does already support, but nothing else new (which maybe already works with tools.reader as well).

Oh @borkdude, I think, even if half-joking, you mean have rewrite-clj read Clojure with edamame instead of tools.reader!
I initially thought you were suggesting folks use edamame instead of rewrite-clj.
I think we chatted about this idea ages ago.

The first, not the latter. It was half-joking yes.

Wait, maybe I spoke to soon. What does tools.reader currently not support? I assumed it was about the ^[bool] metadata, which edamame does already support, but nothing else new (which maybe already works with tools.reader as well).

The new array class token syntax (ex. byte/1). See https://github.com/clj-commons/rewrite-clj/issues/279#issuecomment-2176499743

Tools.reader also does not support the new ^[bool] syntax but rewrite-clj happens to support it fine.

Same in edamame, but I could/should probably fix that

It looks like rewrite-clj will need changes for vector metadata after all.
Currently we have:
(def n (p/parse-string "^[double] foo"))

(meta (node/sexpr n))
;; => {[double] true}

So vector metadata ^[double] is reader sugar that should always be returned as ^{:param-tags [double]} from sexpr. But ^[double] should always, of course, be preserved in nodes for rewrite-clj rewriting.


goworld use pktconn branch error

the branch use pktconn can't  build
plz fix it

resolved by https://github.com/xiaonanln/goworld/pull/89


How can we help?
I would like someone else to build the manifest.
Please read and ensure the following

[X] The installer meets the above requirements

Please provide the following information
Download Page Url: https://www.cantab.net/users/john.wiseman/Documents/QtTermTCP.html
Publisher: John Wiseman
Package Name: QtTermTCP
Description: Remotely access a BPQ32 node either over a local LAN or the Internet.
Package Version: latest
Installer URL: http://www.cantab.net/users/john.wiseman/Downloads/QtTermTCP64.zip

hi, what is the latest version

To be honest, I am not sure. :-) It is not written anywhere on the website and I am currently not on a Windows machine to run the application and check its version.

[Policy] Zip Binary
@AsciiWolf, @Jvr2022 - This package is released as compressed zip binaries archive instead of an installer wizard. There are many Qt Framework related *.dll files in the archive.
So we are unable to submit this package to the repository.


chore: release 0.3.1

:robot: I have created a release *beep* *boop*
0.3.1 (2021-12-14)
Bug Fixes

dependencies: generify runtime bundler dependency (d0bd8ad)
dependencies: update thor to v1.1.0 (2598318)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/WFCD/warframe-ruby/releases/tag/v0.3.1 :sunflower:


Hop server enhancement #4569

add command line options for (host, port, shutdownport, proxyhost, proxyport,ssl)
support for override properties on the command line
add shutdown listener to web server
add shutdown servlet
add RemoteHopServer class to interact with a Hop server and clean HopServerMeta
remove setup hop server syntax by hostname and port
add HopServerTerminate extension point after shutdown
all HopServerXXX extension points now provide a HopServer object, rather than a HopServer/WebServer mix
add command line options --help and --version
set abbreviateSynopsis and usageHelpAutoWidth to command line

Please add a meaningful description for your change here

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Run mvn clean install apache-rat:check to make sure basic checks pass. A more thorough check will be performed on your pull request automatically.
[ ] If you have a group of commits related to the same change, please squash your commits into one and force push your branch using git rebase -i.
[ ] Mention the appropriate issue in your description (for example: addresses #123), if applicable.

To make clear that you license your contribution under the Apache License Version 2.0, January 2004
you have to acknowledge this by using the following check-box.

[x] I hereby declare this contribution to be licensed under the Apache License Version 2.0, January 2004
[ ] In any other case, please file an Apache Individual Contributor License Agreement.

port appears as sub-option of password, host appears as sub-option of help:
  -h, --help              Displays this help message and quits.
      --host=<host>       The server host name or IP address to use.

  -p, --password=<password>
                          The server password. Required for administrative operations only, not for starting the server.
      --port=<port>       The server port to use.

tested:

additional options for host, port, username, password,
-v and -h options
shutdown/kill only works when correct authentication is provided
--ssl options doesn't seem to work

For option grouping, this is the behavior of Picoli if we do not define a unique letter for an option.


fix(CD): deploy with correct images

[x] broken pictures' link
[x] broken CI

If there has one proper regex, we could fix this issue more easily.


two questions abount the denoise_process

Some questions about the code

init_latents = self.vae.encode(image).latent_dist.sample(generator) .  After doing the encoder step, i see that no the normalize step 【 init_latents = init_latents * 0.18215  , but you do this  in the decoder step [latents = 1 / 0.18215 * latents]
about adding noise into the init_latents to get x_t from x_0, i see that "timestep" is none in your code when strength<1, which means [scheduler.add_noise()] does not work, so i cant't understand that why  doing like this.

init_latents func came from talesofai, the scale step was skiped, after that, the author did scale by himself ref codes. I thought this is only a scale step but not encoder step.
timestep codes was adapted from diffusers img2img by me, I deprecated it because it was not good enough so timestep is None. The add noise was made by hand. scheduler.add_noise() is also a scale procedure if you check the source codes.

correct me if I'm wrong 😄

thanks for your feedback. For the question 2, you means that adding noise to the init_latent by hand using "latents[:, :, i, :, :] = init_latents * init_alpha + latents[:, :, i, :, :] * (1 - init_alpha)" , which somewhat equivalent to scheduler.add_noise().

yep


[NFC] Make cuda links parameterizable by system parameter

This will make it easier to support other platforms downstream. I hope that such code should not complicate the support of Triton itself.

It's fine to me, but supported = {"Linux": "linux"} is just linux, right? How exactly should we support other systems?

It's fine to me, but supported = {"Linux": "linux"} is just linux, right? How exactly should we support other systems?

Hi @Jokeren, thanks for the review!
Yes, it's just Linux. Downstream for example, can extend this dict like:  supported = {"Linux": "linux", "Windows": "win"}. As we do in https://github.com/intel/intel-xpu-backend-for-triton/pull/2478/files#diff-eb8b42d9346d0a5d371facf21a8bfa2d16fb49e213ae7c21f03863accebe0fcfR324.


Add Program for If Else Statement Program

Refer below commits:

Commit 1
Commit 2
Commit 3

Can u please review and merge it. https://github.com/sagar-jadhav/go-examples/pull/77


issue-82: register entity lists

#82: In the IntentDeterminationEngine.register_entity(...) of adapt/engine.py registering intent in for loops in the user's code does not look pythonic and interacting that way with the API does not look refined to the end user.
This minor change internalizes the for loop in a very simple way.  (also checks the alias_of only once, not in the loop.)
run_tests.py exits with all 48 tests passing. examples/single_intent_parser_entity_list.py contains a modified version of the original example.
I have read the contributing guidelines as well as CoC. I have signed the CLA.

@OAkyildiz did you see @clusterfudge's last comment there?

@forslund,
Sorry, I did. But, there are too many things on my plate as of now. (In fact, there are multiple plates in front of me, figuratively speaking)
@clusterfudge, now that you mention buffers... I see where things might go wrong. Could you point me at the similar test cases for the singular version?


Windows build is not working

I have the project structure as in the figure

and i have tried to walk through the tutorial  to create .exe app. and i have got the following .spec file:
`# -- mode: python --
from kivy.deps import glew
block_cipher = None
a = Analysis(['C:\Users\Mohamad\PycharmProjects\offline_file_archiever\app\main.py'],
pathex=['C:\Users\Mohamad\PycharmProjects\offline_file_archiever\build'],
binaries=None,
datas=None,
hiddenimports=['sqlite3'],
runtime_hooks=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
exclude_binaries=True,
name='sample_build',
debug=False,
strip=False,
upx=True,
console=True )
coll = COLLECT(exe,Tree('C:/Users/Mohamad/PycharmProjects/offline_file_archiever/app/gui'),
a.binaries,
a.zipfiles,
a.datas,
*[Tree(p) for p in glew.dep_bins],
strip=False,
upx=True,
name='sample_build')
`
However, after navigating to the .exe file and launch it it just open and close,, i can barely catch what is the error happening.
Any help please.

Check the 3. step from https://kivy.org/docs/guide/packaging-windows.html#packaging-a-simple-app, the sdl2 import and collect is missing in your spec.
If you need further help, please use the support channels: https://github.com/kivy/kivy#support.


Jiotv+ is awesome

The new addon is awesome. I know since it’s beta version, there are lots of bugs probably. The cinema has a working good, I checked most of the movies in my pc and all were working smooth with toggle available in English and Hindi except one which is awesome. Unfortunately, the live tv section was not working, I guess It is still under construction. Hope to see the final version whenever u feel to release it.  And let me know when the time they beta or final is out. I would be more than happy to test it out.

The JioCinema works without VPN as well, good work.

Thanks for your review. Live tv is still in progress as you told. Not sure about final release but it'll be available after i make live tv stable without any lag and with as max quality as possible.
https://github.com/botallen/repository.botallen/issues/32#issuecomment-623251622
Refer to the note in this comment.


Testing env

My office still use node0.12. I'm trying to force upgrade but it's not so fast. Also until rollup itself supports 0.12 any plugins and adapters should follow the same. Usually our travis conf looks like this
# sudo is not required since jan 2015
language: node_js
node_js:
  - "0.12"
  - "4"
  - "6"
env:
  global:
    - BUILD_TIMEOUT=10000
# node_js env knows what to do
# install: npm install
# script: npm run ci

I will look into this. First I need to push a quick fix here.

@TrySound Travis 0.12 is now supported. Close this?

Add badge please
[![Build Status](https://travis-ci.org/Kflash/karma-rollup-plugin.svg)](https://travis-ci.org/Kflash/karma-rollup-plugin)

Oops. It's added :)

Thanks


Thermostat web UI should expose fan control, if applicable.

Most thermostats (citation-needed) allow a user to control the fan by setting it to 'auto' or 'on'. It would be nice if the home-assistant web UI exposed this control to the user if the underlying thermostat component supports it.
Thoughts? Any objections to this?

@kk7ds

Yep, I want this too. Note that a lot of newer thermostats also support a "circulate" or "refresh" fan mode, which should be included (or let the thermostat module expose the list of fan modes).

Sounds good. I just received a Heatpump IR controller for zwave, and there
is even more options like fan speed, swing control, powerful. It uses zwave
thermostat_command_class. So I was thinking as you could it be possible to
implement more options in the thermostat component rather than make a new
component.
17. feb. 2016 21:39 skrev "Clif Houck"<EMAIL_ADDRESS>
Most thermostats (citation-needed) allow a user to control the fan by
setting it to 'auto' or 'on'. It would be nice if the home-assistant web UI
exposed this control to the user if the underlying thermostat component
supports it.
Thoughts? Any objections to this?
—
Reply to this email directly or view it on GitHub
https://github.com/balloob/home-assistant/issues/1306.

Yes, for mysensors, I'd like something close to "Min", "Normal", "Max", "Auto". I like the idea of having a list of fan modes that each component that inherits from the thermostat platform can specify and then expose that list in the frontend. Different components will probably need different modes to comply with their devices or 3rd party libraries.

That sounds like a good idea. Would be something like this?

property fan_mode
property possible_fan_modes
method set_fan_mode(fan_mode)

For the media player we have a solution in place to expose what kind of features the media player supports. I wonder if we should go that route for the thermostat too.

Is anyone working on this or should I give it a go?

Implemented into the HVAC component


FIX BUG-60182: Add x1.32xlarge AWS EC2 instance type to CloudBreak

For high memory uses such as Spark & LLAP
https://aws.amazon.com/ec2/instance-types/x1/

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Can one of the admins verify this patch?

For some reason that web page says the storage is 1990, but I've verified it's 1920GB as seen in the commit.


ScriptEditor: Ctrl+left mouse click on a filepath surrounded by single quotes doesn't open the resource

Godot version:
eceba5aa6a36521c878cf976845123e820d27161
OS/device including version:
Windows 10 x64
Issue description:
In the editor, when CTRL+Left mouse click on a resource path surrounded by simple quotes, the click doesn't open the resource. The same resource path surrounded by double quotes does open the resource.
Steps to reproduce:

Open the script editor in a new project.
Write 'res://icon.png' and try to CTRL+Left mouse click on it. Note that the file doesn't open in the inspector.
Write on a new line "res://icon.png" and try to CTRL+Left mouse click on it. Note that the file opens in the inspector.

Minimal reproduction project:
CTRL_LEFT_CLICK_SINGLEQUOTE.zip

I think I saw this issue posted already but cant find it from py phone rn


Add support for preloading data at creation time (on subscribe?)

Maybe do this via a new model key named initialLoaders?


Add std.range.Option

Modeled after Scala's scala.Option type. It's been discussed on the forums before, I found at least this thread.
(I'll move it to std.experimental.typecons once #2945 is merged, as it establishes the module)

I also have these:
Option!T left(T, U)(auto ref Algebraic!(T, U) algebraic)
{
	if(auto p = algebraic.peek!T)
		return some(*p);
	else
		return option(none);
}

Option!T right(T, U)(auto ref Algebraic!(T, U) algebraic)
{
	if(auto p = algebraic.peek!U)
		return some(*p);
	else
		return option(none);
}

Not sure if I should include them in this PR.

Fixed linker error and added Option.orElse.

Option!T now works for const and immutable types T (including as a range), with the limitation that it's only reassignable to none, it cannot be assigned to another Option!T.
const Option!T and immutable Option!T are usable to some extent as well, but they're not ranges as ranges need to be poppable.

Is there any reason you don't specialize Option on types that have a null value and use null in place of defined?

@MetaLang, this way supports some(null), i.e. a non-empty null value, just like the Scala type. Option replaces null used to mean absence of an optional value, which doesn't cover every use of null.

What is the relationship between this and only? At first sight it looks like a non-empty Option is only(x) and an empty Option is only(T.init).drop. If that's the case, we'd save a lot of trouble.

Most of the work here is not duplicated by only. Option!T makes an effort to properly support any type of T, including non-mutable, non-copyable, non-default-constructable and nested types. Also, as Option!T is named and suitable for long-living variables (globals, TLS, member fields etc.), it destroys the held value when going non-empty → empty. Idioms for working with optional values like getOrElse and frontOption are also added and tested.
I think the best way would be to make unary only return Option!T. It is important that the type is named so it can be defined and initialized separately (typically in a [module] constructor) and show up in documentation when used as a return type. only(a) would be the same as some(a), so the latter could be removed (and then it might make sense to move Option to std.range).

Fixed compilation failure with latest DMD. Option!T is now only sliceable when T is copyable.

Added Option!V lookup(T : V[K], V, K)(T assocArray, auto ref K key) as another fundamental artifact for working with option types. The name isn't particularly good, suggestions welcome.

I'm not convinced that Option should itself be a range. It makes code less clear that it's dealing with Options, and moreover front disguises the escape of a non-existent value. I know empty should be checked first for ranges, but when reading someone else's code you don't know if the range is just assumed to be non-empty.
I would much prefer all access to the value is null/assert-safe or uses some clear method like assumeNonEmpty. Option can still have a range method, but common things like map, filter probably should be added as Option methods.

Added Option!V lookup(T : V[K], V, K)(T assocArray, auto ref K key)

I think a version that returns an Option!(V*) is needed to replace in. Also, I don't think all functions producing an option need to go in std.typecons, lookup should go in std.array IMO.

I'm not convinced that Option should itself be a range. It makes code less clear that it's dealing with Options, and moreover front disguises the escape of a non-existent value. I know empty should be checked first for ranges, but when reading someone else's code you don't know if the range is just assumed to be non-empty.

Range code that assumes non-empty is wrong. Don't use Option.front directly either, it's just for passing to range algorithms.
Option being a range is the whole point. It's the same in Scala where it has been very successful.

I think a version that returns an Option!(V*) is needed to replace in. Also, I don't think all functions producing an option need to go in std.typecons, lookup should go in std.array IMO.

How would Option!(V*) be used? If the contained pointer is nullable then the whole exercise is meaningless. The current lookup replaces in.

How would Option!(V*) be used? If the contained pointer is nullable then the whole exercise is meaningless. The current lookup replaces in.

How do you modify *(k in aa) with your lookup? I'm suggesting to wrap option(k in aa). If the result is not empty, the pointer, though nullable, would never be null unless modified by the caller. It could even return an Option of a wrapped pointer that can't be reassigned, guaranteeing the pointer is never null.

Most of the work here is not duplicated by only.

After making a pass through the definition and the documentation, I'm not convinced.

Option!T makes an effort to properly support any type of T, including non-mutable, non-copyable, non-default-constructable and nested types.

That seems to mean only has bugs. Could those be fixed?

Also, as Option!T is named and suitable for long-living variables (globals, TLS, member fields etc.), it destroys the held value when going non-empty → empty. Idioms for working with optional values such as getOrElse and frontOption are also added and tested.

Awesome. Again these seem bugs or shortcomings of only. Could we improve only to do that?

I think the best way would be to make unary only return Option!T.

This is probably the right way to go, and by improving the existing definitions, not by adding a new name.

It is important that the type is named so it can be defined and initialized separately (typically in a [module] constructor) and show up in documentation when used as a return type. only(a) would be the same as some(a), so the latter could be removed (and then it might make sense to move Option to std.range).

If only uses Voldemort, I'm okay with it receiving a legit name.
But please don't make the mistake of defining a almost-the-same-but-with-subtle-difference artifact just because you don't want to mess with the existing one.

Yeah, you're right, this is too similar to unary only to separate them. I'll rework the PR on top of std.range and see how it turns out.

I noticed that std.range.takeOne is essentially frontOption, although we have no equivalent of backOption. From a clean slate I would have preferred [front|back]Option, but in the name of consistency, maybe takeOne[Back] wouldn't be the end of the world. This assumes that [front|backOption] carry their own weight anyway; it's probably better to keep the initial PR minimal and submit them as follow-ups, I've just been using this PR to brainstorm ideas about option types in D.

@ntrel, the current lookup does prevent double lookup but it doesn't provide the by-ref advantage of in. I was under the impression that option(v) dereferenced pointers but it doesn't and that's probably a good thing. Maybe lookup should return Option!(V*) for V[K].

Moved to std.range
Removed some and changed unary std.range.only to return Option!T
Fixed @andralex's concerns about wasteful moves and swaps (and added space after if where it was missing)

About takeOne - it's a higher order range that supports accessing the front of the underlying range by reference, so it's not compatible with frontOption... it's an interesting difference.

About lookup - wrapping option(key in aa) is not useful, just write that as-is. What lookup provides is:
auto aa = ["foo": 42];
assert(aa.lookup("foo").equal(only(42)));
// instead of
assert(option("foo" in aa).map!(p => *p).equal(only(42)));

This is the same inconvenience faced by any function that returns a null pointer to mean absence of value, such as VariantN.peek, so maybe a general solution for T* → Option!T is better.

No-one has said anything about it, but this PR still includes the arguably cargo-culty NoneType and none for explicit emptying. An alternative would be to just use default-initialization for empty construction, and popFront for emptying post-construction. I guess one issue is that popFront should not be called on an empty range while assigning to none is currently valid regardless of emptiness. Any thoughts?

I'm aware of the build failure, I'll investigate.

NoneType

I suppose none could be made a property so it doesn't have a named type.

maybe a general solution for T* → Option!T is better

Yes, we could have:
Option!T deref(T)(T*);
Option!T deref(T)(Option!(T*));

(I still think lookup should be in std.array, not sure what others think. Hopefully returning Option will become widespread across Phobos).

Alright, here are the real differences between Option!T and OnlyResult!(T, 1):

Option!T gives access to its held value by reference, which has many subtle implications, including supporting non-copyable types. OnlyResult!(T, n) gives access only by value, which is by design (the idea was to prevent sort(only(3, 1, 2)) from compiling because it does not work as expected).
Because OnlyResult!(T, 1) also gives access by value, it can store the held value as Unqual!T while still being a range of T - but this relies on is(Unqual!T : T), which can be false for user-defined types; e.g.immutable(S) where struct S { int* p; }. This seems like a design flaw.

Code in std.path relies on OnlyResult!(immutable char, 1) being reassignable (to itself), while Option!(immutable char) isn't. So far I haven't been able to reconcile this difference, but I'll give it another go later.

Because OnlyResult!(T, 1) also gives access by value, it can store the held value as Unqual!T while still being a range of T - but this relies on is(Unqual!T : T), which can be false for user-defined types; e.g.immutable(S) where struct S { int* p; }.

BTW I'm working on Rebindable!(inout S) which could solve these kind of problems. I think it's @safe and will hopefully submit it to Phobos. See https://github.com/ntrel/stuff/blob/master/rebindstruct.d.

Merge failed - needs rebase :)

rebase pls

wilzbach commented on Apr 27
Merge failed - needs rebase :)
rebase pls

Are u still alive @JakobOvrum? ;-)
Should we introduce a new category of "orphaned" PRs that are just lacking minor fixes and thus can be adopted by anyone?

I see one way to push this forward: add a none function right after the existing only such that none!int returns an Only!int with nothing in it. This would cover the vast majority of uses of this PR.

No activity from PR author in nine months. Closing.

Convert this to an enhancement request?

@andralex https://issues.dlang.org/show_bug.cgi?id=12679

@andralex

I see one way to push this forward: add a none function right after the existing only such that none!int returns an Only!int with nothing in it. This would cover the vast majority of uses of this PR.

Could you imagine renaming Only!T to one of Option!T/Optional!T/Maybe!T in the long term? It makes sense to go this way on a technical level, but seeing a declaration void foo(Only!T t), one can hardly guess that this actually means that t is optional.

Hmmm... neither name is very descriptive. The type really means "ZeroOrMore" whereas "Only" suggests exactly one and "Option" and "Optional" imply "zero or one". "Maybe" is arguably better. "Some" would be great but evokes "one or more" and promises to be a great source of confusion with Haskell's some. The same link suggests that "many" would be "zero or more".
"Bag" is a term I'd like - you have a "bag" of things, which may be empty, contain one item, or more items.
It's also a bummer that only!int is really zero ints...

Oh, I didn't realize that only can take multiple values! Then it doesn't really make sense of course. alias Option(T) = OnlyResult!(T, 1); could in theory work, although a proper type would be better in terms of documentation and generic code.


forge fails to process entities

Describe the problem
The files load, then they disappear and reload, and repeat, then it just gives up eventually.
Container definition
version: "3"

services:
  mc:
    image: itzg/minecraft-server
    ports:
      - 25565:25565
    environment:
      TYPE: "FORGE"
      EULA: "TRUE"
    restart: unless-stopped
    volumes:
      # attach a directory relative to the directory containing this compose file
      - ./minecraft-data:/data

Container logs
Adding input to inheritance map
Processing entries
Can't Find Class: it/unimi/dsi/fastutil/ints/IntIterator
Can't Find Class: com/mojang/serialization/codecs/RecordCodecBuilder$Instance
Can't Find Class: javax/annotation/ParametersAreNonnullByDefault
Can't Find Class: com/google/common/collect/ImmutableMap$Builder
Can't Find Class: com/mojang/serialization/codecs/RecordCodecBuilder
Can't Find Class: javax/annotation/Nonnull
Can't Find Class: com/google/common/collect/ImmutableMap
Can't Find Class: com/mojang/datafixers/Products$P4
Can't Find Class: com/mojang/datafixers/Products$P8
Can't Find Class: com/mojang/datafixers/Products
Can't Find Class: io/netty/buffer/ByteBuf
Can't Find Class: com/mojang/serialization/Codec
Can't Find Class: javax/annotation/meta/TypeQualifierDefault
Can't Find Class: com/google/common/collect/Immuta

Please try the following:

Temporarily mount a new, empty data directory

    volumes:
      - ./minecraft-data-2:/data

Remove the restart policy setting until the configuration is stable
Apply the changes with docker compose up -d

Please provide the full container logs if the problem persists.

im having a hard time giving you the entire logs.... they disappear and re-appear and repeat. they eventually just do not come back and so I am struggling to "catch" it before it disappears.... when I do catch it and open it they are incomplete..
but the ultimate result was the same as before. I made the parent directory chmod 777

I don't understand how the logs disappear and re-appear? It sounds like you haven't correctly applied the changes I requested and I can't help further until you do. Before making those changes perhaps make sure to run docker compose down and stop any other related containers you have left over.

Yeah they appear and dissapear. So they are there once second and then they are gone the next.
Here is docker-compose logs
mc_1  | [init] Changing ownership of /data to 1000 ...
mc_1  | [init] Running as uid=1000 gid=1000 with /data as 'drwxr-xr-x 2 1000 1000 4096 Dec 21 18:58 /data'
mc_1  | [init] Resolving type given FORGE
mc_1  | [mc-image-helper] 18:58:19.798 INFO  : Downloading Forge installer 49.0.10 for Minecraft 1.20.4
mc_1  | [mc-image-helper] 18:58:20.297 INFO  : Running Forge installer. This might take a while...
mc_1  | [mc-image-helper] 18:58:41.787 ERROR : 'install-forge' command failed. Version is 1.37.3
mc_1  | me.itzg.helpers.errors.GenericException: Unable to locate forge server jar
mc_1  | 	at me.itzg.helpers.forge.ForgeInstaller.install(ForgeInstaller.java:215)
mc_1  | 	at me.itzg.helpers.forge.ForgeInstaller.install(ForgeInstaller.java:88)
mc_1  | 	at me.itzg.helpers.forge.InstallForgeCommand.call(InstallForgeCommand.java:103)
mc_1  | 	at me.itzg.helpers.forge.InstallForgeCommand.call(InstallForgeCommand.java:19)
mc_1  | 	at picocli.CommandLine.executeUserObject(CommandLine.java:2041)
mc_1  | 	at picocli.CommandLine.access$1500(CommandLine.java:148)
mc_1  | 	at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2461)
mc_1  | 	at picocli.CommandLine$RunLast.handle(CommandLine.java:2453)
mc_1  | 	at picocli.CommandLine$RunLast.handle(CommandLine.java:2415)
mc_1  | 	at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2273)
mc_1  | 	at picocli.CommandLine$RunLast.execute(CommandLine.java:2417)
mc_1  | 	at picocli.CommandLine.execute(CommandLine.java:2170)
mc_1  | 	at me.itzg.helpers.McImageHelper.main(McImageHelper.java:157)
mc_1  | [init] ERROR failed to install Forge

here is the docker-compose.yml file
version: "3"

services:
  mc:
    image: itzg/minecraft-server
    ports:
      - 25565:25565
    environment:
      TYPE: "FORGE"
      EULA: "TRUE"
    volumes:
      - ./minecraft-data-2:/data

That can be fixed by pulling the latest image. Run:
docker compose pull

and then start with
docker compose up -d

Thank you so much! YOU THE MAN!


Add management/activation of Privileged Identity Management controlled roles

Is your feature request related to a problem? Please describe.
Having to go via the portal to activate role assignments via PIM is inconvenient. Adding in PIM functionality to the CLI interface would be very useful.
Describe the solution you'd like
An expansion of the az ad command to include PIM management, as is available via the Powershell interface.
Describe alternatives you've considered
I've tried doing this via powershell, but working on an M1 Mac this is shaky at best, and also not an interface I am familiar with. Ideally I wouldn't need to jump between terminal based interfaces depending on what set of features I need.

Duplicate of #13064
As stated in https://github.com/Azure/azure-cli/issues/22580#issuecomment-1150686865,

Azure CLI's az ad command group is only designed to facilitate interacting with Azure resources. It is NOT designed to be a fully-fledged client for managing Microsoft Graph. Therefore, only a limited subset of Microsoft Graph API is supported natively by Azure CLI.

The equivalent of Azure CLI is Az PowerShell module from Azure PowerShell. AzureAD and AzureADPreview modules are from Azure Active Directory PowerShell maintained by AAD team.
Also, as stated in https://github.com/Azure/azure-cli/issues/12946#issuecomment-737196942,
AAD team is currently developing their own CLI tool Microsoft Graph CLI which is designed to be an equivalent of AzureAD and AzureADPreview modules. You may try it instead.


Fails to insert jsonb values in Postgres

We have a table with a field of type jsonb, which becomes string in the generated type, but it doesn't seem to work when inserting a string with the json format, the exception I get is:
Npgsql.PostgresException (0x80004005): 42804: column "test" is of type jsonb but expression is of type text
Exception data:
    Severity: ERROR
    SqlState: 42804
    MessageText: column "test" is of type jsonb but expression is of type text
    Hint: You will need to rewrite or cast the expression.
    Position: 97
    File: parse_target.c
    Line: 588
    Routine: transformAssignedExpr

when trying to insert """{"publisher": "test"}""".
Would you be able to help with this?

What should happen during the insert for the jsonb field?
Does the string need to be transformed before being inserted?

There are two ways I can think of to do this.
Option 1 would involve creating many provider specific versions of SqlHydra.Query. I would prefer to avoid this option.
Option 2 would involve using reflection to set provider specific type mapping enum:

Generated table record properties could be decorated with a metadata attribute that preserves their mapped type as a string: Ex: `[<Parameter("NpgsqlDbType.Jsonb")>].
BuildCommand would use some reflection to check for existence of attribute, and if found, use reflection to assign parameter type.

How do I run the tests for postgres? Specifically Tests/Npgsql.

The most simple way if you are using vscode is to dotnet run the Tests project which will run all tests.
If you want to only run the postgres tests then you will need to change the [<Tests>] attribute to [<FTests>] for the files that you want to focus.

I started looking into this issue, and while I am able to generate the attribute as you suggested, I am not sure I understand how to access this value inside BuildCommand and parse it into the actual value e.g. NpgsqlDbType.Jsonb since we are using string inside the attribute.
Can we have some kind of DU as the attribute value? Like
type DbColumnType =
    | Npgsql of NpgsqlDbType
    | Mssql of ....

Although this would have to be inside Domain.fs as part of the Column, and I assume we don't want to introduce any dependencies on the database type inside the domain.

The technique would be the same one used by SQLProvider to do load provider-specific objects via reflection.

first they create a new parameter object. (We already have one, so no need to create one via Activator)
But we would need the dbTypeSetter to set the NpgsqlDbType.
Since it’s an enum value, we might need to store the value as an int instead of a string.

Ok, I got the idea, and all the reflection business seems to work. The problem I am having now is how to match the field attributes to the corresponding parameter in compiledQuery.NamedBindings inside BuildCommand, because all the information about the record fields inside Query is lost and all the parameters are called @p0 etc. Do you have any on how to do it?

I am not sure we can rely on the order of the parameters since NamedBindings in the compiled query is of type Dictionary where the order is not guaranteed, right? It would be great if instead of @p0 we could get the actual column names from SqlKata, but it doesn't seem like it is going to be implemented, though the issue for named parameters exists and is closed.

Oh, that's genius 😄 I almost made it work with this new suggestion ... will need to clean up the mess and open a PR in the beginning of the week. Yeah, I am enjoying the process, thanks for the help!


[Proposal] Call the bind and unbind method in view hooks instead of route hooks/events

I also wanted to suggest, doing the binding and unbinding as a part of the 'didInsertElement' hook and the 'willDestroyElement' hook of Ember.view.
Reasoning:
Mousetrap relies on capturing a DOM element and acting on it. Having the bindings on activate of a route might cause this to fail sometimes in case the DOM has not been rendered yet.
Users can be suggested to override the Ember.view class in their applications main view.
The 'didInsertElement' of the applications main view will be called after all the other views have been rendered.
Let me know what you feel about that. If you agree, I can send a PR with the required changes

Sorry for the late reply.
A view is lack of ability to fire an action (on its own), so we used a router now. For example:
FooRoute = Ember.Route.extend
  actions:
    awesomeAction: ->
     # some goodness

  shortcuts:
    awesomeShortcut: mousetrap 'a', ->
      @send 'awesomeAction'

But I think your proposal is also proper in some situations (e.g. handler does DOM operation mainly).
I think it's better to make different mixin, not to replace MousetrapRoute. What do you think?

Sounds good to me.
Here is the PR. Please take a look and merge : https://github.com/idobata/ember-mousetrap/pull/6


Does Step-by-step-report not support WebDriver helper?

https://github.com/Codeception/CodeceptJS/blob/21ea497184a648b1820d8ef2f818481e5abb2d00/lib/plugin/stepByStepReport.js#L12-L18
Why WebDriver helper is not there?

https://github.com/Codeception/CodeceptJS/pull/1482