Tooltips not puplating

referring to #55 it's still not working in my environment:
Name                    Version                   Build  Channel
bokeh                     1.0.0                    py36_0
jupyterlab                0.35.2                   py36_0
jupyterlab_server         0.2.0                    py36_0
when I reinstall labextension by
jupyter labextension install jupyterlab_bokeh
jupyterlab_bokeh-0.6.3.tgz
Node v8.12.0
I saw som warnings:
warning css-loader > cssnano > autoprefixer ><EMAIL_ADDRESS>Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.
warning css-loader > cssnano > postcss-merge-rules ><EMAIL_ADDRESS>Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.
warning css-loader > cssnano > postcss-merge-rules > caniuse-api ><EMAIL_ADDRESS>Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.
[3/5] Fetching packages...
info<EMAIL_ADDRESS>The platform "linux" is incompatible with this module.
info<EMAIL_ADDRESS>is an optional dependency and failed compatibility check. Excluding it from installation.
[4/5] Linking dependencies...
warning "@jupyterlab/vdom-extension ><EMAIL_ADDRESS>has incorrect peer dependency<EMAIL_ADDRESS>[5/5] Building fresh packages...
success Saved lockfile.
warning Your current version of Yarn is out of date. The latest version is "1.10.1", while you're on "1.9.4".
Done in 58.74s.

I use actual chrome.
Jupyterlab runs in a docker container.
Ther is one warning regarding cors:
Access to Font at 'about:blank' from origin 'http://localhost:8899' has been blocked by CORS policy: Invalid response. Origin 'http://localhost:8899' is therefore not allowed access.
When I execute the cell containing graphic with tooltip output - no error, otput see below:
Bokeh: injecting script tag for BokehJS library:  https://cdn.pydata.org/bokeh/release/bokeh-1.0.0.min.js
VM845:211 Bokeh: injecting script tag for BokehJS library:  https://cdn.pydata.org/bokeh/release/bokeh-widgets-1.0.0.min.js
VM845:211 Bokeh: injecting script tag for BokehJS library:  https://cdn.pydata.org/bokeh/release/bokeh-tables-1.0.0.min.js
VM845:211 Bokeh: injecting script tag for BokehJS library:  https://cdn.pydata.org/bokeh/release/bokeh-gl-1.0.0.min.js
VM841 bokeh-1.0.0.min.js:31 [bokeh] document idle at 39 ms
VM845:204 Bokeh: all BokehJS libraries loaded
VM845:264 Bokeh: BokehJS plotting callback run at Sat Oct 27 2018 21:14:14 GMT+0200 (Mitteleuropäische Sommerzeit)
bokeh-1.0.0.min.js:31 [bokeh] setting log level to: 'info'
VM845:231 Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-1.0.0.min.css
VM845:233 Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-widgets-1.0.0.min.css
VM845:235 Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-tables-1.0.0.min.css
VM845:181 Bokeh: all callbacks have finished

This is working for me with Bokeh 1.2 and extension 1.0.0next, so closing. I will note the value text is black, so if you are using a "dark" theme or something, that might explain things. I think for now you would have to target CSS to change bokeh built-in text props, but could use a custom tooltip to set whatever CSS/HTML you need.


getAriaValueText on Slider not working - reappeared

getAriaValueText and getAriaLabel not working for the Slider component period.
EDIT:
if i want to return a custom label I do smth like:
getAriaLabel={value => value + ' days'}
getAriaValueText={value => value + ' days'}

But the widget swill returns "value" instead of "value days"
Not working even on demo page here:
https://material-ui.com/components/slider/
Using Chrome Version 83.0.4103.106 (Official Build) (64-bit)

@anking Do you have more context? Could you follow our issue template?

@oliviertassinari I just added some details

👋 Thanks for using Material-UI!
We use GitHub issues exclusively as a bug and feature requests tracker, however,
this issue appears to be a support request.
For support, please check out https://material-ui.com/getting-started/support/. Thanks!
If you have a question on StackOverflow, you are welcome to link to it here, it might help others.
If your issue is subsequently confirmed as a bug,  and the report follows the issue template, it can be reopened.

@anking It's working with prop valueLabelFormat this is not mentioned in docs but it is the prop that uses to display custom label for the values.
https://github.com/mui-org/material-ui/blob/c191471a20315cae4006c1e4d3d51db5e49b5fee/packages/material-ui/src/Slider/Slider.js#L741
Live testing can be done here https://codesandbox.io/s/91yti?file=/demo.js:798-814

@itsmebins
Thanks !
that worked correctly for me .
I'm Using that prop to ReFormat My text in Lable:
valueLabelFormat={(value) =>             Intl.NumberFormat({               maximumSignificantDigits: 3,             }).format(value)           }


PHP minimum version to 7.3; PSR12 styling

Here are the corrections to composer.json we agreed about. I've also applied the code styles.
I also noticed the endpoint classes had incomplete docblocks. Since I don't like all those squiggles PhpStorm puts up, I usually autocomplete them. Do you mind if I correct those docblocks in this PR?

There's a build error because composer.lock is not up-to-date. I don't think composer.lock belongs in a library, though.

Yes, the composer.lock should be removed and added to the .gitignore. Feel free to add it here.

@sandcore-dev I changed my phpstorm settings to only add the throws docblock, because the default generated docblock doesn't add usefull information. It's only useful when the parameter has additional information, such as the models. But it's not consistent yet everywhere, I'm planning to make the code more consistent, but didn't have the time for it yet. I would also like to add strict types everywhere etc. I'm happy with your contributions to make the package better :)

Thank you!


Added the closeOnScroll option.

This option prevents the gallery from closing upon scrolling. When this option is set to false, background scrolling is disabled until the gallery is closed.
This feature was primarily implemented to allow zooming/panning on mobile.  When coupled with some overriding CSS like this:
.fullscreen-v-img {
  touch-action: pinch-zoom pan-x !important;
}

you'll be able to zoom and pan without the gallery closing.

Hi @crowdbotics-apps,
Could you please let us know when this PR is merged or when this functionality is integrated? It is really useful to disable this option if we want. I would like to know, also, if it is possible to define each group configuration inside of VueJS file instead of writing it inline.
Thanks in advance.


Supply scripts to automatically build a rustc toolchain with support for rv32e/rv64e for all major OSes

Add a script which will build a rustc with support for rv32e/rv64e in a Docker and spit out a package that can be installed by rustup.
This already exists here, but needs to be extended to be reproducible and containerized so that the resulting binaries work on every system.

A couple of questions.
Rather than cloning & patching, could we just clone from a fork? Seems easier this way if we ever need to update the source code, like adding more targets.
Besides riscv32em_unknown_none_elf, what other targets would be needed for the purpose of polkavm?
And among those, which builds do you want to offer to people?

@eagr FYI, in case you wanted to work on this, Gabrielle here is making some headway with getting easily installable packages built:
https://github.com/gabriele-0201/rustc-rv32e-toolchain
So it might make sense to collaborate.
Now, to answer your questions:

Besides riscv32em_unknown_none_elf, what other targets would be needed for the purpose of polkavm?

Currently only this target is necessary, plus a 64-bit one would be nice to have (because we will be adding 64-bit support, and may or may not drop 32-bit support in the future depending on how much difference the 64-bit support makes).

And among those, which builds do you want to offer to people?

The general idea is to have a one-command installer which will automatically install a standalone rustup-compatible toolchain (which can be used as any other toolchain installed through rustup) on Linux, macOS and Windows (in this order of priority).

Rather than cloning & patching, could we just clone from a fork? Seems easier this way if we ever need to update the source code, like adding more targets.

Practically this shouldn't make much difference. I prefer to use a patch simply because then it is obvious what exactly is modified.
We don't want/won't make too many changes to the toolchain anyway, and we will be dropping it once the relevant LLVM patches get finally merged upstream. (This is not supposed to be a long-term fork of the compiler.)

We don't want/won't make too many changes to the toolchain anyway, and we will be dropping it once the relevant LLVM patches get finally merged upstream. (This is not supposed to be a long-term fork of the compiler.)

I see. :)
I was thinking this coud use a few shell scripts and Dockerfiles and provide some prebuilts for major OSes, and that's it. What Gabrielle is building seems to benefit more for your rustc-rv32e project, for testing out the scripts on different platforms. Do we really need the GitHub workflow in this repo? @koute

Mostly closed by https://github.com/paritytech/rustc-rv32e-toolchain/


Add header flags to the string output

The dumped SQL file has a set of session variables before and after the dump to do things like disable foreign key checks.
The string that is returned from the function (i.e. in-memory dumping) doesn't include those same variables.
This means that in a lot of cases you can't just run the output that is returned from the function, which makes it kind of useless.

I face the same issue when trying to workaround the #67 and #122, and I noticed that these session variables are missing from the DumpReturn schema and data. (I wanted to concatenate these 2).
Example:

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

...

Those information are not really part of the schema, nor the data (neither the orther current fields: trigger, table, etc.
I think this fix, if feasible, would require a new field of DumpOptions.


Bibtex key generation no longer is unique

Report ID: http://is.gd/wFFEhC
Issue: When doing "<RMB> | Generate BibTeX key" on an entry with the same Author as a previous entry the tool now generates both keys as "bibtex: Author" rather than "bibtex: Authora" for the second generated entry.
Workaround: Manually edit "Extra" field after generation with a unique bibtex key.
Doing "Clear BibTeX Key" on all entries and redoing produces the same result: all have the same key.

Additional Data: http://is.gd/T9ih8F
I thought the issue might be related to the fact that I had "Auto-pin citation keys" set to No.  If...

I clear all bibtex keys
Set Auto-pin citation keys to "On item change"
Select Generate key for each item

... they get correct key suffix (a,b,c...) added to all but the first
But the next item I add an item with that Author it gets a duplicate key "Author" as the first entry.

Reprodicible, working on a fix.

Same happend to me right now using @collectionand @incollection.

0.10.1 is out which ought to fix these issues.

Of course, if it doesn't for you, please do re-open the issue. Thank you for reporting the issue, and for your patience. Fixing this took a little longer than I'd hoped, and since I saw this as a very critical bug, I spent a little more time on testing and code review before putting it out.

Thank's! The fix works perfectly for me!

phew. On my phone, I just saw "Bibtex key generation no longer is unique" :) thanks for the confirmation, I really appreciate that.

:+1: Works now for me.  Thanks.


Allow to ignore specific words

A feature request is to have a set of strings to ignore.
For example, setting ignore_strings [ "dev","staging","prod"] would assist with comparing code between configuration files dev, staging, and prod folders.
Source: https://marketplace.visualstudio.com/items?itemName=moshfeu.compare-folders&ssr=false#review-details

It may be possible to consider 2 files as identical if the only differences are strings in the ignore_strings. It won't be possible to not highlighting them in the diff view if there are more differences in these files.
So, if the only differences are the strings in the ignore_strings, the files would appear in the "identical" view and not in the "differences" but if there are more differences, the strings in the ignore_strings will be highlighted alongside the other differences.
Why? because the diff view is vscode's built in and I don't know a way to ask it not to highlight a difference
What do you think @markklemm?

@gliviu what do you think? Does it make sense to add this option to the dir-compare or is it better vscode-compare-folders extension to implement it as a compareFileSync handler? If the second option, is it possible to somehow adding a hook into the lineBasedCompareSync so consumers won't have to handle the side effects, the concurrent files reading etc.?
By hook I mean to allow consumer to enrich the lines comparing here, something like
function compareLine(options: Options, line1: string, line2: string, options: Options): boolean {
    if (options.ignoreLineEnding) {
        line1 = trimLineEnding(line1)
        line2 = trimLineEnding(line2)
    }
    if (options.ignoreWhiteSpaces) {
        line1 = trimSpaces(line1)
        line2 = trimSpaces(line2)
    }
    if (options.ignoreAllWhiteSpaces) {
        line1 = removeSpaces(line1)
        line2 = removeSpaces(line2)
    }
    return line1 === line2 || options.customLineComparer(line1, line2);
}


Simplify the model by removing convenience predicates and inverse relationships

Simplify the model by removing convenience relationships from the primary entities to sites and site visits. This allows us to have single sources of truth when creating/transforming data into the RDF model.
Also, where possible, remove inverse relationships to form an opinionated way of creating the source data in RDF. This declutters the data graph and promotes interoperability between different data sources. It also makes delta updates to the data graph much easier. If required, inverse relationships can always be produced by materialised rules.
Further reading on best practices https://www.topquadrant.com/modeling-graph-relationships/

Some duplicate properties and convenience relationships have been removed by https://github.com/ternaustralia/ontology_tern/pull/23.

I need to do another review once the current develop branch gets merged into master.

Can't find the PR but this has been done.


Implement MITM detection described by Durumeric, et. al.

A recent paper, The Security Impact of HTTPS Interception published by Zakir Durumeric, Richard Barnes, Nick Sullivan, J. Alex Halderman, and others demonstrates the use of heuristics for detecting active MITM attacks/proxies on TLS connections:

First, we show that web servers can detect interception by identifying a mismatch between the HTTP User-Agent header and TLS client behavior. We characterize the TLS handshakes of major browsers and popular interception products, which we use to build a set of heuristics to detect interception and identify the responsible product.

The tl;dr of the heuristics described in the paper is to capture the information in the ClientHello of TLS handshakes and then capture the User-Agent value from the subsequent HTTP request headers. Since the TLS configuration of the major user agents is known and is mostly predictable (see paper for caveats), the paper suggests that by comparing the User-Agent header field to the actual client inferred from the characteristics of the TLS ClientHello is a way to detect active MITM attacks/proxies.
Despite benevolent intentions of some TLS proxies, they actually do more harm than good, and end users are not always able to know when their "trusted" proxy is helping or hurting them.
Because of the adverse effects on user privacy and the technical problems of TLS proxies of all kinds, I propose we give site owners the ability to handle clients who are being MITM'ed in the way that seems best to them.
I propose these actions should be possible:

Close the connection entirely. This would involve a new directive or a special property in the TLS directive that would allow the site owner to specify base paths (maybe?) which are considered sensitive enough to not even send a response in the case of a MITM.
Perform rewrites, redirects, or log when a connection is thought to be MITM'ed. This would involve a new request placeholder, perhaps {mitm} that contains a yes/no, 1/0, or true/false. This could also be used to set headers on the request for upstream services to be aware of the attack.
Warn the client in HTML or other kinds of responses of the attack. This would require a new template action such as {{.IsMITM}} (returns true/false or nonempty/empty) so that the site owner could inject custom HTML or scripts to help warn the client. (Yes, MITM proxies can of course try to detect these and strip them out, however, that is unlikely with the volume of Caddy sites at this point and would be difficult to generalize across all sites anyway.)

Possible challenges:

Maintaining a list of major browser TLS configurations. Maybe this won't change often, but it will change.
Mapping connection addresses to ClientHellos (map[string]*tls.ClientHelloInfo) may be inefficient, since the map will have to be protected with a RWMutex. We'll have to do some benchmarking to see if the impact is negligible under load, or if this feature will have to be turned on by the site owner before it can be used. Also, this requires Go 1.8.
We need to use GetConfigForClient since GetCertificate is not always called (for example, I've seen requests with curl --insecure that don't invoke GetCertificate).

Feedback welcome. I will be starting on this as soon as I get a chance amid the other drastic changes that Caddy is undergoing right now (build server infrastructure, new website, etc).
Update: I have a PoC started. I can map requests to their ClientHelloInfos. wrk indicates no significant overhead in doing this. I will invite others to verify when I have something to show. Now all that's left is the ability to detect the browser from the ClientHelloInfo and expose the results of the detection to templates and configuration.

Being able to just log when a MITM is happening along with the browser user agent/info + remote IP would be good, as this would have less severe consequences on a false positive.

@kyhwana The site owner will be able to do that too, since there's no one-size-fits-all on how to handle this.

I have to more or less parse the raw ClientHello message manually since the standard lib even in Go 1.8 still doesn't expose all the needed information (which is fine... most people won't need the raw Client Hello like this requires).
Nevertheless, I can now extract the raw list of cipher suites, point formats, extensions, and compression methods that the client sends, which makes it possible to implement the heuristics.
Next challenge: figure out exactly what those heuristics are. The paper is pretty clear about Safari and Edge, and Firefox sounds simple enough (I think), but the paragraph about Chrome is a little more fuzzy. Does anyone know which ciphers Chrome does not support?

Okay, well, I did some trials and think I have a decent first draft of this working. I will be contacting the authors to try to verify the correctness of my approach. Then I'll clean up the code, write some tests, and put this into a branch for everyone to try.

This will be merged soon. I'll probably want to revisit this when the authors release their fingerprint information but I won't let that stop us for now.

Please allow me, a priori, to acknowledge and apologise for the relative uselessness of this comment. That said...
The ideal functionality here is to identify the MiTMing and - particularly wrt TLS'd sessions - generate a session that provide proper, as-expected, browser-to-server encrypted network connectivity for transmission of HTTP content.
Flagging a session as known-compromised, and allowing server-side administrators and/or clients to decide what to do about that state is admirable. No question.
That said, stepping back... the "just make it work" button for this circumstance will be - for at least some clients and some server/site admins - to make the interception stop whilst delivering the requested content in a way that is secure and non-modified in transit. That functionality is very, very valuable for a nontrivial population of clients/site admins.
As to how to actually build that particular make-it-work button... a different question. A great question (I'd say), though perhaps beyond the scope of initially pointing out that such functionality would be, in a word, terrific.
Cheers.

@pjstorm Thanks for your comment, I appreciate it -- and agree with it, if I understand correctly... although:

the "just make it work" button for this circumstance will be ... to make the interception stop whilst delivering the requested content in a way that is secure and non-modified in transit.

I'm not aware of a way to do this... maybe there is some research out there in preventing TLS proxying but I don't think that tech exists (yet). I feel like you would have to have full control of the network between you and the client to guarantee such a thing.

I'm not aware of a way to do this... maybe there is some research out there in preventing TLS proxying but I don't think that tech exists (yet). I feel like you would have to have full control of the network between you and the client to guarantee such a thing.

Aaah... yes, there are a number of possible ways to go about cracking this particular nut. They all require a bit of creativity and, perhaps, unconventional uses of bits and pieces of underlying protocols in service of workarounds.
On the surface, yes it'd seem that full network/segment control would be required to have a blanket "make it work" button solution. In practical terms, there's at least a percentage of use-cases where proxies can be subverted realtime.
(For example: if there's a class of proxies that will "fail open" if they can't successfully negotiate a MiTM'd session... then the only requirement for defeating the proxy in practice is to muck up its attempts at session creation sufficient to cause it to throw up its virtual hands and virtually say "oh bugger, I can't make this session work... guess I've got to let this one go and just try harder next time." It's a version/equivalent of the old protocol-downgrade attack, right, except in reverse... or some such :-P )
There's researchers out there with heaps of hands-on experience working on particular MiTM/proxy/session hijacking equipment and they'd be able to provide highly valuable empirical clarification on what techniques work, and don't work, when it comes to subverting this behaviour on live network sessions. (note: I am not in this class)
Cheers.


Issue: Impossible to Select Text on Macos

Because it always triggers a drag action on the window itself.

Duplicate of #37.
Agreed, this is unbelievably annoying.

Fixed on 105953d.

I have already update the newest version.
When I want to select text, it always drag the windows.
My version: tusk 0.23
My macOS: 10.14.5 Mojave
How can I solve it?

It is still unresolved on the mac system
My tusk version: tusk 0.23
My macOS: 10.15.7 Catalina


What's the use case for passing a callback to a strategy?

I'm working on a custom Passport strategy, and documenting how to use it. I'm seeing this in the code:
lib/middleware/authenticate.js
module.exports = function authenticate(passport, name, options, callback) {
  // ...
  return function authenticate(req, res, next) {
      // ...
      strategy.success = function(user, info) {
        if (callback) {
          return callback(null, user, info);
        }
      }
     // ...
  })
};

Which, if I read this correctly, means that the request will timeout because the request-ending methods of the res and next arguments are never invoked. This callback is used for success and error, but not failure, pass or redirect results.
Is there a use-case for this I don't understand, or is this a bug?
EDIT: looks like it is called for fail if all strategies fail.

Ok, so it looks like this is intentional, given the example in the comments:
app.get('/protected', function(req, res, next) {
  passport.authenticate('local', function(err, user, info) {
    if (err) { return next(err) }
    if (!user) { return res.redirect('/signin') }
    res.redirect('/account');
  })(req, res, next);
});

Although this is a little bit unintuitive since your code needs both a callback and pass req/res/next to middleware in order to cover all possible cases. If you'd entertain a PR to smooth this out a bit, I'd be happy to give it a go.

What would the PR do differently?
A custom callback should be used only in rare instances, so being unintuitive is not a big concern.

Also, use of custom callbacks by an application developer should not impact how a custom strategy is implemented.  The custom callback is handled by Passport core, independent of the strategy itself.

My initial thought would be simply to pass a req/res/next as well, so your code could look like:
app.get('/protected', passport.authenticate('local', function(err, user, info, status, req, res, next) {
   if (err) { return next(err) }
   if (!user) { return res.redirect('/signin') }
   res.redirect('/account');
}));

I think the main use case for this would be logging information about the request based on its success/failure for auditing, regardless of the other options you pass to the strategy. I also think using the API consistently will also help avoid user error; I had to dig around in the source code quite a bit before understanding how it works.
If i was feeling ambitious, it'd want to have the callback argument, if absent, default to a function which does all of the stuff that Passport is doing already, so the logic would look more like:
if (typeof callback !== 'function') {
  callback = function (err, user, info, status, req, res, next) {
    if (err) {
      return allTheStuffPassportDoesForErrors(err, user, info, status, req, res, next);
    }
    if (user) {
      return allTheStuffPassportDoesForSuccess(err, user, info, status, req, res, next);
    }
    return alltheStuffPassportDoesForFailure(err, user, info, status, req, res, next);
  }
}
// ...
strategy.success = function(user, info) {
  if (callback) {
    return callback(null, user, info, 200, req, res, next);
  }
};

Additionally, the assignProperty option and authInfo option appear to be mutually exclusive; I wouldn't mind fixing that.

I like the idea of factoring all the stuff passport does into a separate function, and assigning that to the callback.  I don't like the idea of passing req, res, next as arguments into the callback.

Cool. I'll put some think together; functioning code is much easier to talk about.

Add #423 -- I know you mentioned you don't like passing req, res, next to the callback, but it seems like it's necessary to avoid the
function (req,res,next) {
   passport.authenticate('strategy', function () {
     // stuff
   })(req,res,next);
}

structure. I hope my rationale in the PR makes sense.

I don't think that structure needs avoiding
Sent from my iPhone

On Oct 16, 2015, at 12:36 AM, Ryan Cannon<EMAIL_ADDRESS>wrote:
Add #423 -- I know you mentioned you don't like passing req, res, next to the callback, but it seems like it's necessary to avoid the
function (req,res,next) {
passport.authenticate('strategy', function () {
// stuff
})(req,res,next);
}
structure. I hope my rationale in the PR makes sense.
—
Reply to this email directly or view it on GitHub.

Well, I'd love to understand why, but I'm not going to badger you if you're going to reject the PR. The way I see it, the existing structure:

Requires creating a middleware function in memory on each request, when it could be reused
Requires checking for the presence of a callback on every request, when that will never change
Frequently confuses engineers that are still learning or coming from other languages

While the optimizations are small, I don't see any drawbacks of using them.

Frequently confuses engineers that are still learning or coming from other languages

This one isn't a priority for me.  Passport is written in JavaScript, and uses the middleware idioms established by Express/Connect.  The learning curve is small, in my opinion, and worth climbing for any engineer who is serious about developing web applications in JavaScript.  Further, once the middleware pattern is understood, it allows applications to be composed very easily.  Passport itself takes advantage of this composibility.
The other two points are valid, and I'm considering them.  However, I think they can be accomplished while remaining standard middleware and without changing the callback's function signature.

I think that's a fair point; I'm starting to try and think through what the callback can even give you that other passport options do not, and what I'm getting is:

It gives you access to error, success, info/challenge, status before triggering error middleware.
It allows you to short-circuit req.logIn if for some reason you don't want to call it and still get authInfo
It gives you access to information about failed logins without setting the WWW-Authenticate header

Doesn't seem like much. You can get pretty much the same behavior with something like:
var AuthenticationError = require('passport/lib/authenticationerror');

app.get('/protected',
  passport.authenticate('local', {
    authInfo: true,
    failWithError: true,
    session: false
  }),
  function(req, res) {
    // req.user and req.authInfo are available
    res.redirect('/account');
  },
  function(err, req, res, next) {
    if (err instanceof AuthenticationError) {
      // status is available on res.statusCode if it was truthy
      // challenge is accessible with res.getHeader('WWW-Authenticate') if it was a string
      // but has been cast into an array
      return res.redirect('/signin');
    }
    next(err);
  }
);

...which feels like better code than the callback version anyway. So maybe for my docs I'll just ignore the callback option.
If you are interested in some PRs that avoid checking properties more than once, I'm happy to contribute. It would break passport's ability to support something like:
var options  = {};
setInterval(function () {
  options.authInfo = !options.authInfo;
}, 100);
app.get('/protected', passport.authenticate('local', options);

...but that seems like an enhancement, not a regression.

Welp, not sure how I found myself here, but anyhow.
You're trying to re-define conventions here which are very well established, and your proposed approach doesn't actually help in many of the use cases in which developers would use this sort of approach in the first place. Conventions around error handling and middleware aren't changing anytime soon.
In any case, learn lexical scope & take advantage of it. Creating functions in JS is super cheap.
Here's a more realistic example of how these pieces would fit together:
function authenticate( email, password, next ) {
  if (!validator.isEmail(email) || !validator.isLength(password, 6, 32)) {
   return next(new handler.InvalidCredentialsError('Password invalid'), false);
  }

  User.findOne({
    email: email.toLowerCase()
  }).select('+password').exec(function( err, user ) {
    if (err || !user) {
      return next(err || new handler.ResourceNotFoundError('Email not registered'), false);
    }

    user.verifyPassword(password, function( err, verified ) {
      if (err || !verified) {
        return next(new handler.InvalidCredentialsError('Password invalid'), false);
      }

      return next(null, user);
    });
  });
}

var strategy = new LocalStrategy({
  usernameField: 'email',
  passwordField: 'password'
}, authenticate);

exports.authenticate = function( req, res, next ) {

  req.checkBody('email', 'required').notEmpty();

  var errors = req.validationErrors();

  if (errors) {
    return next(errors);
  }

  passport.authenticate('local', function( err, user ) {
    if (err || !user) {
      return next(err || new handler.UnauthorizedError('Invalid login credentials'));
    }

    req.logIn(user, function(err) {
      if (err) {
        return next(err);
      }

      res.status(200).send(user);
    });

  })(req, res, next);
};

I'm using express-error-funnel as my error middleware in order to do meaningful parsing, especially of errors created using node-restify-errors.
By the way, your PR is dependent on express flash, which was deprecated

learn lexical scope

Ah, that's my problem. Thanks.
It doesn't matter, since the PR isn't going to get accepted. While I still think the API is unintuitive, the author doesn't believe that to be a problem, so it won't change.
If performance ever gets to be a problem, I can submit my load test results with a PR, but for now it's fine.
I just had some spare cycles and thought it would be fun to contribute to a good project, even if in a small way. Not interested in a flame war.


Possibility to localize dynamic routes

What problem does this feature solve?
I'm not sure if it is possible :)
I have a route /article/:slug (en) and I'd like to translate it to other languages with translated slug
Eg: (en) /article/first-article and (de) /de/artikel/erste-artikel
Now I can do this:
article.vue
i18n: {
  paths: {
    de: '/artikel/:slug'
  }
},
data () {
  return {
    article: { // it comes from asyncData
      // title: { en: '...', de: '...' },
      // slug: { en: '...', de: '...' }
    }
  }
}

but I can't change the slug based on the article's data
What does the proposed changes look like?
I think the i18n.paths[locale] should accept a function with the access of this (data) and should return some Object:
de () {
  return {
    path: '/artikel/:slug',
    params: {
      slug: this.article.slug.de
    }
  }
}

This feature request is available on Nuxt.js community (#c74)

Hi @metalanti
This can already be achieved by passing the translated slug to <nuxt-link>, it might look something like this (not necessarily the best way but it should give you some pointers):
<template>
  <nuxt-link :to="localePath({ name: 'article-slug', params: { slug: myTranslatedSlug } })">
    article
  </nuxt-link>
</template>

<script>
export default {
  computed () {
    myTranslatedSlug () {
      const { locale } = this.$i18n
      if (locale === 'de') {
        return 'nachrichten'
      }
      return 'news'
    }
  }
}
</script>

thank you!
so it's a solution,
but the Lang switcher with switchLocalePath won't work this way
I think if my request can be done, it would be more elegant :)

I think this is exactly what I was asking here
Right now, we can place pretty much all other content that's to be translated in some external file or backend. The only missing strings are exactly the urls.
@paulgv If there's any way to have the component's nuxtI18n property have access to data fetched on asyncData before the router generation that would be great! I'm assuming they have to be hardcoded so you can use acorn at build time to create the router (?)
@metalanti did you ever find some way to accomplish what you were asking initially?

@ptdev we have the same problem, but mine is not urgent. i have still no solution

Hi @metalanti , my problem is also not really urgent. It's just one of those "would be great to have" features.
Thanks for replying though, cheers!

Anyone have news on this issue?
I need really urgent this feature.

I'm still searching for an update on this issue.

I'm chiming in here too, can't for the life of me figure out an elegant solution.

bump

Here's my attempt at supporting dynamic parameters translation in nuxt-i18n: https://github.com/nuxt-community/nuxt-i18n/pull/345
Please read the PR description to see how you can try it yourselves. I'd love to have some feedback on this!

This can't do much, since it's compile time micro and cannot be useful when loading data from an API.


NMS 1.18 is being imported; causing issues if shaded

Describe the bug
I am attempting to shade the API into my plugin so the server doesn't need the API jar in the plugins folder. The shading works and I was able to get its service registered. When I try to access my static WorldBorderAPI variable, I get the error in console Caused by: java.lang.ClassNotFoundException: org.bukkit.craftbukkit.v1_18_R1.CraftWorld. After looking into the code, is seem in com.github.yannicklamprecht.worldborder.impl.WorldBorder you're importing 1.18 NMS.
To Reproduce
Steps to reproduce the behavior:
In my onEnable(), I have this:
worldBorderApi = new PersistenceWrapper(this, new Border());         this.getServer().getServicesManager().register(WorldBorderApi.class, worldBorderApi, this, ServicePriority.High);         RegisteredServiceProvider<WorldBorderApi> worldBorderApiRegisteredServiceProvider = getServer().getServicesManager().getRegistration(WorldBorderApi.class);
which provides a non-null version of the API. Then when I try and do the following, I get an error:
GambitRemastered.worldBorderApi.resetWorldBorderToGlobal(player);
Expected behavior
I expect it to reset the player's world border.

You need to shade the right version for your Minecraft version.
It is not recommended to shade the API as it removes the flexibility of downloading the right API for your Minecraft version.
Shading binds your plugin to one version of the game.
Seems like you clearly shaded a 1.18 version of the api into your plugin and ran it with another Minecraft version.


Make FacilitatorPanel a separate interface from DebatePage

Gets rid of the "setting up" debate state
Can allow for creating multiple debates at once or in sequence (e.g., with similar settings)
Allows us to remove the header bar in DebatePage, or at least make it more compact

Finally finished this up in 77c9f855051e8c44f64478be93ca8aa2b81596b1.


Birthdays Missing

It seems like a one or more birthdays are missing (found out when a script of mine for DCinbox relies on these).
I don't know how to directly edit the legislators-current.yaml (and it's possible I can't), but I called the individual representatives offices today and here are the reported birthdays:
Budzinski, Nikki B001315 1977-3-11
Lee, Laurel L000597 1976-3-26
Ezell, Walter (Mike) E000235 1959-4-6
Williams, Brandon W000828 1967-5-22
Salinas, Andrea S001226 1969-12-6
Still waiting for details on the following (sent emails after calling, waiting for responses):
Pettersen, Brittany P000620 1981-12-
Moylan, James M001219
Deluzio, Christopher D000530

@lindseycormack thanks! had no idea you were using this data for DC Inbox, but that's very cool. Editing the yaml file is like editing a text file, but I'm happy to make these changes.

@lindseycormack one thing: the congressional biographical directory says that Laurel Lee was born in 1974, not 1976 (but does not provide a month or day).

Hi - yes, that detail is correct, I just called again. It's 1974-3-26.
On Mon, Jan 9, 2023 at 10:57 AM Derek Willis @.***>
wrote:

@lindseycormack https://github.com/lindseycormack one thing: the
congressional biographical directory says that Laurel Lee was born in 1974,
not 1976 (but does not provide a month or day).
—
Reply to this email directly, view it on GitHub
https://github.com/unitedstates/congress-legislators/issues/867#issuecomment-1375849936,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADDZNHQHPWZV2MBUOFWWWYTWRQYNDANCNFSM6AAAAAATVRSJYU
.
You are receiving this because you were mentioned.Message ID:
@.***>

@lindseycormack thanks!


Cookies

I've done this on Virtual Machines, with separate settings and environments of their own, yet I've seen one glaring problem.
Firefox seems to be the only browser that actually works regarding cookies. My guess, is, that the Chromium (and Chrome) have added their LDB file lock, which meant cookies wouldn't be grabbed if chrome was on.
But, even after chrome is killed, it does not grab anything. I'm sure their LDB lock fails once the browser itself is killed, so I'm guessing it's an issue with the code.
Given your grabber is quite damn good, I'd also imagine it'd attract a bit of attention. This may need urgent fixing, if the issue persists across multiple users.

The issue with Chrome cookies path being incorrect has been resolved in the latest commit: https://github.com/hackirby/skuld/commit/cf71b743b0e6af86be8487d695fea81e9e88c241. Thank you a lot for reporting this huge mistake, and thank you for your kind words as well!


"Clean up expired data" not working when hosting under a subpath

Description
When hosting under a subpath behind a reverse proxy (say, http://myserver.local/gitea as ROOT_URL), button "Clean up expired artifacts" in Site Administration->Code Assets->Packages (/admin/packages) does not work, resulting in a 404 instead.
The button POSTs to /admin/packages/cleanup, while expected to POST to /gitea/admin/packages/cleanup, where /gitea prefix is the subpath Gitea is being hosted on. If I manually add the subpath prefix to HTML via browser inspector, the button works, like this: <form method="post" action="/gitea/admin/packages/cleanup">
This seems to be due to missing usage of AppSubUrl here, like its used in other places.
Gitea Version
1.12.10
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
No response
Screenshots
No response
Git Version
No response
Operating System
No response
How are you running Gitea?
Systemd
Database
None

Fix some URLs whose sub-path is missing #31289


With association autoFetch  cache may return incomplete instance.

When cache has instance that has been loaded from auto-fetch,   autoFetchLimit means can sometimes have instance in cache with no associations populated.
A subsequent independent get() or find() will return the underpopulated instance from the cache.
Updated the Singleton cache to check all autoFetch associations are populated before re-using object from cache.

How does this behave when someone manually specifies authFetch: false when getting a model (given that autoFetch is set to true in the definition) ?
Also could you please convert spaces to tabs? It will help with alignment issues.
I'm tempted to switch the whole projects from tabs -> spaces as it's a constant source of problems, but haven't done it yet..

re: using autoFetch manually, something's not right in yr master - let alone my pull request.
I'll do another pull-request with fix for that first....


Add cross tenant subscription test case

@Arshardh please merge.

Reverting since this causes a compilation failure.


Problems with new Gradle Plugin

About this issue
I am in the process of migrate my app to latest materialdrawer, iconics and aboutlibrares. The new Gradle Plugin works great, but produces some odd things which I wanted to report.

okhttp-brotli
iconics
LeakCanary

okhttp-brotli seems to not resolve the name correctly (POM).
Iconics shows up twice (propably because of the internal library definition)? Happens for other libs with an internal definition also.
leakcanarys ObjectWatcher shows up many times (Not sure if these are multiple dependencies, but can't see because of the truncated title).

Usage
LibsBuilder()
    .withAutoDetect(false)
    .withShowLoadingProgress(false)
    .withAboutVersionShown(false)
    .withAboutIconShown(false)
    .withVersionShown(false)
    .withOwnLibsActivityClass(MyLibsActivity::class.java)
    .withActivityTitle(getString(R.string.about_licenses_activity_title))
    .start(requireActivity())

Details

Used library version: 8.1.1
Used support library version: appcompat 1.2.0-beta01
Used gradle build tools version: 6.3
Used tooling / Android Studio version: 4.0.0-beta03
Other used libraries, potential conflicting libraries: None

Checklist

[x] Searched for similar issues
[x] Checked out the sample application
[x] Read the README
[x] Checked out the CHANGELOG
[x] Read the MIGRATION GUIDE

@rubengees fun fact: it actually solves correctly https://github.com/google/brotli/blob/master/java/org/brotli/pom.xml#L10
We will have to overwrite this one manually.
Yeah the plugin does not make a difference about parent and child as there is no chance for the lib to detect if it is actually 2 different libraries or just the same with different modules. I suppose there may be great if we could merge them somehow.
I suppose. but in addition you should not have leak canary in your production app :O

Hmm, interesting. I'll report an issue in the brotli repository (I thought all the time this was okhttp-brotli and not brotli itself).
Yes, some merging or deduplication would be great! :)
I do not have Leak Canary in the release variant. I'm not sure which dependency container the plugin looks into, on releaseRuntimeClasspath it's not at least. Could that be an issue?

luckily we are prepared for such cases with: https://github.com/mikepenz/AboutLibraries/blob/develop/library-definitions/src/main/res/raw/custom_name_mappings.prop :D
you can also provide your own custom mappings as noted in the docs :) this will allow you to resolve it until there's an update.
but that would be a manual process :D
the screenshots above, where they from the release build?

I can confirm the brotli thing for 8.1.2, see https://forums.bitfire.at/post/12856
And thanks for all your efforts :)

@rfc2822 Btw. for the meantime you can for example overwrite the name of brotli doing this:
https://github.com/mikepenz/AboutLibraries/blob/develop/app/src/main/java/com/mikepenz/aboutlibraries/sample/FragmentActivity.kt#L175
Just use its identifier created by the gradle plugin. (you can get it via the findLibraries task)
Hope this helps.
Beste Grüße.

Regarding deduplication: When using the Gradle plugin and if an entry is found for a library that also has an internal definition one of the definitions can be safely omitted, can't it?
For dependencies which have the same content (not sure if that's the case for the leakcanary dependencies), only one can be shown I guess?
You are right, that was a debug build and leakcanary is on the classpath there.

The entries are not duplicated because of internal definitions. those are no longer showing up anyways :) they are basically deprecated and most likely I plan to remove them at some point.
From legal perspective all dependencies have to be shown. So I am not sure how accurate it is to "magically" merge similar ones.

I investigated the LeakCanary case further and found that these are indeed various submodules with slightly different names. Couldn't see that because of the truncated titles, but I also remember you said that showing the title multiline is no option somewhere so I guess there is nothing to be done here.

hmmm the latest version offers a new minimal UI which is not as verbose. but regardless. I will have to think of a "clever" way to merge libraries some way.
or at least link them in some way. also having multi license support.
but that is something for v9 :D

What was the fix for deduplication exactly? I've updated a library I'm using to use the plugin, and I'm keeping my main app with a manual include list as the list gets too populated (#520). I'm getting duplicated cards for libraries used in both projects.
Is the main fix to migrate my main app to use the plugin? I'm looking for more of a whitelist filter as opposed to a blacklist one

For now the approach was via the exclusion list which was deeper included in the plugin so you can have a simple list there to drop libs.
I am still thinking of a good approach to introduce a intelligent "merge" mechanism which would be an optional choice.
Note neither excluding nor a specific allow list is generally suggested as all libs should retrieve their attribution.

I think that's fair, but currently a lot of the entries are not really dependencies, but subcomponents of a main dependency. I'm also not sure if it's pulling all dependencies in the project or just the ones added by the project

On that note, I am still curious about the "I'm getting duplicated cards for libraries used in both projects." As this kind of seems strange to me. the plugin will generate the same resource Ids so they overwrite each other.
Could it be that it's possibly a bug due to your manual inclusion list?

My main project uses the old method where I define the Libs + packages. I'm guessing that isn't the supported method and I'd be fine with switching over, but the alternative lists way too many libraries. It's not that I don't want to give credit to everything, but I believe that the list of that size makes it harder for other developers to identify the direct dependencies I'm using. Looking at it again, I think it's listing items for every dependency recursively

@AllanWang yes the library lists all dependencies. E.g. things which are getting pulled into your project and are required for your project to compile.
MaterialDrawer for example uses FastAdapter. MaterialDrawer won't work without FastAdapter so both get credits.
(In the past it also required Iconics but I removed that in v8, also Materialize is removed)
But similar principle for all the jetpack libs. it kind of needs those deps to serve the features you are using in the end, so it seems correct from that point of view as far as I can say.

And yeah it might be a mix of both versions of the lib.

v8 allows you to have an exclusion list if something is to verbose in dependencies, shouldn't be the case for anything though.
Let's see if we can come up (the other ticket you opened) with a proper merging strategy which shall help with your requirement :)


Precison farming

Hello
This mod don't work with precision farming.
Thanks

Thank you for reporting, but this is a known limitation / mod conflict due to the way that precision farming essentially does the same thing as this mod, but dynamically changing the usage rates based on the soil type.
I'll take another look to see if i can override the override. 😉

Thank you for reporting, but this is a known limitation / mod conflict due to the way that precision farming essentially does the same thing as this mod, but Precision Farming is dynamically changing the usage rates based on the soil type as you progress over the field.
That said, I'll take another look to see if I can override the override.😉

It's good.  Thanks.  It was really good if it works on the precision farming, in the game there is a single car for lime that works perfect on the precision farming and spends little cal, Jan Lancer Maximus. I don't know if you can see how programmed is there and helps you.  Thanks in the way now for the mod.


Auto-determine configurations.names

Describe the issue
When using separate configurations, the value configurations.names needs to be set beforehand to set the list of configurations that will be loaded. Updating this value for a new configuration (or removing an old one) requires a restart of the server (and if not set from the server, also the properties in the .war file). It would be nice to have an option to enable an auto-determine mechanism that updates the list of configurations based on configurations in the database and/or configurations.directory and/or other places configurations can be located and loads these configurations automatically if not loaded yet. I'm not sure what to do with reloads, but as this request mainly makes sense with loading from the database and there is already a reload-mechanism for that, I think reloads are covered with that.
Reporter
Ricardo

To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Screenshots
If applicable, add screenshots to help explain your problem.
Configuration
Please provide the configuration of the Pipe or Receiver with the problem.

Input
Please provide an example of the input message.
Alternatively, provide a Ladybug report.

Environment
Please go to the console of your Frank, click on 'Information' and copy-paste the results here.

Additional Environment

DBMS: [e.g. Oracle, MSSQL, MariaDB, MySql, PostgreSQL]
Browser: [e.g. Chrome, Safari, Edge, Firefox]

Additional Context
Add any other context about the problem here. (f.e. ladybug report / test adapter with larva test)

Such a feature already exists;
configurations.directory.autoLoad=true make sure you have set configurations.directory.
and
configurations.autoDatabaseClassLoader=true (which will soon be called configurations.database.autoLoad=true)

As indicated, feature already exists.


Refactor for serialization support

Had to redesign everything so you could save / load progress

Issues right now is I think you want to listen to an exact event instead of just [vague] rules about an event. Ids are generated at runtime and won't be unique after deserializing a saved game, so can't use those at the moment.

Turns out there is a [hopefully] way better way to do this...


Slow performance on showing image in CameraFrustumHandle

I am currently using the .image setter of the CameraFrustumHandle. In my use case I have a lot of images to show in parallel (120+) and it becomes quite slow since the input is a numpy array that is then encoded into bytes.
The current implementation does this
https://github.com/nerfstudio-project/viser/blob/faa9c575d288bbaf5be003ee2435836fdb480d7f/src/viser/_scene_handles.py#L354-L369
Which make sense to me but does not scale. I am decoding the jpg images from disk, converting them to numpy array only to convert them back to jpg and visualize them.
Even with threading this cannot be done in real time with large number of cameras.
I am very open to work on a PR to support either accepting paths or streams of bytes in the image setter method.
Please let me know if that would be welcomed and how you would prefer this to behave!

Hi @abcamiletto!
One thing you could try is the _image_data property that the .image setter uses under the hood, eg:
from pathlib import Path

frustum_handle._image_data = Path("some_image.jpeg").read_bytes()

If you can confirm that this is much faster, I'm also open to supporting already-encoded images by (1) changing the type of the .image property from np.ndarray | None to np.ndarray | bytes | None and (2) bypassing the encoding logic if bytes are passed in. I'd like to be consistent here though, so if we make this change we should also do it everywhere else an image can be passed as an argument in viser.

This also leads to a weird behaviour:
from pathlib import Path

frustum_handle._image_data = Path("some_image.jpeg").read_bytes()
frustum_handle.image_media_type = "image/jpeg"

print(frustum.image) # None

I assume the underlying getter should check if _image_data is present but _image is None and decode it if that is the case.
If you'd be ok with this solution I can open a PR for it


Consider how many temporary types should be supported

Bean Validation supports following types

java.util.Date
java.util.Calendar
java.time.Instant
java.time.LocalDate
java.time.LocalDateTime
java.time.LocalTime
java.time.MonthDay
java.time.OffsetDateTime
java.time.OffsetTime
java.time.Year
java.time.YearMonth
java.time.ZonedDateTime
java.time.chrono.HijrahDate
java.time.chrono.JapaneseDate
java.time.chrono.MinguoDate
java.time.chrono.ThaiBuddhistDate

at least, we should support

[ ] java.time.Instant (#197)
[x] java.time.LocalDate
[x]  java.time.LocalDateTime
[ ]  java.time.LocalTime  (#197)
[ ]  java.time.OffsetDateTime (#197)
[x]  java.time.ZonedDateTime

Other than that?

I think in later stages java.sql.Timestamp could be useful. Although I think we should first focus on the ones that are listed under "at least, we should support", and later if it gets more traction slowly expand.
Personally I think it is way more important to provide out of the box validation methods than 10+ different classes but only with rudimentary validation methods.


How to prevent webview reloading when switching fragment

How to prevent webview reloading when switching fragment?

Your WebView instance is located inside of the Fragment and thus bound to the life cycle of the Fragment?
Can you try Fragment#setRetainInstance with a value of true?
If you are using ViewPager, you could also try ViewPager#setOffscreenPageLimit with a value as high as you need, e.g. 2.


Handle reduced motion

This library currently doesn't respect reduced motion requests, thus throwing animations to people who explicitly requested to not get any (e.g. due to motion sickness).
It would be good if it could disable itself.

Great call-out! Will definitely prioritize.

Done & merged! See v2.1.0.


Test/ds 980 e2e tests agains netlify builds

Description

Enabling visual tests to run against Netlify deploys. This PR is based on the articles below.
This PR only contains modifications of the pipeline. For the demo application see https://github.com/lmc-eu/spirit-design-system/pull/1315.
Additional context

https://snyk.io/blog/how-to-add-playwright-tests-pr-ci-github-actions/
https://mmazzarolo.com/blog/2022-09-09-visual-regression-testing-with-playwright-and-github-actions/#run-playwright-tests-against-deploy-preview-netlify-vercel-etc
https://spirit-design-system.netlify.app/
https://github.com/actions/upload-artifact/issues/50#issuecomment-1856471599

Issue reference

https://jira.almacareer.tech/browse/DS-980

coverage: 80.071% (-16.3%) from 96.371%
when pulling eac98492469f1f39cbf5309b99a149b32f055210 on test/DS-980-e2e-tests-agains-netlify-builds
into 9920fbf6be8906acd11efc70d723a5d27ee60d17 on main.

link to the report is now downloadable ✅
waiting to deploy is working ✅
testing is done against the deploy ✅

[ ] Remove last commit when rebasing after ✅ Approve

Here is the URL of the uploaded artifact: https://github.com/lmc-eu/spirit-design-system/actions/runs/8465243955/artifacts/1366129840

According to this, all tests failed :D
However, there is a green checkmark in checks 🤷

Here is the URL of the uploaded artifact: https://github.com/lmc-eu/spirit-design-system/actions/runs/8469921868/artifacts/1367257295

@crishpeen In this one, only Alert fails.


Fix deprecated Raven_SanitizeDataProcessor -> renamed to Raven_Proces…

…sor_SanitizeDataProcessor

Thanks to the contribution! I'll try to backport it to the 0.8 branch as well!

I have the same problem in the test suite.
for now i set it in phpunit.xml.dist:
<env name="SYMFONY_DEPRECATIONS_HELPER" value ="/vendor/sentry/sentry-symfony/" />
I hope can help others too.
Yo!


Add end-to-end test GitHub Action

On check-in, run an end-to-end test on an existing AKS cluster (after the build container GitHub Action has been completed. If this is not possible, add end-to-end test to that GitHub Action). The end-to-end test should call URLs and authenticate, redirect to the kuard pod.

Work on this issue only after this issue is complete: https://github.com/Azure/EasyAuthForK8s/issues/7


[WIP] Refactor Plot type & road to 1.0

This is a pretty big rewrite of the internal plot type.
The goal to not be breaking, though! This is a stretch goal, and quite a few things will likely be slightly breaking. One should think of this PR as Makie's 0.7 Julia version, on it's way to a breaking 1.0 release. This refactor will introduce warnings for features we want to deprecate, and will lay the groundwork to do the actual breaking changes.
The planned changes:

each atomic plot type now has a fixed set of fields with fixed types. This enables:

good error messages for wrong plot attributes (still need to add that bit in the current implementation)
compilation time improvements (!?)
types become self documenting
better API for backends. Right now, it's pretty fuzzy to see what the basic plot types support, leading to bugs + making it more difficult to write new backends/maintain them
merging themes can be a clean operation. Right now it's a big mess where it happens, how and when. With the new plot type, all fields not set by a user are put into a set of uninitilized_fields, and then get updated from the theme when actually drawn

make it possible to construct a plot type without a scene. This enables

constructing plots, taking their boundingbox etc, without plotting anything
easier and cleaner adding & removing of plots from scenes. Right now it's possible, but unclean since the plot type still keeps some connections to the original parent
reactive API: one can build whole scene graphs of plots without the need of a parent scene, and can construct them cheaply in an animation loop, without the whole overhead of building the whole scene. This also makes diffing of scene graphs  easier (also because of the above)

revamp of observables inside plot types

plot types are now mutable with concrete values as fields. Any setfield! operation will immediately converted the values to the strict field types
remove the Attributes type, which was storing any plot attribute as Observable{Any}
each plot object has an on_event observable, which one can use to register to setfield! events, or other events like mouse/camera/axis-limit-changes
non observable workflows become first class, since the creation of a plot type without any observable doesn't create any new observables, while one can still subscribe to attributes updating via setfield!
no duplicate convert_attribute calls in multiple parts of the pipelines. In the old infrastructure, everything got converted lazily, so there wasn't a clear point to convert.. Some some recipe did already apply conversions, and the backend then applied conversions again
enables updating multiple attributes together, fixing the age old problems with synchronous updates. Related https://github.com/JuliaPlots/Makie.jl/issues/798

conversion pipeline in plot constructor

clear point where the conversion happens
Enables to have e.g. Scatter(1:4) to create the correct plot object, without a scene present
makes it possible to create plot instances very early, making it easier in the rest of the pipeline to e.g. calculate boundingboxes earlier

Timeline:

[x] create plot type + macro to create them
[x] implement observable free updates
[x] new attribute conversion pipeline
[x] implement alpha attribute
[ ] throw great error messages on unsupported attributes
[ ] clean up & document attributes part of every plot object (label, participate_in_limits, anti-aliasing, color, alpha, ..and more?)
[ ] start replacing basic plot types

[ ] Scatter (GLMakie working with basic attributes)
[ ] Lines (GLMakie works)
[ ] LineSegments (GLMakie works)
[ ] Mesh
[ ] Surface
[ ] Volume
[ ] Heatmap
[ ] Image

[ ] figure out recipe pipeline with new conversion infrastructure (started)
[ ] Fix all regressions as gracefully as possible

Will close this for now... Will bring back the important changes by cherry picking in much smaller PRs!


Make sure to use random component names when copying sample Devfiles in integration tests

What type of PR is this:
/kind tests
/area testing
What does this PR do / why we need it:
This updates the helper.CopyExampleDevfile function to accept a parameter that allows performing operations on the destination Devfile (like setting its metadata.name). This way, callers are able to pass a unique random component name.
Using a random name helps prevent conflicts when isolation is not possible (for example on Podman). This will allow fixing the Podman tests in #6499.
For consistency, the next step could be not to use odo init --devfile-path /path/to/example/devfile (so as not to depend on the odo init command), but instead rely on the updated helper.CopyExampleDevfile function everywhere. But this can be done in a subsequent PR.
Which issue(s) this PR fixes:
—
PR acceptance criteria:

[ ] Unit test

[x] Integration test

[ ] Documentation

How to test changes / Special notes to the reviewer:

• [FAILED] [255.311 seconds]
E2E Test
/go/odo_1/tests/e2escenarios/e2e_test.go:19
  starting with non-empty Directory
  /go/odo_1/tests/e2escenarios/e2e_test.go:164
    [It] should verify developer workflow from non-empty Directory
    /go/odo_1/tests/e2escenarios/e2e_test.go:169
...
error while trying to GET "<IP_ADDRESS>:42467": Get "[http://<IP_ADDRESS>:42467":](http://<IP_ADDRESS>:42467%22/) EOF
    [odo] E0118 10:05:23.849776   12130 portforward.go:406] an error occurred forwarding 42467 -> 3000: error forwarding port 3000 to pod 04b08dc65d7d03a38fb0d94d02bf2a4652eb2e0910017dbd85d9338c899cf992, uid : port forward into network namespace "/var/run/netns/1b65695b-3aaf-4fe2-b6d0-01d61dec48da": failed to connect to localhost:3000 inside namespace 04b08dc65d7d03a38fb0d94d02bf2a4652eb2e0910017dbd85d9338c899cf992: dial tcp [::1]:3000: connect: connection refused
    [odo] E0118 10:05:23.850002   12130 portforward.go:234] lost connection to pod
    [odo]  -  Forwarding from <IP_ADDRESS>:44475 -> 3000
...

Summarizing 1 Failure:
  [FAIL] E2E Test starting with non-empty Directory [It] should verify developer workflow from non-empty Directory
  /go/odo_1/tests/e2escenarios/e2e_test.go:41

/override OpenShift-Integration-tests/OpenShift-Integration-tests
Flaky E2E test (reported in #6463 )

/test v4.11-integration-e2e
Tests failing due to user no longer being authenticated.
    Running oc with args [oc get pods -n cmd-describe-list-binding-test581wmo -o jsonpath='{range .items[*]}{.metadata.name}'] and odo env: []
    [oc] error: You must be logged in to the server (Unauthorized)
...
    Running oc with args [oc get pods --namespace cmd-dev-test458zqh --selector=component=zumcbf -o jsonpath={.items[*].metadata.name}] and odo env: []
    [oc] zumcbf-app-6bff8dfbb9-zphp4Running oc with args [oc exec zumcbf-app-6bff8dfbb9-zphp4 --namespace cmd-dev-test458zqh -c runtime -- cat /projects/server.js] and odo env: []
    [odo] Error connecting to the cluster. Please log in again
    [odo]
    [odo] I0118 13:57:42.390774   34324 watch.go:465] Error from Push: watch command was unable to push component: unable to determine if component zumcbf exists: unable to get Deployments for the selector: app.kubernetes.io/instance=zumcbf,app.kubernetes.io/managed-by=odo,app.kubernetes.io/part-of=app,component=zumcbf,odo.dev/mode=Dev: unable to list Deployments: Unauthorized
    [oc] error: You must be logged in to the server (Unauthorized)
    [odo] I0118 13:57:42.393747   34324 backo.go:23] wait for 100ms
    [odo] read: read /dev/stdin: input/output error
    [odo] Cleaning resources, please wait
...


Fixes typos in the FAQ documentation

Addresses a few typos found on the FAQ documentation

Nice, thanks a lot, @eric-weaver.
Btw., seeing your GH organizations, I remember reading about a meet-up at JW Player in New York earlier this year where supposedly Debezium was discussed. Do you happen to know by any chance whether there's a recording and/or slides of this available online somewhere? Thanks!

Hey @gunnarmorling, you're correct! Actually I was a co-presenter of that meet-up you're referring to. I'm working on getting a publicly accessible copy of presentation for you

Ha, that'd be excellent!

@gunnarmorling Sorry about the delay, but had to wait on this blog post (also references our Debezium usage) https://medium.com/jw-player-engineering/southpaw-176aea5f4583.
Links can be found within the blog post, but here's the link to the presentation video and slides
https://content.jwplatform.com/previews/im6UlLR3-mA0mA2gk
https://www.slideshare.net/jwplayer/polylog-a-logbased-architecture-for-distributed-systems-124997666

Ah, very nice, thanks for sharing! Added this to my "to read" list,
denormalization is a super-interesting topic to many Debezium users.


Not specifying a group's command exits with code 0

When a group is created with multiple commands, but the script is called without any commands, the exit code is 0. It looks like this line just needs to be changed to have an exit code. But it's not clear if ctx.fail() should be used instead.
Example Code
import click

@click.group()
def cli():
    print("in group")

@cli.command()
def foo():
    print("foo")

@cli.command()
def bar():
    print("bar")

if __name__ == "__main__":
    print("before group")
    cli()

Expected Behavior
A non-zero exit code.
Actual Behavior
$ python click_poc.py
before group
Usage: click_poc.py [OPTIONS] COMMAND [ARGS]...

Options:
  --help  Show this message and exit.

Commands:
  bar
  foo
$ echo $?
0

Environment

Python version: Python 3.8.0
Click version: Click==7.0

it looks like ctx.fail will also dump a stacktrace but I think most users would expect this case to print usage and return non-zero.
I made a PR to just add an exit code 1 to that line here: https://github.com/pallets/click/pull/1489

Duplicate of #1394


Additional games

Hello, i have tested and successfully added some more games to the retropie ports by manual adding shortcuts to the ports menu the games are:
lgeneral
lmarbles
lbreakout2
simutrans
tuxpuck
tower toppler (toppler)
freecraft
OpenArena
They all working fine can you add them to the extras/experimental menu please?

Send me a pull request with your installation scripts.

I don`t really know how to use the pull request all i did was that:
sudo apt get install lgeneral lmarbles lbreakout2 simutrans tuxpuck toppler freecraft openrena
After i created folders with the scripts in the ports folder of retropie home/pi/retropie/ports
eg: a simutrans folder with a script start.sh inside the contents of the script are only the name of the game "simutrans" and the game shows in retropie in the port section like this, and also i make the script executable with the chmod command.
for the openarena the process was a little different:
sudo apt-get install openarena
wget http://www.berryterminal.com/dl/ioquake3_99.1.36-rpi01_armhf.deb
sudo dpkg -i ./ioquake3_99.1.36-rpi01_armhf.deb
And i created a folder "openarena" in the ports as normal and a Start.sh script inside with the command:
#!/bin/bash
sudo /usr/games/openarena
and of course make the script executable
That`s all i did for the 8 games i hope you can add them
ps i also installed the sound pack for freeciv since the game does not have it by default
sudo apt-get install freeciv-sound
i will appreciate if you can add all this to your extra scripts.
Thank you


not clear on how to release?

Hi @webpro, thanks for this repo 👍
I've started using it for some of my projects and thought I had it figured out but the last couple of times I have had my CI not create a release.
I presumed that release it bumped up the version number each time but now I'm not sure.
From looking at your projects that use release-it. I can't glean what to put into the comment message to do a release.

I'm running a Gatsby blog with release-it in the Travis CI, here is my .release-it.json:
{
  "src": {
    "tagName": "v%s",
    "push": false
  },
  "github": {
    "release": true
  },
  "npm":{
    "publish": false
  }
}

and the .travis.yml:
sudo: false

language: node_js

cache:
  directories:
    - node_modules

notifications:
  email: false

node_js:
  - '9'

before_script:
  - npm prune

script:
  - npm i -g now@canary
  - npm run clean
  - npm run build
  - npm run deploy

after_script:
  - if [ "$TRAVIS_BRANCH" = "development" ]; then npm run alias:dev; fi
  - if [ "$TRAVIS_BRANCH" = "master" ]; then npm run alias:prod; fi
  - if [ "$TRAVIS_BRANCH" = "master" ]; then npm run release; fi
  - npm run cleanup

env:
global:
    secure: removed

Closing this due to inactivity.

Yeah, I'm still not clear on how to use it to be honest.
I'll reopen when I get round to trying to use it again.
Thanks

If you give a clear breakdown of what you want to achieve, I'm happy to discuss.


Revisit guidelines for contributors

Review guidelines for contributors and lay out rules more clearly if needed.

Is this still something we need to take a closer look at, @atomicsamurai ? I have a prospect/customer who has asked for details on how they could join the frodo effort. Do we have enough for them or do we need to work it over one more time?


how to wait for the page render and then i do something and then wait for the page render,then i do something

Steps to reproduce
Tell us about your environment:

Puppeteer version:
Platform / OS version:
URLs (if applicable):

What steps will reproduce the problem?
Please include code that reproduces the issue.

What is the expected result?
What happens instead?

Questions like this should be asked on stackoverflow.


SARIF output structure is not uniform

In #35 the structure of the resulting object changed, and now for this code:
[] > test
  [] > base
    memory > x
    [self v] > n
      x.write v > @
    [self v] > m
      self.n self v > @

  [] > derived
    test.base > @
    [self v] > n
      self.m self v > @

  [] > derived_again
    test.derived > @

I got:
{"results":[{"ruleId":"AnOdin","message":"test.derived: test.derived.m (was last redefined in \"test.base\") -> test.derived.n -> test.derived.m (was last redefined in \"test.base\")"},{"message":"test.derived_again: test.derived_again.m (was last redefined in \"test.base\") -> test.derived_again.n (was last redefined in \"test.derived\") -> test.derived_again.m (was last redefined in \"test.base\")"}]}

But expect:
{"results":[{"ruleId":"AnOdin","message":"test.derived: test.derived.m (was last redefined in \"test.base\") -> test.derived.n -> test.derived.m (was last redefined in \"test.base\")"},{"ruleId":"AnOdin","message":"test.derived_again: test.derived_again.m (was last redefined in \"test.base\") -> test.derived_again.n (was last redefined in \"test.derived\") -> test.derived_again.m (was last redefined in \"test.base\")"}]}

ruleId exists only in the first element in the results array.
@yegor256 please, look

#34

@APotyomkin Will fix

@rultor release, tag is 0.4.2

@rultor release, tag is 0.4.2

@yegor256 OK, I will release it now. Please check the progress here

@rultor release, tag is 0.4.2

@yegor256 Done! FYI, the full log is here (took me 10min)

@APotyomkin try version 0.4.2

@yegor256 @andreoss thanks, it works


Xamarin.Firebase.iOS.Crashlytics.targets compilation issue when calling Fabric script

After adding the iOS Crashlytics 3.10.3 package, compilation fails when it's trying to execute the script to upload symbols (I simplified paths but they're all correct):
[...]/packages/Xamarin.Firebase.iOS.Crashlytics.3.10.3/build/Xamarin.Firebase.iOS.Crashlytics.targets(3,3):
Error MSB3073: The command "[...]/Library/Caches/XamarinBuildDownload/Fbrc-1.7.8/upload-symbols -gsp [...]/GoogleService-Info.plist -p ios [...].app.dSYM" exited with code 132.

It fails because the Fbrc-1.7.8 folder is missing. It seems that all the items from the package targets ItemGroup are skipped, as the FCrshlytcs-3.10.3 folder is also missing.
The ItemGroup condition is ('$(OutputType)'!='Library' OR '$(IsAppExtension)'=='True'), which should be satisfied for a regular app project, no?
For reference, here's my VS environment:
=== Visual Studio Community 2017 for Mac ===

Version 7.6.3 (build 1)
Installation UUID: 593a684f-9af5-490e-ab98-0f74605c5bc7
Runtime:
	Mono <IP_ADDRESS>1 (2018-02/4fe3280bba1) (64-bit)
	GTK+ 2.24.23 (Raleigh theme)
	Xamarin.Mac <IP_ADDRESS> (master / eeaeb7e6)

	Package version: 512000301

=== NuGet ===

Version: <IP_ADDRESS>45

=== .NET Core ===

Runtime: /usr/local/share/dotnet/dotnet
Runtime Versions:
	2.1.2
	2.1.1
	2.0.5
	2.0.0
	1.1.1
	1.0.4
SDK: /usr/local/share/dotnet/sdk/2.1.302/Sdks
SDK Versions:
	2.1.302
	2.1.301
	2.1.4
	2.0.0
	1.0.3
MSBuild SDKs: /Library/Frameworks/Mono.framework/Versions/5.12.0/lib/mono/msbuild/15.0/bin/Sdks

=== Xamarin.Profiler ===

Version: 1.6.3
Location: /Applications/Xamarin Profiler.app/Contents/MacOS/Xamarin Profiler

=== Apple Developer Tools ===

Xcode 9.4.1 (14161)
Build 9F2000

=== Xamarin.Mac ===

Version: <IP_ADDRESS> (Visual Studio Community)
Hash: 1a6e2786
Branch:
Build date: 2018-08-28 00:12:06-0400

=== Xamarin.iOS ===

Version: <IP_ADDRESS> (Visual Studio Community)
Hash: 1a6e2786
Branch: HEAD
Build date: 2018-08-28 00:12:06-0400

=== Xamarin.Android ===

Version: <IP_ADDRESS> (Visual Studio Community)
Android SDK: /Users/thibaultdeckers/Library/Developer/Xamarin/android-sdk-macosx
	Supported Android versions:
		4.4 (API level 19)
		6.0 (API level 23)
		7.0 (API level 24)
		7.1 (API level 25)
		8.0 (API level 26)
		8.1 (API level 27)

SDK Tools Version: 26.1.1
SDK Platform Tools Version: 28.0.0
SDK Build Tools Version: 25.0.1

Java SDK: /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

Android Designer EPL code available here:
https://github.com/xamarin/AndroidDesigner.EPL

=== Xamarin Inspector ===

Version: 1.4.3
Hash: db27525
Branch: 1.4-release
Build date: Mon, 09 Jul 2018 21:20:18 GMT
Client compatibility: 1

=== Build Information ===

Release ID: 706030001
Git revision: 18a828b090fb6d2cfb0b3576cd6d7eb764f29753
Build date: 2018-08-30 15:12:59+00
Build branch: release-7.6
Xamarin extensions: f4aee57d7b72fa4be6b6d585ac90d614f20fa426

=== Operating System ===

Mac OS X 10.13.6
Darwin 17.7.0 Darwin Kernel Version 17.7.0
    Thu Jun 21 22:53:14 PDT 2018
    root:xnu-4570.71.2~1/RELEASE_X86_64 x86_64

=== Enabled user installed extensions ===

Internet of Things (IoT) development (Preview) 7.5.3

Hi @deckerst! Can you, please, double check that the Xamarin.Build.Download NuGet is referenced to your app project?

Np :)
Hmm... weird.

The ItemGroup condition is ('$(OutputType)'!='Library' OR '$(IsAppExtension)'=='True'), which should be satisfied for a regular app project, no?

Yes, it should work for a regular app, which project did you create for your app?
Please, try one or all of the following suggestions:

Re-add the Xamarin.Build.Download NuGet package
Delete [...]/Library/Caches/XamarinBuildDownload/ folder and build again.
Remove bin and obj folders and build again.
Download and try the Crashlytics sample and check if the packages were downloaded on the XBD cache folder

If none of this helps, please, try to create a test case of this so I can work on it.
Thanks in advance!
Israel Soto.

My solution has the following projects:

BpuCommon.Core (.NET Standard project, shared with other app)
BpuCommon.Xamarin.Droid (X-Android project, shared with other app)
BpuCommon.Xamarin.Forms (.NET Standard project, shared with other app)
BpuCommon.Xamarin.iOS (X-iOS project, shared with other app)
Hermes.Droid (deployable X-Android project)
Hermes.Forms (.NET Standard project)
Hermes.iOS (deployable X-iOS project)

I tried your suggestions 1~3, to no avail. I'll try the sample project and report back.
Thanks for the help.

Regarding the Crashlytics sample, I tried to load the solution you linked, but the package Crashlytics <IP_ADDRESS> couldn't be restored (this version is not available even in prerelease). Anyway, I fetched the sample solution from the current version 3.10.3, and it successfully downloaded Fbrc-1.7.8 and FCrshlytcs-3.10.3 as expected.
I'll try to come up with a test case.

After investigation, it seems the project structure and dependencies is critical.
"BpuCommon.Xamarin.iOS" is a "Xamarin iOS Class Library" project, and "Hermes.iOS" is a "Xamarin iOS App" project. My App project depends on the Library project. And both projects depend on the Crashlytics package.
When I remove the dependency from the Library project to the Crashlytics package the build succeeds, but with that particular dependency, the whole solution build fails as I described before, despite the fact that we're also building an App project.
For my particular case, I can work around this by removing the dependency from my common Library and duplicate some code in each app, but I think it would be nice if this kind of solution structure was handled smoothly.

@deckerst We decided to implement that conditional because the Firebase client SDKs (for Android, iOS, and Web) are meant to be used in end-user applications.
Anyway, you can always modify the Crashlytics .targets file or add your own MSBuild task that downloads the Fabric stuff.
Hope this helps.
I'm closing this right now, feel free to reopen it anytime.
Best!
Israel Soto.


Send tags to Publishing API on publish

See https://trello.com/c/mtYIToz9/527-whitehall-migration-send-topics-to-publishing-api-as-links
Part of: https://trello.com/c/5dGZjzlm/541-sub-epic-migrate-the-tagging-in-whitehall
This first PR is to have the topics currently tagged in Whitehall to be sent to publishing-api on publishing.

To those following along at home:
It's important to note that the links for CaseStudy are currently sent when the user saves a draft item.
This means that if the user changes the document_collections (the "Part of:" thing) a case study belongs to, this will be reflected on the draft-frontend and live-frontend immediately.
This PR will change the behaviour to only push links on publish, so that until the draft is published, both the draft-frontend and live-frontend will not show the new document_collections. We think this is the correct behaviour. This slightly odd workflow will be fixed when we separate the edit-form of a document in a content- and tagging tab.

@bishboria nice work!
Would it be possible to make the links for each document_type explicit? Perhaps by specifying the links we want to send in each presenter?
We could get rid of the super.slice & super.except and it may be easier to see the presenters we've missed. For example, are we missing links for StatisticsAnnouncements here?

@tijmenb using super.slice and super.except was to get rid of the duplication present in the presenters.
I designed the code to do the mappings in one place now, LinkExtractor, and each presenter chooses which of those to use.
StatisticsAnnouncement presenter wasn't done by me, and is new as of a few days ago, so that's why I missed it…

@bishboria it's quite hard to figure out which links are being sent now.
I've found this by checking for the links method and following the superclases:
CaseStudy: super.except(:policy_areas, :statistical_data_set_documents, :topics)
ComingSoon: all
Edition: all
Placeholder: none
PolicyAreaPlaceholder: none
StatisticsAnnouncement: only organisations, policy_areas
TakePart: super.slice(:lead_organisations, :policy_areas, :topics)
TopicalEventAboutPage: only parent
TopicalEvent: none
WorkingGroup: all

Could be wrong, but I think we'd like to send more links for Placeholder, PolicyAreaPlaceholder StatisticsAnnouncement, TopicalEventAboutPage and TopicalEvent.

@tijmenb oh, schema tests complain if anything contains links that it shouldn't... It was the easy way to see what presenters provided too much data.

In some cases you've chosen to override links and in others filter_links. What is the difference?

@tijmenb inconsistent inheritance choices means that some need to have the links method defined, but mostly not.

:+1: good to merge.

:+1: merge away! :sparkles:


Select a branching strategy link is broken

This article references  "select a branching strategy" pointing at https://visualstudio.com/articles/git-branching-guidance
Apparently, the target link is broken.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: d05453e8-ded7-b09d-26c0-78906b16a67c
Version Independent ID: 195d2303-45f4-e074-b234-67235219dc5a
Content: Plan your migration to Git - Azure DevOps
Content Source: https://mseng.visualstudio.com/DefaultCollection/TechnicalContent/_git/devops-learn-pr?path=%2fdocs%2fgit%2fcentralized-to-git.md&version=GBlive&_a=contents
Product: devops
Git Login: samgu
Microsoft Alias: samgu

@mloskot Thanks for letting us know, I just fixed this and it should be live later today. Here is the updated link: https://docs.microsoft.com/en-us/azure/devops/repos/git/git-branching-guidance?view=vsts

@steved0x Thanks for the prompt fix


Fixes Hungarian phone number format

There are issues with Hungarian geographic phone numbers (2+6), because phony wants to parse them as 2+7. In Hungary every phone number goes with 2 digits area code which is not a local number of Budapest and the length of these number varies. National geographic numbers includes 2+6 digits, mobile and voip numbers are 2+7 length and there is a special business number with 2+10 format.
I added an example for each type of phone number in the plausibility.md file.
The source of these phone number formats is the Hungarian Media and Info-communication Authority: http://webpub-ext.nmhh.hu/aga/foldr/DoIndexAction.do

Coverage remained the same at 98.1% when pulling 60a91bc01ba7411b60837cf19ef8b5d7ff6cfdc1 on Nucc:master into fd8bdc116e0523331e74c49f159f1ff5439e22ea on floere:master.

Coverage remained the same at 98.1% when pulling 2a67014a3230e94dc7cbcf4372ad58a2efd641b2 on Nucc:master into fd8bdc116e0523331e74c49f159f1ff5439e22ea on floere:master.

@Nucc Thanks very much for this great (code+spec+source) PR! 🎉 Much appreciated 😊 Released in 2.15.40 🚀


Add salesforce apex support

Apex Language documentation:
Apex Developer Guide
Uses aheber/tree-sitter-sfapex.
Fix #578
Tested with:

https://github.com/cirruspath/stripeforce
https://github.com/box/box-salesforce-sdk
https://github.com/trailheadapps/apex-recipes
and some private repositories...

@Wilfred I've updated the pull request with the latest version on master which solved the compilation error.
Please, let me know if you need me to do anything else on this PR.

Works perfectly! Thanks for the PR :)

My pleasure!
The contributing doc is very well written so all the credits should be yours and the rest of the team!


Possibility to wait until kafka broker is completely stopped

Is it possible to call awaitShutdown on KafkaServer to ensure that broker is completely stopped ?

Hi! Thanks for the suggestion - is it currently misbehaving?

Yes, sometimes it fails when several tests that launching Kafka are run.

If you could provide me the stack trace I'll try to look at it.
On Mon, 17 Oct 2016 at 08:17, Evgeny Shepelyuk<EMAIL_ADDRESS>wrote:

Yes, sometimes it fails when several tests that launching Kafka are run.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/manub/scalatest-embedded-kafka/issues/38#issuecomment-254130426,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAoarmtx98Lc-H0SOSbnzDFqCyNNKXXdks5q0yEbgaJpZM4KTpq0
.

Well, stack traces are different and now we don't have them to provide.

I see. I'll have a look at this but it may take me a bit as I'm busy with other projects as well. If you want, you could submit a PR!

Thanks for pointing this out @eshepelyuk !

Releasing 0.8.1 now.


[BUG] remove non-standard score function in BaseGridSearch

This PR removes the non-standard score function in BaseGridSearch which overrides the default score from BaseForecaster, and seems to cause interface non-compliance with respect to the specification of score, as described in https://github.com/alan-turing-institute/sktime/issues/2751.
Before we merge, we should understand why this was there in the first place, as discussed in #2751.

@fkiraly no I think this was "legacy" code

wait I think now it can only score with default mean_absolute_percentage_error?

I think that's what score is always supposed to do? For sklearn compatibility, it has to default to one particular metric always afaik, in the case of forecasters the MAPE

ah right, there is 2 score functionalities

I dont have a strong opinion on this PR then

seems to introduce interface non-conformance, since score is always assumed to be MAPE elsewhere, so would be in favour because of making the interface conformant.


Load serum_dex dependency with a commit ref

Problem
Recently the mango fork of serum_dex was merged with the upstream version 0.5.5.
The main mango program is importing the serum_dex package with version 0.4.0 from a git repository.
If you delete Cargo.lock, the build will fail with
cargo build-bpf
Failed to obtain package metadata: `cargo metadata` exited with an error:     Updating git repository `https://github.com/blockworks-foundation/serum-dex.git`
error: failed to select a version for the requirement `serum_dex = "^0.4.0"`
candidate versions found which didn't match: 0.5.5
location searched: Git repository https://github.com/blockworks-foundation/serum-dex.git
required by package `mango v3.4.3 (/Users/jakob/Projects/crypto/blockworks-foundation/mango-v3/program)`

because while Cargo.toml specifies version 0.4.0, when importing from a git repo, the latest 0.5.5 from upstream is used.
Fix
Build with serum_dex 0.5.5 is breaking
error[E0063]: missing field `max_ts` in initializer of `NewOrderInstructionV3`
    --> program/src/instruction.rs:1621:10
     |
1621 |     Some(serum_dex::instruction::NewOrderInstructionV3 {
     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `max_ts`

error[E0061]: this function takes 1 argument but 0 arguments were supplied
    --> program/src/state.rs:2302:11
     |
2302 |     state.check_flags()?;
     |           ^^^^^^^^^^^- supplied 0 arguments
     |           |
     |           expected 1 argument
     |
note: associated function defined here
    --> /Users/jakob/.cargo/git/checkouts/serum-dex-ac3ff2707f895b6e/7f55a5e/dex/src/state.rs:440:12
     |
440  |     pub fn check_flags(&self, allow_disabled: bool) -> DexResult {

so as a quick fix, I removed the version from the serum_dex and fixated it to the commit before the upstream merge.

I just merged fixes to main which makes 0.5.5 work well. We can do git ref as well if you redo the PR with new serum dex

Ok, I changed it, I think this is still preferable, as the version tags are irrelevant for crates imported from git, and just confuse Cargo. Also when you eventually update serum_dex again, we can avoid this situation.

@acamill Can you make it so UXD composability tests don't fail anymore?

@acamill Can you make it so UXD composability tests don't fail anymore?

Will look into it now

Secrets are not passed to workflows that are triggered by a pull request from a fork
@dafyddd issue seems to be that secret won't work for fork PR.

End of may we will have another audit that will yield having the place_perp_order_v2 on mainnet (Still using some derported logic).
Once this is reached, the likelyness of breaking something will be very low, and changes to mangoMarketsV3 shouldn't be plentyfull either with V4 in the work.
I propose to remove the CI until we open source in the coming month, and in the meantime of update the program to use place_perp_order_v2, we can communicate on changes.


host/cli: Add --filename option to collect-debug-info

Closes #3732

Ready for review. I dropped removing the temp path on failures as we probably don't want that behavior.


how could I download it?

Excuse this , I've a little question here. When I finish building v8 with this, How could I download it from the actions? Can I use actions like remote desktop so that I could zip source code and upload them to some cloud?

You'll need to modify the action to use something like this: https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts
I created this repo as a sort of experiment. I'm not able to offer end-user-support for it.


Create a calculator popup widget so user can do math in-place

Might be a custom datatype

Note that the existing code does an eval() on a text input that the user has control over, which is not very secure. So we shouldn't use this literal code.
Also idea: use a Bootstrap 5 modal to contain the calculator. See:
https://getbootstrap.com/docs/5.3/components/modal/#modal-components

Some quick ideas: https://chat.openai.com/share/251096a4-15b5-4fb1-9347-64bf12970776


WiP: support specifying objects visible by the lookup function

As suggested in https://github.com/stackrox/stackrox/pull/3417#pullrequestreview-1141488207
TODO:

[ ] Requires https://github.com/helm/helm/pull/12617 to work.
[ ] Check whether list (lookup with empty name) works
[ ] Unit tests
[ ] Documentation

Superseded by https://github.com/stackrox/helmtest/pull/82


liquid, markdown table problem

I would like to have a table of authors that in the _data/authos
i tried the following
|Title  |Link  |
|---|---|
{% for people in site.data.authors -%}
{% for person in people -%}
|{{ person.name }}  |[Click Here]({{ person.links[1].url }})  |
{% endfor %}
{%- endfor -%}

it gives me this

Notably, whenever it render a person.name or person.url, it renden one extra Click here which is pointing to the current page.. it is confusing.
so I try another way
| name | b |
| ---- | --- |{% for people in site.data.authors %}{% for person in people %}
| {{ person.name }} | {{ person.bio }} |{% endfor %}{% endfor %}

but it gives me this..

which has a lot of empty row..
so i tried another again:
{% for people in site.data.authors -%}
  {% for person in people %}
    {{ person.name }}
  {% endfor %}
{% endfor %}

it give me this:

it is a code block and bunch of newlines that i never intended.
any idea? Thanks.

I’ve never tried Liquid in Markdown link this so. It sure. If I had to guess the spacing from the loops might be messing with how Markdown interprets things.
You’ll probably have better luck doing a standard HTML table.
As this isn’t theme specific I’m going to close the issue. I’d suggest asking on the Jekyll Talk forum instead, it’s good for these sorts of inquires.

sorry for abusing the system.
i found the answer. My authors.yml takes the following format:
Alias:
  name: "name"
  bio: bio
  avatar: "url"
  links:
    - label: "Email"
      icon: "fas fa-fw fa-envelope-square"
      url<EMAIL_ADDRESS>    - label: "Website"
      icon: "fas fa-fw fa-link"
      url: "www.website.com"

Thus, the 1st forloop return an array with 2 items. The 1st is the alias the 2nd is the json. The 1st one is the culprit for all these strange behaviours (e.g empty row). So the answer is the following:
title|title|title
:--:|:--:|:--:
{% for people in site.data.authors %}
{%- assign person = people[1] -%}
{{ person.name }}|{{ person.name }}|{{ person.name }}
{% endfor %}

Thanks.


stuck in Waiting for QR

I'm using the echo demo as it is. It opened the firefox windonws, I scan the QR and it is stuck in waiting for QR.
Code for reference:

import time
from webwhatsapi import WhatsAPIDriver
from webwhatsapi.objects.message import Message

driver = WhatsAPIDriver()
print("Waiting for QR")
driver.wait_for_login()

print("Bot started")

while True:
    time.sleep(3)
    print("Checking for more messages")
    for contact in driver.get_unread():
        for message in contact.messages:
            if isinstance(message, Message):  # Currently works for text messages only.
                contact.chat.send_message(message.content)

Same here. It appears Whatsapp Web has changed the layout of its page.
Try changing the selector of mainPage (line 78, init.py) to "#app .two"
If it works I will send a merge request

Same here. It appears Whatsapp Web has changed the layout of its page.
Try changing the selector of mainPage (line 78, init.py) to "#app .two"
If it works I will send a merge request

Solution worked. But another problem appears:
 Traceback (most recent call last):
  File "sample/remote.py", line 30, in <module>
    for contact in driver.get_unread():
  File "/usr/local/lib/python3.8/site-packages/webwhatsapi/__init__.py", line 411, in get_unread
    raw_message_groups = self.wapi_functions.getUnreadMessages(
  File "/usr/local/lib/python3.8/site-packages/webwhatsapi/wapi_js_wrapper.py", line 44, in __getattr__
    wapi_functions = dir(self)
  File "/usr/local/lib/python3.8/site-packages/webwhatsapi/wapi_js_wrapper.py", line 72, in __dir__
    self.driver.execute_script(script.read())
  File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 634, in execute_script
    return self.execute(command, {
  File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.JavascriptException: Message: TypeError: window.Store.Msg is undefined

Apply all changes from pull request #888.

After applying PR #888  changes I'm getting new errors:
untu@ip-xxxxx-xxx:~/whatsapp/WebWhatsapp-Wrapper$ python3.7
Python 3.7.8 (default, Jun 29 2020, 05:46:05)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.

from webwhatsapi import WhatsAPIDriver
driver = WhatsAPIDriver(username="mkhase")
driver.get_status()
'LoggedIn'
driver.get_unread()

Traceback (most recent call last):
File "", line 1, in
File "/home/ubuntu/whatsapp/WebWhatsapp-Wrapper/webwhatsapi/init.py", line 411, in get_unread
raw_message_groups = self.wapi_functions.getUnreadMessages(
File "/home/ubuntu/whatsapp/WebWhatsapp-Wrapper/webwhatsapi/wapi_js_wrapper.py", line 44, in getattr
wapi_functions = dir(self)
File "/home/ubuntu/whatsapp/WebWhatsapp-Wrapper/webwhatsapi/wapi_js_wrapper.py", line 74, in dir
result = self.driver.execute_script("return window.WAPI")
File "/home/ubuntu/.local/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 636, in execute_script
'args': converted_args})['value']
File "/home/ubuntu/.local/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/home/ubuntu/.local/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.JavascriptException: Message: Cyclic object value
Anyone else got this error? (In older threads the recommendation was to downgrade to firefox 61 which didn't work for me at all).


leancoder 0.1 - Arithmetic

[ ] Figure out representation of state, action

[ ]

[ ]

Use one argument functions
x+1, x+2... x^2 x*1 (all operations with all digits)

How do we represent numbers

Represent input as n x 11 matrix (maybe 10) of numbers, run through a LSTM model? Write function to work correctly on matrices

I think the simples action space would be:
+1
+x
*x
/x
Should give pretty diverse functions. Take for example:
x - +1 -> x+1 - *x  -> x * (x+1) - +1 -> x^2 + x + 1

On second thought this state isn't really interesting. I feel like we should include structure changes:
+1
*x
reverse
sort
This way we get unique functions that:

Keep the numbers INT,
Interestingly swap up the structure of the input,
Should be more interesting for NLP system


If being(ssid, pass) fails, fallback to EEPROM

Nah... call begin() and if it doesn't return WL_CONNECTED, show the menu, if you want.