feat(Barchart): reduced verbosity of barchart creation

BREAKING_CHANGE: Due to introduction of IntoInterator in BarGroup, the bars parameter does not accept references anymore
Wasn't able to get it fully working without breaking changes, open for suggestions if that is an issue.
Resolves #683

Close to resign commits...


Upgrade terraform-provider-aws to v5.65.0

Release details: https://github.com/hashicorp/terraform-provider-aws/releases/tag/v5.65.0

Fixed in https://github.com/pulumi/pulumi-aws/pull/4425


Disable advanced freemarker features

many open source projects depend on Freemarker. They initialize Freemarker by calling the default Configuration constructor. e.g. JODReports.
The default constructor - new Configuration() has built API enabled and can execute commands and can create some new instances.
This can cause a critical security issue by default.
This code change allows disabling those feature by calling
Configuration.setDefaultNewBuiltinClassResolver(TemplateClassResolver.ALLOWS_NOTHING_RESOLVER);
Configuration.setDefaultAPIBuiltinEnabled(false);
Configuration.setExternalCommandsAllowed(false);
Note those need to run before any new Configuration() code.

If you haven't, please read this first:
https://freemarker.apache.org/docs/app_faq.html#faq_template_uploading_security
As you see, if you can't trust template authors (which is not the situation FreeMarker was originally designed for - think about a better alternative to 2000-s JSP, where you could just have java code in your "templates"), then making templates safe is a lot more work than flipping some configuration settings, unless you are very, very lucky. The most important bit is that people want to call the "legitimate" Java API-s of the objects that were exposed to the template. I'm not talking about ?api here, but about how "generic" java objects, aka POJO-s, are normally exposed. Like in user.name (probably calls User.getName()), users.forRole('admin'), etc., you utilize that. Then, they will also access the objects that these methods return, and so on, potentially a huge graph of objects. Plus, even when the class of a deliberately exposed POJO is developed, as these domain classes are usually not just for the templates, the developer doesn't constantly consider that any public method they adds will be callable from templates. So, I think, in most real world scenarios, it's not feasible to keep API access under control without whitelisting. The whitelist will be specific to the application, and, of course, it's far from a boolean switch. It's not possible to make a simple safety on/off switch.
Regarding frameworks that doesn't let you configure FreeMarker, yet doesn't care to configure it properly itself. What can I say... they just didn't care then. In any real world project, you will want to configure FreeMarker, even if the security aspect doesn't matter. Given how tricky fencing malicious template authors is (see linked FAQ entry), we have no much chance in forcing security on such a framework.
What can we still do? If we go for extremes, then, we could introduce some static method where you can set up a callback, and where you can modify the new Configuration before it's returned from the constructor. But that's a horrible thing to do. That hook will affect all libraries that internally use FreeMarker (in case there happens to be more in the same application), not just the one you intended to target. You could target by look into the stack trace, or via thread local storage, if you are lucky though. You also can't know what settings will the framework set after the constructor, and hence, after your callback. Sure, then we could have an API to capture those setter calls as well, so you can override them... now that starts to be really awkward. Also it can be far from obvious for others, that these hooks exist somewhere, causing these mysterious changes, which can cause lot of confusion. So, I really hate the idea, but that's the most I can imagine for "forcing" security.
So, I'm afraid, realistically, the framework authors, who "own" the Configuration, has to care about security, and mostly, about the safety of the data-model. If they they do care about the data-model, probably they will also care about configuring the other aspects (disabling this and that), as that's really the easier part. If they try to do that, and have difficulties, then, like in the recent versions, we may add features to help there. But they have to "opt in".

Hi ddekany, thanks for your detailed response. we already sanitized the templates and used a hardcoded FreeMarker version which has those advanced features removed. it doesn't allow executing external commands and initializing new instances. We just hope the official Freemarker itself can have a solution to disable those features even other frameworks didn't think or care about security at that time. You don't need to force security for other frameworks authors. They may stop maintaining those as you can image. This pull request just gives the end-user the chance to disable those features simply although This pull request is not perfect. In the meantime, I will review those frameworks we used.  thanks.

Just to restate the problem. Official FreeMarker does have features to disable these on the level of the Configuration object. Your problem is that sometimes you don't have control over the Configuration instance. So, you started rolling your own in-house FreeMarker fork, that just doesn't have some dangerous features, and what you need is a way to achieve the same without actual forking.
If we just have some static method, where you can fiddle with the Configuration instance, that perhaps can be too easily used for attacks. If others manage to call that static method (yes, then you already have some big problem, but still), they can make a previously secure system insecure. Also, it's not always easy to guarantee that your static method call happens before the relevant Configuration instance was created. Such uncertainty is especially undesirable when security depends on it. So maybe, we rather should have class with a fixed, predefined name, let's say org.apache.freemarker.monkeypatch.FeatureDisabler, and that's where you can do your thing. Because it's a documented, fixed place, it's also easier to figure out if such magic happens. The only problem is that as the presence of this calls is optional in FreeMarker, the system will still run if somehow it's not there anymore. For that though, you can refer to FeatureDisabler in your application own startup code, so your application will fail if that class is gone for some reason.
Though I'm still not sure how do you intend to ensure that the data-model content itself is safe. Well, you might as well specify a whitelist in org.apache.freemarker.monkeypatch, though I'm not sure how realistic that is.

you are right.
The solution you mentioned is better than that pull request.
The data model content in our application is a hash map. Its keys are fixed strings. The template doesn't allow to refer to other keys. Will this data model content be safe? So far combined  with the  features disabled via hard coding, our penetration tester said okay.
If we will be able to disable some features in the future official FreeMarker version via the solution you mentioned,
Will this be enough for security?
Thanks
On 20 Jun. 2020, 23:13, at 23:13, ddekany<EMAIL_ADDRESS>wrote:

Just to restate the problem. Official FreeMarker does have features to
disable these on the level of the Configuration object. Your problem
is that sometimes you don't have control over the Configuration
instance. So, you started rolling your own in-house FreeMarker fork,
that just doesn't have some dangerous features, and what you need is a
way to achieve the same without actual forking.
If we just have some static method, where you can fiddle with the
Configuration instance, that perhaps can be too easily used for
attacks. If others manage to call that static method (yes, then you
already have some big problem, but still), they can make a previously
secure system insecure. Also, it's not always easy to guarantee that
your static method call happens before the relevant Configuration
instance was created. Such uncertainty is especially undesirable when
security depends on it. So maybe, we rather should have class with a
fixed, predefined name, let's say
org.apache.freemarker.monkeypatch.FeatureDisabler, and that's where
you can do your thing. Because it's a documented, fixed place, it's
also easier to figure out if such magic happens. The only problem is
that as the presence of this calls is optional in FreeMarker, the
system will still run if somehow it's not there anymore. For that
though, you can refer to FeatureDisabler in your application own
startup code, so your application will fail if that class is gone for
some reason.
Though I'm still not sure how do you intend to ensure that the
data-model content itself is safe. Well, you might as well specify a
whitelist in org.apache.freemarker.monkeypatch, though I'm not sure
how realistic that is.
--
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/apache/freemarker/pull/68#issuecomment-646993026

BTW you can view the hardcoded version here
https://github.com/ChangdongLi/freemarker/commit/99d7fa016d0d5677620b5d189727519175aaf153
Best Regards,
Danny
On Sun, 21 Jun 2020 at 00:27, Danny Li<EMAIL_ADDRESS>wrote:

you are right.
The solution you mentioned is better than that pull request.
The data model content in our application is a hash map. Its keys are
fixed strings. The template doesn't allow to refer to other keys. Will this
data model content be safe? So far combined  with the  features disabled
via hard coding, our penetration tester said okay.
If we will be able to disable some features in the future official
FreeMarker version via the solution you mentioned,
Will this be enough for security?
Thanks
On 20 Jun. 2020, at 23:13, ddekany<EMAIL_ADDRESS>wrote:

Just to restate the problem. Official FreeMarker does have features to
disable these on the level of the Configuration object. Your problem is
that sometimes you don't have control over the Configuration instance.
So, you started rolling your own in-house FreeMarker fork, that just
doesn't have some dangerous features, and what you need is a way to achieve
the same without actual forking.
If we just have some static method, where you can fiddle with the
Configuration instance, that perhaps can be too easily used for attacks.
If others manage to call that static method (yes, then you already have
some big problem, but still), they can make a previously secure system
insecure. Also, it's not always easy to guarantee that your static method
call happens before the relevant Configuration instance was created.
Such uncertainty is especially undesirable when security depends on it. So
maybe, we rather should have class with a fixed, predefined name, let's say
org.apache.freemarker.monkeypatch.FeatureDisabler, and that's where you
can do your thing. Because it's a documented, fixed place, it's also easier
to figure out if such magic happens. The only problem is that as the
presence of this calls is optional in FreeMarker, the system will still run
if somehow it's not there anymore. For that though, you can refer to
FeatureDisabler in your application own startup code, so your
application will fail if that class is gone for some reason.
Though I'm still not sure how do you intend to ensure that the data-model
content itself is safe. Well, you might as well specify a whitelist in
org.apache.freemarker.monkeypatch, though I'm not sure how realistic
that is.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/apache/freemarker/pull/68#issuecomment-646993026,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AANACRXVK4NDAKSPB2QWXYTRXSYXJANCNFSM4OCN6PFA
.

Depends on what kind of values you have in that HashMap. If they are maps/lists/strings/number/boolean/dates, then it should be safe as far as the model is concerned. (Normally, if you don't intend to expose POJO-s, you should set config.objectWrapper to a SimpleObjectWrapper.) Also note that .locale_object is a POJO that's always exposed, though I'm not aware of attack vectors there, assuming FreeMarker is  up to date (or has a properly restricting ObjectWrapper). Other than that, TemplateLoader-s can be a problem, as they are accessible through #include/#import, and DoS attacks (see these in the linked FAQ entry).
As of your version, Execute can't be obtained since ?new is disabled. But, I guess you still prefer disabling these models, and then disable ObjectConstructor should be disabled as well.

Thanks. In our application, the values are strings.I will try to harden the code as you suggested.
BTW our penetration tester followed
https://ackcent.com/blog/in-depth-freemarker-template-injection/
Maybe some features could be disabled by default in the future FreeMarker
On 21 Jun. 2020, 01:53, at 01:53, ddekany<EMAIL_ADDRESS>wrote:

Depends on what kind of values you have in that HashMap. If they are
maps/lists/strings/number/boolean/dates, then it should be safe as far
as the model is concerned. (Normally, if you don't intend to expose
POJO-s, you should set config.objectWrapper to a
SimpleObjectWrapper.) Also note that .locale_object is a POJO
that's always exposed, though I'm not aware of attack vectors there,
assuming FreeMarker is  up to date (or has a properly restricting
ObjectWrapper). Other than that, TemplateLoader-s can be a problem,
as they are accessible through #include/#import, and DoS attacks
(see these in the linked FAQ entry).
As of your version, Execute can't be obtained since ?new is
disabled. But, I guess you still prefer disabling these models, and
then disable ObjectConstructor should be disabled as well.
--
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/apache/freemarker/pull/68#issuecomment-647012684

To be safe by default in use cases where template authors aren't trusted, the default object wrapper had to be extremely restrictive. You wouldn't be able to access anything but basic functionality of Map-s, Collection-s, arrays, numbers, booleans and dates. We couldn't expose anything about POJO-s (unless method where explicitly whitelisted, or annotated as template accessible). I'm not sure if that would make sense as a default, as it's unusable in the usage pattern that FreeMarker was originally made for. (Also as a default it would be highly backward incompatible, but that's a different topic. But it can't be on out of the box in 2.x.x for sure.)
The attacks described in said blog post doesn't work out-of-the-box on FreeMarker 2.3.30, as some key methods used there were blacklisted, as they are very unlikely to be used (and then still can be turned back on). Also, AFAIR, the whole attack there starts with a privilege escalation attack (not related to FreeMarker), so users who are not supposed to can edit templates. Anyway, I asked them to link to the relevant FAQ entry at least, to no avail.

Can we close this, or there's more to it?
Note that 2.3.30 has added MemberAccessPolicy-es, which are very useful for restricting what templates can do.

Closing this due to no further follow up.


component target names should match draw function names

We have two competing naming schemes for these 'component' functions – one is _ delimited, and the other is camelCase. I prefer camelCase because its easier to type and read.
It would be better to stick with one naming scheme going forward. Jimmy is going to re-componentize the wallet designs in Figma, so after that we can get to renaming these.

sounds good!


feat(plugin): add setup to rspack plugin

[x] I have read the contribution documentation for this project.
[x] I agree to follow the code of conduct that this project follows, as appropriate.
[ ] The changes are appropriately documented (if applicable).
[ ] The changes have sufficient test coverage (if applicable).
[ ] The testsuite passes successfully on my local machine (if applicable).

Summarize your changes:
The idea of this PR is to bring a new plugin allowing us to use the rspack as a possible bundler for Electron with forge tooling. By the fact  that rspack has a similar API related for Webpack, it follows the same approach. As the example below:
    {
      name: '@electron-forge/plugin-rspack',
      config: {
        mainConfig: './rspack.main.config.js',
        renderer: {
          config: './rspack.renderer.config.js',
          entryPoints: [{
            name: 'main_window',
            html: './src/renderer/index.html',
            js: './src/renderer/index.js',
            preload: {
              js: './src/preload.js'
            }
          }]
        }
      }
    }

Hi @noghartt. CI failed, can yo fix it?

Hi @noghartt. CI failed, can you fix it?

ofc, i'll need to write more tests for these cases and fix the ci
it seems that the types aren't well matched yet

It looks like a log of this code is duplicated, I wonder if there is a way we can write this plugin so it uses the webpack plugin impl but swaps out the underlying webpack calls for rspack to avoid massive duplication


feat: Allow additional tasks states and filtering by states

Goal
When toggling a task, it should be able to move through more states than Todo (- [ ]) or Done (- [x]). This new feature will allow users to provide additional states with - [-] and - [/] being available by default.
Design
When a task is marked as completed it will always match - [x] in alignment with GFM.
To implement this the following sections of the plugin will be updated.

The settings and settings UI. This will allow users to add other status values to be allowed.
The task object will have a new states object to track the state and the character representing the state.
The toggle action would be updated to rotate though the task states. There will be an option to enable/disable this.
Update the task UI to allow the new states to be shown.

Pending Options

Allow additional user specified state transitions. This would allow the user to state which state would be rotated through based on the current state of the task.

+1. This could be helpful.

@quarkquartet the PR is pretty much done now and needs review, you can clone and run a local build if you want to test it out.

@sytone Thanks. I'll take a look asap when I have time.


Need a way to get the accurate activeIndex in loop mode

I'm using Swiper for a user to set their 'current active image', and so hooking into the onSlideChangeEnd() callback.
As you know, when in loop mode, the activeIndex property is offset by the duplicated slides, although what I need is essentially the data-swiper-slide-index attribute of the currently selected slide. I can't find a way to get the currently selected slide or it's index.
I looked repeatedly for this value in the API, although I can't find anything, it seems like it should be there somewhere. The only other way I can think to get this value, would be to query the DOM for the slide with the active class on it, and grab it's data-swiper-slide-index value, although that's a pretty messy way to get a simple value.

in loop mode active index value will be always shifted on a number of looped/duplicated slides. you can get attribute 'data-swiper-slide-index' whit function like:

in loop mode active index value will be always shifted on a number of looped/duplicated slides. you can get attribute 'data-swiper-slide-index' whit function like:
function getActiveIndex(swipe){
    var activeIndex = swipe.activeIndex;
    var slidesLen = swipe.slides.length;
    if(swipe.params.loop){
        switch(swipe.activeIndex){
            case 0:
                activeIndex = slidesLen-3;
                break;
            case slidesLen-1:
                activeIndex = 0;
                break;
            default:
                --activeIndex;
        }
    }
    return  activeIndex;
}

usage:
var mySwiper = new Swiper('.swiper-container', {
    direction: 'vertical',
    loop:true,
    onSlideChangeEnd:function(swipe){
        console.log(getActiveIndex(swipe))
    }
});

@phongmedia

@navyxie Thanks for the function, I'll give that a spin. It would be great if something like this was already provided by the API, with something like swiper.getActiveIndex()

@phongmedia    Sorry , Above way is not better , and will take a bug  when you set param loopAdditionalSlides or loopedSlides:
var mySwiper = new Swiper('.swiper-container', {
    direction: 'vertical',
    loop:true,
    loopAdditionalSlides:1,
    loopedSlides:2,
    onSlideChangeEnd:function(swipe){
        console.log(geSlideDataIndex(swipe))
    }
});

I have made a pr to solve the problem  : add property realIndex。
var mySwiper = new Swiper('.swiper-container', {
    direction: 'vertical',
    loop:true,
    onSlideChangeEnd:function(swipe){
        console.log(swipe.realIndex)
    }
});

Closed by #1697

Try this:
$('.swiper-slide-active').data("swiper-slide-index");
in a callback function:
mySwiper.on('onSlideChangeStart', function (swiper) {             var sindex = $('.swiper-slide-active').data("swiper-slide-index");             console.log(sindex);         });

$('.swiper-slide-active').data("swiper-slide-index")   == undefined  when not in loop mode
this work in both modes:
var $slideActive = $('.swiper-slide-active'));
var realIndex = $slideActive.data('swiper-slide-index')
if(typeof realIndex === 'undefined') {
	realIndex = $slideActive.index();
}

realPreviousIndex  also helpful to me


Make the web/instance directory a .d directory

This will require some clean up of the current instance directory


[Issue] release config released all pokemon

Expected Behavior
Bot should keep 2 best pokemon by cp of each pokemon.
Actual Behavior
Bot released almost all pokemon. I'm left with only 4 pokemon now.
 From your log:

...
2016-08-25 00:07:53,955 [TransferPokemon] [INFO] [keep_best_release] Keeping best 2 Pinsir, based on cp
2016-08-25 00:07:54,269 [TransferPokemon] [INFO] [pokemon_release] Exchanged Pinsir [IV 0.69] [CP 399] [56 candies]
2016-08-25 00:07:56,264 [TransferPokemon] [INFO] [pokemon_release] Exchanged Pinsir [IV 0.62] [CP 452] [57 candies]
2016-08-25 00:07:58,164 [TransferPokemon] [INFO] [pokemon_release] Exchanged Pinsir [IV 0.91] [CP 409] [58 candies]
2016-08-25 00:08:00,564 [TransferPokemon] [INFO] [keep_best_release] Keeping best 2 all, based on cp
...

@pranavperfect this has been fixed in #4639 which is now in both master and dev. Please update to the latest version

@k4n30 when i do ./setup.sh -u it says already up to date.
if i do git pull, it says aborting due to local changes that i've made (which i've not made). please suggest a way out.

This is the branch i'm running
ae314b666a1eb71de8872289ef3a298af09e4637

There's a conflict probably you accidentally modified a file.  Could you verify if the problem still happening on the latest update?

It is releasing as i'm typing. Will update.


BUG: 8.3.0+ builds break compatibility with Debian Buster and Ubuntu <= 18.04

From 8.3.0 onward the build image is now Ubuntu 20.04 as GitHub Actions has removed Ubuntu 18.04 support.
Unfortunately this brings back an old set of issues -- any app using the prebuilds of better-sqlite3 will experience crashes when distributed through Snap, or when running on a system that contains a lower version of glibc (which is a LOT of systems).
This will specifically be a problem for those running prebuilds on servers with Ubuntu 16.04, 18.04, 14.04, or Debian Buster, all of which are still supported and used in many businesses. It is also a problem for Electron apps (mine included)
Context: Glibc 2.29 is a breaking change, but is only present on newer OSes.
SQLite3 is perfectly happy being built with older versions of glibc, so maybe there's a way to get those older versions on the build machines, or to build inside a docker container using a Ubuntu-18.04 or Debian buster image?
Related, & previously resolved by downgrading to Ubuntu 18.04 build images:

https://github.com/beekeeper-studio/beekeeper-studio/issues/1566
https://github.com/WiseLibs/better-sqlite3/issues/586
https://github.com/WiseLibs/better-sqlite3/issues/403

Thanks for taking the time to do this research--apologies for the regression.
Can you submit a PR that reverts https://github.com/WiseLibs/better-sqlite3/pull/982 ? @JoshuaWise has granted me a small subset of permissions for this repo--I can't self-approve any changes, for example.

Alternatively, @m4heshd could you submit a reversion of your commit that I can push and release? The reversion can come from anyone (as long as it isn't me).

@mceachen I don't think it can be reverted. GitHub no longer supports the 18.04 build image

SADNESS https://github.com/actions/runner-images/issues/6002

Yeah, that's why I wanted to start the discussion again, because I'm not sure this is going to be super easy to solve without some bigger build changes :-/

Or I guess installing a local version of an older glibc somewhere and using that one?

I looked at bit more. I would suggest we drop Ubuntu 18 support. EOL is at the end of this month. This will be @JoshuaWise 's call.
If we do want to try to carry support forward, we can push this out until september by adding this GHA job:
  prebuild-glibc:
    name: Prebuild on ancient glibc
    runs-on: ubuntu-latest
    container: node:16-stretch
    needs: publish
    steps:
      - uses: actions/checkout@v3
      - run: apt-get update && apt-get install build-essential git python3
      - run: npm install --ignore-scripts
      - run: ${{ NODE_BUILD_CMD }} -u ${{ secrets.GITHUB_TOKEN }}

The stretch build has 2.24:
$ docker run -it node:16-stretch sh
# head -1 /etc/os-release
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
# ldd --version
ldd (Debian GLIBC 2.24-11+deb9u4) 2.24

Great! I think pushing it out is a great idea.
Standard support for 18.04 ends soon, but ESM support runs for a few more years, many individuals get this for free, and most enterprises use it also. 14.04 is still supported with ESM until 2024!

Never seen that container directive before. I'm going to try that myself

I didn't test the new draft job yet, but see c99fca6 for what I was thinking.

Looks great. It's very frustrating to have to micro manage builds like this right? I have the same frustrations, lol

@mceachen This is why I explicitly mentioned this HUGE breaking change in the PR note. (#982)

This change is necessary since GitHub has dropped support for the ubuntu-18.04 image. (https://github.com/actions/runner-images/issues/6002)
This will also mean that Linux distributions with only glibc version 2.29 and above will be supported by the prebuilt binaries.

I've shopped around for many workarounds for this before the change. Unfortunately, we have to go along with all these deprecations and there's no way around it. I've even looked at using a custom runner image (I usually waste a ton of time looking for workarounds even when they're quite unnecessary). But that's practically useless since Node 18 itself requires glibc >= 2.28 and Node 16 is soon EOL. That timeline unfortunately didn't line up with GH's support drop for the Ubuntu image. Polluting the build workflow for mere short-term backward compatibility just felt wrong. But that's just my way of doing things. I would love some input from @JoshuaWise on this.
@rathboma If this is a necessity for your application, I think a solution on the application's scope would fit much better since you have full control of the building, packaging, and distribution of your app. This is just my own opinion. I never use prebuilt binaries on my distributions. I always rebuild them while packaging. You can use a self-hosted runner while doing that to please your requirements. Please correct me if I'm missing anything here because I have no experience in distributing in packmans like Snap.

@mceachen Hi, i tried this configuration:
https://github.com/mceachen/better-sqlite3/blob/c99fca6b901201505537da1628c8b8e6f688faf7/.github/workflows/build.yml#L86-L96
But it failed to build because the highest Python version of Debian 9's official package manager source is v3.5.x, and node-gyp v8 needs Python 3.6 or higher to work. Here are some reference links

https://unix.stackexchange.com/a/743865
https://github.com/npm/run-script/issues/40

@m4heshd Yeah I'm going to have to build the package myself in my runner. I've had a hard time in the past telling my build tools to NOT use prepacked binaries, I don't think the tooling does this very well.
For now I'm just going to lock to a specific version. I don't work on my app full time, so this type of stuff is a net negative on productivity :-(.
Is there a way to mark prebuilt binaries as not working for certain operating systems?
All the better-sqlite3 contributors - thanks for doing such an amazing job. I realize this stuff isn't your fault. :-)

Can we republish v8.2.0 as v8.3.1 and then release current v8.3.0 as v9.0.0 for its breaking change?

I appreciate that this thread is Ubuntu/Debian focused, but I wanted to include a note that this change also breaks install for EL8 variants as they ship with GLIBC 2.28.
This includes Red Hat Enterprise Linux, CentOS Stream, Oracle Linux, Alma, Rocky etc.
Red Hat Enterprise Linux 8 has full support from Red Hat until May 2024 and at that date it goes into extended support (but is still supported). Not that vendor support governs decisions of support of these builds, but wanted to mention it.
https://en.wikipedia.org/wiki/Red_Hat_Enterprise_Linux#Product_life_cycle
I have been able to replicate the install issue in RHEL 8.x and that is what brought me to this ticket.
Something that may also be worth mentioning is the assumptions made in the fallback behaviour when an incompatible GLIBC is detected. This led to a cascade of issues as it attempted to build as it expects python (mentioned above), make, gcc, and open Internet access to pull sources.

I also want to note that the AWS Lambda node 18.x runtime runs on Amazon Linux 2, which only has glibc 2.26.
This is outside of node18's support (glibc 2.28 is required), and I definitely don't expect this project to take any action based on that, but I wanted to bring it up as an example of another distro with old glibc versions.

Getting this error on Oracle Linux 8 which has glibc 2.28
Aside of waiting for you to fix the prebuilt binaries, can you describe how people should configure it to be built locally with their own version of glibc? The preinstall script from docs/compilation.md seems incorrect for people that prefer pnpm or other package managers.

It seems to me even though github may have dropped support for old ubuntu versions as the base of its github actions runners, it still supports basically any docker image as an additional service:
https://docs.github.com/en/actions/using-containerized-services/about-service-containers
So you should still be able to build on older ubuntu docker images.
And just for completeness, though I'm sure your google-fu is no worse than mine and you've probably already seen this, there are several other alternatives described here:
https://stackoverflow.com/questions/2856438/how-can-i-link-to-a-specific-glibc-version
The more interesting-sounding ones are actually not the top answers but further down, i.e. using zig c++ or glibc_version_header. The most practical solution still seems building in docker though.

I'm on NixOS and I run into this issue. It's only after installing the glibc below that this resolve this issue, for others in the same situation.
Work Around
nix-env -i glibc

Is it expected that better-sqlite v11 needs GLIBC v2.33+
#20 [build-slim build 3/8] RUN corepack pnpm fetch --prod
       #20 116.7 Progress: resolved 776, reused 0, downloaded 320, added 316
       #20 118.5 Progress: resolved 776, reused 0, downloaded 342, added 324
       #20 119.8 Progress: resolved 776, reused 0, downloaded 354, added 351
       #20 121.3 Progress: resolved 776, reused 0, downloaded 407, added 383
       #20 123.7 Progress: resolved 776, reused 0, downloaded 414, added 406
       #20 125.0 Progress: resolved 776, reused 0, downloaded 449, added 444
       #20 126.4 Progress: resolved 776, reused 0, downloaded 485, added 477
       #20 127.8 Progress: resolved 776, reused 0, downloaded 505, added 488
       #20 130.0 Progress: resolved 776, reused 0, downloaded 517, added 517
       #20 131.3 Progress: resolved 776, reused 0, downloaded 563, added 546
       #20 133.4 Progress: resolved 776, reused 0, downloaded 592, added 576
       #20 134.4 Progress: resolved 776, reused 0, downloaded 609, added 608
       #20 135.9 Progress: resolved 776, reused 0, downloaded 614, added 609
       #20 137.5 Progress: resolved 776, reused 0, downloaded 640, added 615
       #20 139.9 Progress: resolved 776, reused 0, downloaded 671, added 646
       #20 141.0 Progress: resolved 776, reused 0, downloaded 677, added 676
       #20 142.2 Progress: resolved 776, reused 0, downloaded 678, added 676
       #20 144.0 Progress: resolved 776, reused 0, downloaded 724, added 720
       #20 146.4 Progress: resolved 776, reused 0, downloaded 736, added 736
       #20 148.0 Progress: resolved 776, reused 0, downloaded 752, added 752
       #20 149.0 Progress: resolved 776, reused 0, downloaded 775, added 775
       #20 150.0 Progress: resolved 776, reused 0, downloaded 776, added 775
       #20 151.3 Progress: resolved 776, reused 0, downloaded 776, added 776
       #20 151.3 Progress: resolved 776, reused 0, downloaded 776, added 776, done
       #20 155.4 .../node_modules/protobufjs postinstall$ node scripts/postinstall
       #20 155.4 .../node_modules/core-js-pure postinstall$ node -e "try{require('./postinstall')}catch(e){}"
       #20 155.9 .../node_modules/better-sqlite3 install$ prebuild-install || node-gyp rebuild --release
       #20 155.9<EMAIL_ADDRESS>install$ install-from-cache --artifact build/Release/re2.node --host-var RE2_DOWNLOAD_MIRROR --skip-path-var RE2_DOWNLOAD_SKIP_PATH --skip-ver-var RE2_DOWNLOAD_SKIP_VER || node-gyp -j max rebuild
       #20 158.0 .../node_modules/protobufjs postinstall: Done
       #20 158.1 .../node_modules/core-js-pure postinstall: Done
       #20 159.2<EMAIL_ADDRESS>install: Trying https://github.com/uhop/node-re2/releases/download/1.21.3/linux-arm64-108.br ...
       #20 161.5 .../node_modules/better-sqlite3 install: prebuild-install info begin Prebuild-install version 7.1.2
       #20 161.6 .../node_modules/better-sqlite3 install: prebuild-install info looking for local prebuild @ prebuilds/better-sqlite3-v11.0.0-node-v108-linux-arm64.tar.gz
       #20 161.7 .../node_modules/better-sqlite3 install: prebuild-install info npm cache directory missing, creating it...
       #20 161.7 .../node_modules/better-sqlite3 install: prebuild-install info looking for cached prebuild @ /root/.npm/_prebuilds/1c8951-better-sqlite3-v11.0.0-node-v108-linux-arm64.tar.gz
       #20 161.7 .../node_modules/better-sqlite3 install: prebuild-install http request GET https://github.com/WiseLibs/better-sqlite3/releases/download/v11.0.0/better-sqlite3-v11.0.0-node-v108-linux-arm64.tar.gz
       #20 162.9<EMAIL_ADDRESS>install: Writing to build/Release/re2.node ...
       #20 164.0 .../node_modules/better-sqlite3 install: prebuild-install http 200 https://github.com/WiseLibs/better-sqlite3/releases/download/v11.0.0/better-sqlite3-v11.0.0-node-v108-linux-arm64.tar.gz
       #20 164.2 .../node_modules/better-sqlite3 install: prebuild-install info downloading to @ /root/.npm/_prebuilds/1c8951-better-sqlite3-v11.0.0-node-v108-linux-arm64.tar.gz.120-597ea11370291.tmp
       #20 164.6 .../node_modules/better-sqlite3 install: prebuild-install info renaming to @ /root/.npm/_prebuilds/1c8951-better-sqlite3-v11.0.0-node-v108-linux-arm64.tar.gz
       #20 164.6 .../node_modules/better-sqlite3 install: prebuild-install info unpacking @ /root/.npm/_prebuilds/1c8951-better-sqlite3-v11.0.0-node-v108-linux-arm64.tar.gz
       #20 165.4 .../node_modules/better-sqlite3 install: prebuild-install info unpack resolved to<EMAIL_ADDRESS>       #20 165.4 .../node_modules/better-sqlite3 install: prebuild-install warn install /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by<EMAIL_ADDRESS>       #20 168.3 .../node_modules/better-sqlite3 install: gyp info it worked if it ends with ok
       #20 168.3 .../node_modules/better-sqlite3 install: gyp info using<EMAIL_ADDRESS>       #20 168.3 .../node_modules/better-sqlite3 install: gyp info using<EMAIL_ADDRESS>| linux | arm64
       #20 170.9 .../node_modules/better-sqlite3 install: gyp info find Python using Python version 3.8.10 found at "/usr/bin/python3"

docker run --rm -it node:18 bash                                                                                ─╯
root@dfbdcde88d4d:/# ldd  --version
ldd (Debian GLIBC 2.36-9+deb12u7) 2.36
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.
root@78ab76cfd442:/# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

https://github.com/WiseLibs/better-sqlite3/blob/309cb378056267e5854ef6fd283f9d2ea733abaf/.github/workflows/build.yml#L164C107-L164C114


Add Django 2.1 support to urls

In Django 2.1, it appears that (?i) placed anywhere inside the URL regex will cause it to ignore case. However, reverse() fails unless the (?i) follows the $ at the end of the regex.
Additions
Change urls.py to use:

auth_views.LogoutView
auth_views.PasswordChangeView
auth_views.PasswordChangeDoneView
to fix the following:
AttributeError: module 'django.contrib.auth.views' has no attribute 'logout'
AttributeError: module 'django.contrib.auth.views' has no attribute 'password_change'
AttributeError: module 'django.contrib.auth.views' has no attribute 'password_change_done'
ValueError: Non-reversible reg-exp portion: '(?i' in Django 2.1

Testing

tox -e unittest-future

Checklist

[x] PR has an informative and human-readable title
[x] Changes are limited to a single goal (no scope creep)
[x] Code can be automatically merged (no conflicts)
[x] Code follows the standards laid out in the [CFPB development guidelines(https://github.com/cfpb/development)
[x] Passes all existing automated tests
[x] Reviewers requested with the Reviewers tool :arrow_right:

I think this makes sense, but I wonder, is this documented anywhere that (?i) breaks reverse if it's at the beginning of the RE? Is there a test or a check we could add for this?
Clearly this is a pattern we use a lot, so I think (a) we'd want to socialize that this is a thing now, and (b) we want to make sure no leading-^(?i) regexes are created before we are testing against Django 2.1 (which it sounds like is where this breaks)?

I found some Django documentation about (?i) here:
https://docs.djangoproject.com/en/3.0/releases/2.1/#features-removed-in-2-1
I believe when you run tox using Django 2.1 or 2.2 there will be tests that fail as (?i) breaks reverse

@cwdavies Alrighty. Clicking through to the Django 1.11 deprecations, there's this:

Using regular expression groups with iLmsu# in url() is deprecated. The only group that’s useful is (?i) for case-insensitive URLs, however, case-insensitive URLs aren’t a good practice because they create multiple entries for search engines, for example. An alternative solution could be to create a handler404 that looks for uppercase characters in the URL and redirects to a lowercase equivalent.

It sounds like this might not be a bad idea generally, to replace our use of (?i) in our URL patterns and use a 404 handler to lower-case URLs. This is probably out of scope for our Django upgrade work, but it would inform the other discussions we're having around URL handling.
As for tests — my concern is that if any new URLs get added before we have Django 2.1 support, we're going to have to edit them again.


Some links on website broken

Describe the bug
On the website docs (https://tanstack.com/router/v1/docs) some links are broken:

"React" points to 404 on https://tanstack.com/router/v1/docs/adapters/router
"Core API" points to 404 on https://tanstack.com/router/v1/docs/api/core
"Router" points to 404 on https://tanstack.com/router/v1/docs/api/react/Router
"route" points to 404 on https://tanstack.com/router/v1/docs/api/react/route
"useLoader" points to 404 on https://tanstack.com/router/v1/docs/api/react/useLoader

Steps to Reproduce the Bug or Issue
Open the website and use the navigation on the left to see the 404 pages.
Expected behavior
The pages should not show 404, at least "no contents yet" should be displayed.
Currently the documentation draws a picture of "not mature enough to try".
Platform
Firefox on Ubuntu 22.04

@tannerlinsley could you remove the redirect to tanstack router, I would like to access react-location. Where can I access the old docs?

Similarly, I notice that both 'React Routers > route' and 'React Components > Route' both get highlighted on the left when either one is selected.
Presumably because the URL/name of both are the same, when considered case-insensitively

Cleaned this up significantly. Thanks for the input! The docs will just keep getting better.


Rethink how to store original data for Crate backend

The problem
Turning on saving of original data when using the Crate backend results in an insert failure if the data contains nested arrays. Both the initial and the recovery insert fail because the type of the original data column is object and Crate does not support nested arrays in JSON docs---see #343 about it. Notice this only affects the Crate backend, not Timescale.
What to do about it
See if there's any easy workaround that will let us keep the object type for the original data column. If not consider switching back to the text type as we did initially, see conversation over here. Another option that springs to mind is to use a text column in all cases (= safe) but add a full text index to the column so we can query the content. Not as nice as querying the JSON but maybe a viable option?

Here's how to reproduce the issue. Start QL with the KEEP_RAW_ENTITY environment variable set to true. Then use the below script to make QL bomb out.
from conftest import QL_URL
import json
import requests

notify_url = "{}/notify".format(QL_URL)

HEADERS = {
    'Content-Type': 'application/json',
    'fiware-servicepath': '/ParkingManagement/Cleverciti',
}

p1 = {
    'id': 'urn:ngsi-ld:ParkingSpot:G09',
    'type': 'ParkingSpot',
    'address': {
        'type': 'PostalAddress',
        'value': {
            'addressCountry': 'Switzerland',
            'addressLocality': 'Dietikon',
            'streetAddress': 'Überlandstrasse 2'
        },
        'metadata': {}
    },
    'dataProvider': {
        'type': 'Text',
        'value': 'https://www.cleverciti.com',
        'metadata': {}
    },
    'dateObserved': {
        'type': 'DateTime',
        'value': '2020-07-29T12:57:07.00Z',
        'metadata': {}
    },
    'location': {
        'type': 'geo:json',
        'value': {
            'type': 'Polygon',
            'coordinates': [[
                [8.409021754, 47.410719586], [8.409034494, 47.410700074],
                [8.409096856, 47.410719133], [8.409082104, 47.410739553],
                [8.409021754, 47.410719586]
            ]]
        }
    },
    'name': {
        'type': 'Text',
        'value': 'G09',
        'metadata': {}
    },
    'refDevice': {
        'type': 'Text',
        'value': 'urn:ngsi-ld:Device:C:DIE.FS.006',
        'metadata': {}
    },
    'status': {
        'type': 'Text',
        'value': 'free',
        'metadata': {}
    },
}

problemPayload = {
    "data": [p1]
}

def test_valid_notification(clean_mongo, clean_crate):
    r = requests.post('{}'.format(notify_url),
                      data=json.dumps(problemPayload),
                      headers=HEADERS)

    assert r.status_code == 200
    assert r.json() == 'Notification successfully processed'

Here are another couple of things to keep in mind:

Because of #375, when upgrading from QL 0.7.5 to 0.7.6, the __original_ngsi_entity__ might be added with a text type instead of object---haven't tested this scenario, but we should.
There may be cases where you don't want to save the original data at all, even on an insert error. For example, #381 would be less of a pain to @pinkerltm if he could turn off this feature since alot of his inserts may fail b/c of duplicated PKs.

maybe a good idea is to make value as string in crate


Mainnet Lighthouse Processor not sending heartbeats

Describe the bug
Mainnet Lighthouse Processor not sending heartbeats
To Reproduce
Steps to reproduce the behavior:

Go to DD
Find no heartbeat sent log

Additional context
Add any other context about the problem here.

Attempting more retries:
https://github.com/connext/monorepo/pull/3577

Fixed, was hitting mem limits and exiting before sending heart beat.
Mem limit issue tracked here:
https://github.com/connext/monorepo/issues/3590


Fix boolean defaults for AntMetaDataExporter

Fixes #1483

This looks good to me.

Yes, it's fine to me as well.


What type to use to add v2 spi to struct?

Sorry, hit enter by accident.
 I'm having trouble figuring out what type to provide for the spi in the struct definition. This is the closest I've gotten:
#[allow(non_snake_case)]
pub struct Board {
   /// The Metro M0's exposed SPI
    pub ext_spi: Spi<Config<SERCOM4, Master, EightBit>>,
}

but compiling it gives me the following error:
error[E0277]: the trait bound `atsamd_hal::atsamd21g::SERCOM4: atsamd_hal::sercom::v2::spi::DipoDopo` is not satisfied
   --> src\lib.rs:43:18
    |
43  |     pub ext_spi: Spi<Config<SERCOM4, Master, EightBit>>,
    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `atsamd_hal::sercom::v2::spi::DipoDopo` is not implemented for `atsamd_hal::atsamd21g::SERCOM4`
    |
   ::: C:\Users\Chris\Documents\git\atsamd\hal\src\common\thumbv6m\sercom\v2\spi.rs:996:8
    |
996 |     P: DipoDopo,
    |        -------- required by this bound in `Config`

What do I need to specify as a type for the first config entry? Or am I defining this completely wrong and I should be using something else?

@cbc02009, sorry for the delay. I just saw this.
First, thanks for being a bit of a guinea pig. The v2::spi interface is still very new. I'm trying to work out kinks and better document it.
The first type parameter to the Config struct is the set of SPI pads. That struct needs to implement the Dipodopo trait, which identifies the correct DIPO and DOPO values (are you familiar with those? They are in the SAMD datasheet).
The solution is a bit more complicated than I would like it to be right now. I recently found a way to simplify it, but that change hasn't yet been merged. However, for now, you can use the pads_alias! macro to help you define the type.
https://atsamd-rs.github.io/docs/samd21g/thumbv6m-none-eabi/doc/atsamd_hal/macro.pads_alias.html

@bradleyharden Thanks for the response. I just read through your pull request and I think it handles a lot of the stuff I'm trying to figure out, so maybe I'll wait until that gets mainlined. Once that pull request is finalized and merged in I'd be happy to help updating some of the other examples to follow the same format.
Back to the original issue: my thought was to use the BSPs in a similar way to what the nrf52hal does and put all the pins and peripherals into a single struct Board that functions almost like a device tree. This would allow for better auto complete during code writing, since it's a lot easier for IDEs to parse struct entries than macro expansions. It would also allow the board to be entirely set up in the main code with a single let mut board = BSP::Board::take().unwrap()
You can see the example I've been working on here (with the nrf52840): https://github.com/cbc02009/adafruit-nrf52840-express-rs. You definitely lose out on configurability with the BSP written this way, as it preconfigures all the peripherals, but I think it makes it more accessible for what most people actually use BSPs for: initial prototyping or simple home projects.
I think once the changes to SPI are made from your pull request it will be quite a bit easier for me to set up this struct and see how well it works.

Interesting perspective on BSPs. Have you seen the discussion in #433? There has been a lot of discussion lately on exactly what role the BSPs should play, how configurable they should be, where they should be stored, and how they should be maintained. Perhaps you could add your thoughts.

Thanks, I'll do that. Again, if you want any help with the easy-to-do grunt work of porting the old BSPs to use your new code let me know. I figure that's at least something I'm capable of helping out with since it's mostly copy-paste + test.

FYI, I think the final simplification for this issue will land in #451. You can take a look at the feather_m0 in that PR to see how the Spi types are constructed. I also tried to improve the documentation. I now show how to explicitly define the type, in the absence of any type inference.

@cbc02009, in the latest version, I've added documentation covering how to construct the SPI types. Could you read through it and see if it makes sense? Does it answer your original question?
https://atsamd-rs.github.io/docs/samd21g/thumbv6m-none-eabi/doc/atsamd_hal/sercom/v2/spi/index.html

Yes, thank you. The documentation and the updated feather m0 example have allowed me to instantiate the SPI peripheral within my Board::new() function.
I'm not sure if this warrants a new issue, but now that the SPI works, I've run into a second issue with the pins and their ownership. the bsp_pins macro takes all the pins and lumps them into one struct, which is not ideal for trying to dole out pins to different peripherals. I'm having difficulty wording this, so let me see if an example would help.
I'm trying to create a Board struct that contains fields for all the peripherals on the particular board, like so:
// Provides access to all features of the Adafruit M0 Metro
#[allow(non_snake_case)]
pub struct Board {
    /// The Metro M0's pins which are not being used by peripherals
    pub pins: Pins,

    /// The Metro M0's exposed SPI
    pub ext_spi: spi::Spi<spi::Config<spi::Pads<Sercom4, Miso, Mosi, Sclk>>>,
}

Board implements new() which initializes all the peripherals and returns a Board struct, like so:
impl Board {
    /// Take the peripherals safely
    ///
    /// This method will return an instance of `Adafruit Metro M0` the first time it is
    /// called. It will return only `None` on subsequent calls.
    pub fn take() -> Option<Self> {
        Some(Self::new(CorePeripherals::take()?, Peripherals::take()?))
    }

    fn new(cp: CorePeripherals, mut p: Peripherals) -> Self {

        // Initialize the clock controller
        let mut clocks = GenericClockController::with_internal_32kosc(
            p.GCLK,
            &mut p.PM,
            &mut p.SYSCTRL,
            &mut p.NVMCTRL,
        );

        //initialize the delay module
        let mut delay = Delay::new(cp.SYST, &mut clocks);

        // take ownership of pins
        let base_pins = Pins::new(p.PORT);

        // Setup the exposed SPI
        let gclk0 = clocks.gclk0();
        let clock = clocks.sercom4_core(&gclk0).unwrap();
        let freq = clock.freq();
        let pads = spi::Pads::<Sercom4>::default()
            .data_in(base_pins.miso)
            .data_out(base_pins.mosi)
            .sclk(base_pins.sclk);
        let ext_spi = spi::Config::new(&mut p.PM, p.SERCOM4, pads, freq)
            .baud(MegaHertz(10))
            .spi_mode(spi::MODE_0)
            .enable();

        Board {
            pins: base_pins,
            ext_spi,
        }
    }
}

The problem is that ownership of base_pins is now split, so I can no longer return base_pins as a member containing the leftover GPIO pins.
I think what I need to do is define a second struct:
pub struct GPIO {
    pub a0: Pin<hal::gpio::v2::PA02, Reset>,
    ...
}

and pass that back instead, like:
let pins = GPIO {
  a0: base_pins.a0,
  ...
}

Does that sound right? Is there any way I can use the bsp_pins macro to do this for me?

Again, thanks for you help.

The problem is that ownership of base_pins is now split, so I can no longer return base_pins as a member containing the leftover GPIO pins.

Correct

I think what I need to do is define a second struct

Also correct.
Indeed, it's a pin of a pain. I'm not sure if there is a macro solution for it. I'll try to think about it.

@cbc02009, since your original question has been answered, I'm going to close this. If you want to discuss the pin issue further, please open a new issue or join us on Matrix.


$tenant->delete() does not delete the database with sqlite in memory database

$tenant->delete() does not delete the database with sqlite in memory database during testing.
The database created in: base_path('database') still exists.
Because the database deletion is asynchronous(event) sometimes the database it is not delete yet before the next test.
How is the proper way to delete the tenant's testing databases?

Sorry. This behavior happens only when tenancy()->initialize($tenant); is called in the setUp method.

Hey,
The testing setup is something that's 100% up to you.
The package docs go over the general things you can use in your TestCase to write a setup that works for you. Then there's the setup in the sponsor docs taken from the boilerplate that's more opinionated but works out of the box.
And if you need anything custom, that's completely fine 👍🏻  The idea is to let you build a test suite setup that works for you, because this will differ a lot from app to app.
I'm closing this because it's not a bug related to the package/
Also check my comment here: https://github.com/stancl/tenancy/issues/497#issuecomment-696767720 I'll be building a better test suite, that cleans up databases and uses transactions, soon.


No way to generate tokens containing user data

In some use cases it's nice to be able to generate tokens that are not stored in a database but just contain signed data.
However, the AuthorizationServer has this code in init_app:
self.generate_token = self.create_bearer_token_generator(app)

The function it calls only takes a string from the config which points to a function not accepting any arguments, so even if I specify a custom function to generate a token I cannot include any user data in it.
Assigning a custom function to self.generate_token is also problematic because it's assigned in init_app, which means I need to do it quite late - when I'm calling init_app of Flask extensions, I'm usually done setting everything up and do not expect having to assign a function only after that. Having to assign functions after calling init_app feels rather dirty. This is stuff people usually do at import time, not at config loading / app initialization time. Also, when using an app factory I might end up calling it more than once, so changing global state from there is even worse.

Yes, I agree with you. Actually, I had that in my mind from the beginning, but I don't know how I forgot such a thing when implementing it.

Feature implemented.

that was fast, thanks! gonna try it out.
btw, the change broke python 2.7 support since the inspect method you are using is python3-only

semi-related: it'd be nice  if the config value could be a callable instead of a string. when setting it from python code (and not a config file), being able to just pass the function directly is cleaner


Laravel is not able to access resources when route like "/orders/list" but access them when  "route/orderlist"

Hello every,
I integrated LTE-Admin with my current app, when I type
http://localhost:8000/orderslist
it reaches all resources : js, css, images,
but when accessing http://localhost:8000/orders/list
it shows  missing resources,  like this message
Failed to load resource: the server responded with a status of 404 (Not Found)  http://localhost:8000/orders/dist/css/skins/skin-blue.min.css
I want to use this route '/orders/list' not this '/orderslist', how can I solve failed to load resources error???
these are the routes:
Route::get('/orderslist','OrdersController@showReadyOrders');
Route::get('/orders/list','OrdersController@showReadyOrders');

Is that not a directory or an Htaccess problem rather than an adminlte problem ?
For u to access through an url that u do not have, u will have to either set an Url rewriting rule in htaccess or move ur folder to where u want them to be

In Laravel, you can use the helper function asset.
Optional: Also instead of using localhost, if using Apache as web server
for development you can add virtual host and add an entry in vhost.conf to
update url as myapp.dev.
Issue you are encountering here is all your url is redirecting to routes
instead of actual file. Check you have a resource controller route to
OrdersController
{{-- Theme style --}}
{{-- AdminLTE App --}}
On Tue, Oct 18, 2016 at 4:32 PM, Faddel<EMAIL_ADDRESS>wrote:

Hello every,
I integrated LTE-Admin with my current app, when I type
http://localhost:8000/orderslist
it reaches all resources : js, css, images,
but when accessing http://localhost:8000/orders/list
it shows missing resources, like this message
Failed to load resource: the server responded with a status of 404 (Not
Found) http://localhost:8000/orders/dist/css/skins/skin-blue.min.css
I want to use this route '/orders/list' not this '/orderslist', how can I
solve failed to load resources error???
these are the routes:
Route::get('/orderslist','OrdersController@showReadyOrders');
Route::get('/orders/list','OrdersController@showReadyOrders');
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/almasaeed2010/AdminLTE/issues/1225, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AAwjS59gd3NNv24qZ-R8kemz25iAcJ4jks5q1KcwgaJpZM4KZpyX
.

I dont think this repository has nothing to do with Laravel or any framework.
I do recommend close/ignore the issue.

Hello @mfadel85
You will need to make sure you link all your assets using the absolute path rather than a relative path.
See: http://www.coffeecup.com/help/articles/absolute-vs-relative-pathslinks/
Thanks!


feat: Lie algebra root spaces are 1-dimensional

over a field of characteristic zero, when the Killing form is non-singular

[x] depends on: #13076

Thank you for the very helpful review!

Thanks :tada:
bors merge


Support for ObjC msgSend stubs

Is your feature request related to a problem? Please describe.
iOS Apps compiled with recent versions of XCode can generate stubs for msgSend calls, where each stub is just a call to the actual msgSend address after setting a specific selector:

Describe the solution you'd like
All the stubs are in the __objc_stubs section, and this section only contains these kinds of stubs. So they are fairly easy to detect and iterate over, unless that section has been renamed.
Typically the function names also contains the selector, but I have also seen apps where these names were not available, so this can't be relied on.
This has various implications:

the calling convention of these stubs is weird, because their arguments skip the x1 register, where the selector will be placed

this might mean that a new calling convention needs to be defined for those, where x1 is skipped

they should all be typed as returning the type ID, and taking the type ID as the first argument, with an unknown amount of additional arguments
there is the possibility for a simple analysis that recovers the selector for each stub and renames the stub accordingly, if there is no name available

this analysis could also infer the number of arguments from the selector, but in very rare cases the selector is obfuscated and the number of colons, doesn't correspond to the number of arguments. So this should be an option of that analysis that can be toggled off, if needed

there is some logic in Ghidra that resolves msgSend calls to their implementation, this should also apply for these stubs (if the type of the argument can be inferred). But this feature rarely ever worked anyway

Describe alternatives you've considered
ObjC is niche, and I can understand if this is too much work that only benefits a rare use case.
I can implement most of these features as an analysis in an extension, but IIRC the calling convention needs to be defined as part of the processor spec, so I can't influence that via an extension. Once that's done I can probably write the rest myself.
Example app
ReverseOneSignal.app.tar.gz, specifically the library OneSignalLocation

Do you know how the calling convention differs on x86?  If we don't have support in a new cspec, can you just use custom storage on each stub?
This is something I think we'd want to add support for, but i can't really speak to the priority of it right now.  If you aren't opposed to poking at it, we could always try to accept a PR you submit since you expressed interested in implementing it yourself.

If we don't have support in a new cspec, can you just use custom storage on each stub?

I could use custom storage in theory and this is how I have been handling it so far, but that creates more hassle in practice. I'd also expect that any code that later sets up the arguments gets more complicated then, because it would have to set up the locations manually instead of relying on an existing calling convention.

Do you know how the calling convention differs on x86?

I think the new "calling convention" for the stubs is just the regular calling convention that is used for objc_msgSend except that  the second argument, where the selector will be placed in later, is skipped. Same for the caller and callee saved registers.

Can do that to if I get around to it, it also doesn't have super high priority for me right now. Not sure if you want the PR for the compiler spec or the other features

I was mostly asking about the PR because i was assuming this was high priority for you to the point where you'd want to start implementing it now.  If it's more of a get around to it situation for you, I think I'll put it through our prioritization discussion and see how fast I can get to it.  You are not the first person who has asked for improvements in this area.  Maybe we can each just update this ticket if we start working on it.  I'd probably reach out with a question or two if i started it anyway.

It's not high priority and I'm happy to answer questions.
Considering the implementation: I'm using/developing a private plugin anyway, so it's fairly easy for me to write up some janky analysis which works for the binaries I'm looking at, and fix it if I encounter issues. For now it's not even a big enough deal to do that, because I can do it manually for the binary I'm looking at. Having a compiler spec with a calling convention where I don't have to use custom storage would speed up that process a lot already, but it's also the one thing I can't really do from an plugin.

We just published a plugin that aims to help with these annoying things.
https://github.com/ReverseApple/GhidraApple


CVE-2019-13132: denial of service via stack overflow

A remote, unauthenticated client connecting to a
libzmq application, running with a socket listening with CURVE
encryption/authentication enabled, may cause a stack overflow and
overwrite the stack with arbitrary data, due to a buffer overflow in
the library. Users running public servers with the above configuration
are highly encouraged to upgrade as soon as possible, as there are no
known mitigations. All versions from 4.0.0 and upwards are affected.

See: https://github.com/zeromq/libzmq/issues/3558

@minrk FYI


BUG: New way of editing roles

There is a new way of doing custom roles (see this PR https://github.com/redhat-cop/openshift-playbooks/pull/271/files )
Please update this lab to reflect the changes
@samueltauil @robertsandoval

lab updated


Update submissions-users-report-message-add-in-configure.md

Made changes to GCC instructions as the navigation is different
fixes#https://github.com/MicrosoftDocs/microsoft-365-docs/issues/10483

@JohanFreelancer9 Please copy review

Learn Build status updates of commit e5c7827:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-365/security/office-365-security/submissions-users-report-message-add-in-configure.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

Learn Build status updates of commit 6ee9266:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-365/security/office-365-security/submissions-users-report-message-add-in-configure.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

Learn Build status updates of commit dc336f6:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-365/security/office-365-security/submissions-users-report-message-add-in-configure.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel


VisualStudio MarketPlace Badges Failing

I was using VSMarketplace badges but they stopped to work:
https://img.shields.io/vscode-marketplace/d/thiagoguaru.DapperCrudGenerator.svg
https://img.shields.io/vscode-marketplace/d/thiagoguaru.DapperCrudGenerator.svg
Extension:
https://marketplace.visualstudio.com/items?itemName=thiagoguaru.DapperCrudGenerator

I can reproduce this issue, but I think the issue may be with the upstream API.
Making a POST to https://marketplace.visualstudio.com/_apis/public/gallery/extensionquery/ with {"filters":[{"criteria":[{"filterType":7,"value":"thiagoguaru.DapperCrudGenerator"}]}],"flags":914} returns
{
  "results": [
    {
      "extensions": [

      ],
      "pagingToken": null,
      "resultMetadata": [
        {
          "metadataType": "ResultCount",
          "metadataItems": [
            {
              "name": "TotalCount",
              "count": 0
            }
          ]
        }
      ]
    }
  ]
}

The tested repos are returning badges as normal.

It seems to be all the vs extensions that are showing invalid
all the vscodeextensions seem to be working as expected.
They may have seperate API's?

Extension
Category
Badge

PowerShellToolsforVisualStudio2015
Visual Studio→Tools

python
Visual Studio Code→Programming Languages

Oh yes - good spot. Not sure if this is expected behaviour then. It is hard to tell as we don't seem to be relying on a documented API behaviour :(


Adding statements for tag support and policy

@tfitzmac Hey Tom- Let me know if this works.  Needed to add this statement for support on some reviews.  Thanks!

@rthorn17 - thanks for the addition.
#sign-off

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


CentOS 7: libjavet-v8-linux-x86_64.v.1.1.7.so: /lib64/libm.so.6: version `GLIBC_2.29' not found

Based on installation page and release notes for 1.1, Javet should work on CentOS 7 out of the box. I cannot however manage to run Javet 2.x nor 1.1.x on the latest CentOS 7 updates. It reports that GLIBC 2.29 is required and the latest GLIBC on CentOS 7 is 2.17 (and 2.28 on CentOS stream 8).
Caused by: java.lang.UnsatisfiedLinkError: /tmp/javet/11669/libjavet-v8-linux-x86_64.v.1.1.7.so: /lib64/libm.so.6: version GLIBC_2.29 not found (required by /tmp/javet/11669/libjavet-v8-linux-x86_64.v.1.1.7.so)
Can you help on this?

Please refer to #137 for detail. The newer the V8 is, the less likely does Javet support such legacy Linux distribution.

你可以尝试使用rockylinux9

You can try rockylinux 9

You can try rockylinux 9


x/build/cmd/golangbuild: generate instructions for reproducing test results

When tests currently fail it's a bit tricky to figure out exactly how to reproduce the environment that created them. We can automatically generate some nice instructions for failing tests in golangbuild and post them somewhere in the build.
Some examples:

Example reproducer text for a gotip-linux-amd64-boringcrypto failure in the `net` package
To reproduce on linux/amd64, run:
# Go to a GOROOT.
cd $(go env GOROOT)

# Download golangbuild.
echo "infra/experimental/golangbuild/linux-amd64 latest" | cipd ensure -root . -ensure-file=-

# Set up the environment. Replace bash with your favorite shell.
GOMOTE_SETUP=gotip-linux-amd64-boringcrypto-test_only ./golangbuild bash

# Run the test.
./bin/go test -run="^MyTest$" net

To reproduce on a gomote, run:
# Go to a GOROOT.
cd $(go env GOROOT)

# Create, push, and build toolchain on gomote.
export GOMOTE_GROUP=debug
GOROOT=$PWD gomote create -setup gotip-linux-amd64-boringcrypto

# Run the test.
gomote run go/bin/go test -run="^MyTest$" net

Example reproducer text for a gotip-js-wasm failure in the `net` package
To reproduce on linux/amd64, run:
# Go to a GOROOT.
cd $(go env GOROOT)

# Download golangbuild.
echo "infra/experimental/golangbuild/linux-amd64 latest" | cipd ensure -root . -ensure-file=-

# Set up the environment. Replace bash with your favorite shell.

GOMOTE_SETUP=gotip-windows-amd64-race-test_only ./golangbuild.exe ./bin/go test -run="^MyTest$" net

To reproduce on a gomote, run:
# Go to a GOROOT.
cd $(go env GOROOT)

# Create, push, and build toolchain on gomote.
export GOMOTE_GROUP=debug
GOROOT=$PWD gomote create -setup gotip-windows-amd64-race

# Run the test.
gomote run go/bin/go test -run="^MyTest$" net

This text should be fairly straightforward to generate. The tricky part is figuring out where to surface it. Ideally, it would appear next to the test results, but that means result_adapter would need to know how to add in custom additional artifacts per-test, which seems complex to do and requires buy-in. We could fork result_adapter for our needs, which may be worth it.
Alternatively, we surface a link to such instructions in the build results summary (which is what shows up in Gerrit and ends up in people's inboxes). This doesn't require changing result_adapter, but it is a little less discoverable, and may require golangbuild to actually parse and make sense of the Go test JSON format itself, which is also undesirable.

Alternatively, one could imagine an extension to the gomote command called repro that takes a build and figures everything out from there.

I landed a CL adding GOMOTE_REPRO to golangbuild which accepts a build ID, to avoid parsing ambiguities. I sent a CL for gomote repro <build ID> as well.

All the above CLs have landed, and I just landed a CL to golangbuild to suggest a gomote repro command for failing builds. I think this can be closed now.


Live draft view doesn't work for bots

I honestly did not think anyone would care or even notice :P
This is fixed by c98a94f502dcef18747b499f2bdadc231befc3aa


MqttDecoder.decodeAsciiString() may result in an npe.

hey,guys,currently i'm learning netty codec-mqtt,and i noticed these code:
MqttDecoder line413
   Result<String> result = decodeString(buffer, 0, Integer.MAX_VALUE);
   final String s = result.value;
   for (int i = 0; i < s.length(); i++) {
       if (s.charAt(i) > 127) {
           return new Result<String>(null, result.numberOfBytesConsumed);
       }
   }
 private static Result<String> decodeString(ByteBuf buffer, int minBytes, int maxBytes) {
   final Result<Integer> decodedSize = decodeMsbLsb(buffer);
   int size = decodedSize.value;
   int numberOfBytesConsumed = decodedSize.numberOfBytesConsumed;
   if (size < minBytes || size > maxBytes) {
   	buffer.skipBytes(size);
   	numberOfBytesConsumed += size;
   	return new Result<String>(null, numberOfBytesConsumed);
   }
   ByteBuf buf = buffer.readBytes(size);
   numberOfBytesConsumed += size;
   return new Result<String>(buf.toString(CharsetUtil.UTF_8), numberOfBytesConsumed);
   }

we can see from above that decodeString may "return new Result(null, numberOfBytesConsumed);", and "final String s = result.value;" may lead s to a null value,as a result, "s.length()" get a chance to throw a NPE.
hope that helps.brs.

In most case, this will not happen, because MQTT message's payload can not exceeds 268,435,455(256 MB).
the code just check range between 0 - Integer.MAX(2147483647).
see 2.2.3: http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html
if the client send a invalid MQTT message(without payload), then, i think throw exception is reasonable option.

tks @bobwenx , ye,i can see that there is a range check before,however, i don't think here we throw an "exception",i think this exception is made by s.length() itself,but not a validation logic.

the s.length() call only happen in MqttDecoder, all private static decodeXX method only be invoke by MqttDecoder.decode.
so if any exception throws, it will be treat as decoding failure.
from the perspective of decoder, it's the same: the message is invalid.

@bobwenx yes,that sounds reasonable,and does that mean we could take no care of any exception that caused by our code but not by illegal inputs,just because the call method will catch all exception?
i think,as you mentioned,in that scenario, we may throw an illegalinputexception or sth,before we use
s.length()

I agree... I think we can just close it


refactor: add new @aspect_rules_js//npm:npm_translate_lock.bzl load point for npm_translate_lock

Resolves https://github.com/aspect-build/rules_js/issues/580
This makes npm_translate_lock which is the primary API much easier to find in the docs.aspect.build

my vote is just to rename npm_import.bzl to npm_translate_lock.bzl and leave the two rules together in there. It's the minimal churn for 2.0, we can give you a buildozer command that is 100% reliable

Replaced with https://github.com/aspect-build/rules_js/issues/580


github-desktop 210

Thank you for the contribution. It was merged directly as a89ac309d44b9877345f1a9d7558543cea60bc4a to keep commit history cleaner. Your contribution is still credited to you.


Mindmap

Mermaid has created a new graph for mind maps which is also really useful on obsidian.

@helcone that's about to happen soon, since new Mermaid version in Obsidian finally supports it!

Released in 1.1.0.


Client-Side Use?

Hi,
Can I use the library in a browser-only mode?

hey currently we dont have a browser only mode, you can see here #266 and #25 for some documentation on peoples attempts to do so

Can someone help me with client side library for the same. I tried suggestions in #25 but failed due to fs dependencies.


Add a document about maven

Add documentation and commands of maven.

@anthonyalvarez thanks, that it a good doc for basics.
Feel free to add advanced commands and docs.


Notice: Context Menus Removed for Now

Context Menus are removed for now as they broke with the patch. I hope to add them again.
These include the menu items that show when you right clicked on a player:

Add/Show Info
Open Lodestone
Set Category

It's not ugly at all, it's just the previous and best system, kalilistic is just lazy 👍 .

Okay, Add/Show and Lodestone menu items are back. Set Category will likely stay gone until we see an official dalamud api for this.


Move quick action / canvas action menu move to corner for extra small canvas

Feature Description
Originally reported by @agingoldseco

We should also have the quick menus combine and move to the corner if the user makes the canvas extra tiny too, not just super zoomed in

Alternatives Considered

Additional Context

Duplicate of #9808


Bug report :

Describe the bug
real-time schedule does not work
my configuration:
config.advancedbackups.frequency.uptime=false
config.advancedbackups.frequency.schedule=1:00,2:00,3:00,4:00,5:00,6:00,7:00,8:00,9:00,10:00,11:00,12:00,13:00,14:00,15:00,16:00,17:00,18:00,19:00,20:00,21:00,22:00,23:00,24:00

the whole config file:
https://paste.fastmirror.net/?64033f9cfe7a8c5d#14BibagdKxTBpN6wXdydZui41UQDRgj4y8mKA42vGXVu
To Reproduce
Steps to reproduce the behavior:

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

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots

Versioning (please complete the following information):

OS: Ubuntu
Minecraft Version(s): 1.20.1
Modloader(s): Fabric
Mod Version: 3.5.1

Additional context

Seems this bug may have been introduced with either my timer rework or the config rework, I've had a confirmed reproduction and am testing a fix right now.

All live on modrinth and awaiting review on curseforge. Also available from https://github.com/MommyHeather/AdvancedBackups/actions/runs/8989631102


Settings view crashes after updating local path

When we update the local path and then try to view(open) settings file with the editor, it returns a stupid error:
❯ notya settings view

 [ERROR] Note not exists at: .settings.json

It happens 'cause we use [serivce]'s open functionality, which that uses l.settings.LocalPath + notePath to define the file(note) path.
So notya tries to reach settings file at new local_path, but settings file won't be moved in any case.

Resolved by: #51


Adds listener to the pagination

Subscription to change events from pagination are used to reset the settings made before page reloaded or anything else.

In my tests with a huge test database it looks like that the new pagination listener throttled (a bit) the loading time of long list views. Is it possible?

I've updated the commit.


LOON-460: Add stacktrace and info level when building

To avoid the situation we have here https://github.com/cesko-digital/loono-be/runs/5094844607?check_suite_focus=true


fix: sec<IP_ADDRESS>.1 python38 -> python39

Description of changes
Nixpkgs Manual change in Languages and Frameworks: Python section <IP_ADDRESS>.1. The given example:
with import <nixpkgs> {};

( let
    my_toolz = python39.pkgs.buildPythonPackage rec {
      pname = "toolz";
      version = "0.10.0";

      src = python39.pkgs.fetchPypi {
        inherit pname version;
        sha256 = "08fdd5ef7c96480ad11c12d472de21acd32359996f69a5259299b540feba4560";
      };

      doCheck = false;

      meta = {
        homepage = "https://github.com/pytoolz/toolz/";
        description = "List processing tools and functional utilities";
      };
    };

  in python38.withPackages (ps: [ps.numpy my_toolz])
).env

does not actually include python v3.8 with the module toolz because of different python versions. To resolve this, either the version of python with package needs to be altered to the same as my_toolz or my_toolz needs to be the same as python with packages.
In the change, I decided to change to python39.withPackages as it both more up-to-date and more in line with the other parts of the documentation.
Things done

Built on platform(s)

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

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

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

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

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

[ ] Fits CONTRIBUTING.md.

It was only a small documentation change so I didn't both building or testing. I can if you really would like me to though.

Feel free also to update all examples to use 3.10!

Okay.

that section got already changed in the meantime


adding employee from another legal entity to contract request is forbidden

https://github.com/edenlabllc/ehealth.api/issues/2765

Coverage decreased (-0.008%) to 90.788% when pulling e4e759f1779aacef3301464fa33b68d824a61447 on add_employee_from_another_LE_to_CR#2765 into ae58db08708dc82f3de510eda3aa9db2bc1d0c6f on develop.


basic_tutorial.ipynb: Might consider adding that each color in figure output from bayes_spec.plots.plot_traces() represents a different cloud model?

This is an educated guess but does each color in the figure output of bayes_spec.plots.plot_traces() represent the parameters of a different cloud model (e.g. green for one cloud model, blue for another cloud model, orange for the third cloud model in the screenshot below)? Might be helpful in basic_tutorial.ipynb to indicate this if this is the case.

Thanks for the suggestion! Indeed, each color corresponds to a different component of the parameter. For the cloud-based parameters (line_area, fwhm, velocity), each color represents a different cloud. For the baseline parameter, however, each color corresponds to a different polynomial coefficient (of which there are three when baseline_degree = 2).

Got it! Thanks for the clarification.


Fail install doom -d install

Fail install by doom -d install
It appeared to
`
λ ~/.emacs.d/bin/ develop* doom -d install
Installing Doom Emacs!

Creating .doom.d/
✓ Created .doom.d/
! init.el already exists, skipping
! config.el already exists, skipping
! packages.el already exists, skipping

Loading /Users/yangguangchen/.emacs.d/core/autoload/buffers.el (source)...
Loading /Users/yangguangchen/.emacs.d/core/autoload/cache.el (source)...
Loading /Users/yangguangchen/.emacs.d/core/autoload/cli.el (source)...
Loading /Users/yangguangchen/.emacs.d/core/autoload/config.el (source)...
Loading /Users/yangguangchen/.emacs.d/core/autoload/debug.el (source)...
Loading /Users/yangguangchen/.emacs.d/core/autoload/files.el (source)...
Loading /Users/yangguangchen/.emacs.d/core/autoload/fonts.el (source)...
Loading /Users/yangguangchen/.emacs.d/core/autoload/format.el (source)...
Loading /Users/yangguangchen/.emacs.d/core/autoload/help.el (source)...
Loading /Users/yangguangchen/.emacs.d/core/autoload/packages.el (source)...
Loading /Users/yangguangchen/.emacs.d/core/autoload/plist.el (source)...
Loading /Users/yangguangchen/.emacs.d/core/autoload/projects.el (source)...
Loading /Users/yangguangchen/.emacs.d/core/autoload/scratch.el (source)...
Loading /Users/yangguangchen/.emacs.d/core/autoload/sessions.el (source)...
Loading /Users/yangguangchen/.emacs.d/core/autoload/text.el (source)...
Loading /Users/yangguangchen/.emacs.d/core/autoload/themes.el (source)...
Loading /Users/yangguangchen/.emacs.d/core/autoload/ui.el (source)...

Error: (error (error "Failed to run "git"; see buffer straight-process"))
(signal error ("Failed to run "git"; see buffer straight-process"))
(error "Failed to run %S; see buffer %s" "git" "straight-process")
(if (car result) (cdr result) (error "Failed to run %S; see buffer %s" program straight-process-buffer))
(let ((result (apply #'straight--call program args))) (if (car result) (cdr result) (error "Failed to run %S; see buffer %s" program straight-process-buffer)))
(straight--get-call-raw "git" "clone" "--origin" "origin" "--no-checkout" "https://github.com/company-mode/company-mode.git" "/Users/yangguangchen/.emacs.d/.local/straight/repos/company-mode/")
(apply straight--get-call-raw "git" ("clone" "--origin" "origin" "--no-checkout" "https://github.com/company-mode/company-mode.git" "/Users/yangguangchen/.emacs.d/.local/straight/repos/company-mode/"))
(string-trim (apply #'straight--get-call-raw program args))
(straight--get-call "git" "clone" "--origin" "origin" "--no-checkout" "https://github.com/company-mode/company-mode.git" "/Users/yangguangchen/.emacs.d/.local/straight/repos/company-mode/")
...
(load "/Users/yangguangchen/.emacs.d/bin/doom" nil t t)
(command-line-1 ("-scriptload" "/Users/yangguangchen/.emacs.d/bin/doom" "--" "install"))
(command-line)
(normal-top-level)
x There was an unexpected error:
Type: doom-package-error
Message:
Error with packages
Data:
"company"
(error "Failed to run "git"; see buffer straight-process")
"Cloning into '/Users/yangguangchen/.emacs.d/.local/straight/repos/company-mode'...
error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: the remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
"
Straight output:
Cloning into '/Users/yangguangchen/.emacs.d/.local/straight/repos/company-mode'...
error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: the remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
`
Maybe some one had the same appearing like me ,  in case .

From what I can see and according to the error message - Failed to run "git", the installation process cannot find git executable or have problems with it. Possible issues are:

git is not installed. You can check with git --version command;
git is not available in the PATH. Can be verified with the same git --version command from the same shell from where you try to install Doom;
git installation or the repository itself is somehow broken.

@dive
git version git version 2.21.1 (Apple Git-122.3)

    error: RPC failed; curl 18 transfer closed with outstanding read data remaining
    fatal: the remote end hung up unexpectedly
    fatal: early EOF
    fatal: index-pack failed

This suggests it's a connection issue, rather than a doom issue. If you have a proxy, try disabling it. If you have url rewrites in your global git config, disable them.

Yet!  What are golden eyes!  It really cause by  network of connection.
@hlissner
The doom -d install process is very slowly. Anyway,  doom -d install  had finished after I execute these advice  from you at last.
These keys  such as below:

Firstly, commentary or delete these  4 rows  in ~/.gitconfig  like this.

[http]
        proxy = socks5://<IP_ADDRESS>:1080
[https]
        proxy = socks5://<IP_ADDRESS>:1080

Secondly, close the proxy in global mode.

Then doom-emacs's install  process can go to finish.

Many thanks for @hlissner  and @dive 's  good job!


Support numpy 2.0 in tests

CI is now pulling in numpy 2.0, so this removes the numpy deprecated np.float_ and changes it to np.double, which works with older and newer versions of  numpy.
In addition, there are a number of other changes where numpy has removed certain aliases for dtypes, so removed those from the tests.
Set up the CI to use numpy 1.x with python <=3.11, and numpy 2.0 with python=3.12 so both versions of numpy are tested.

Thank you @Dr-Irv !


feat: apply ERC1967 proxy feature onto metadata and crosschain contract

What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #
Which docs this PR relation:
Ref #
Which toolchain this PR adaption:
No Breaking Change
Special notes for your reviewer:
CI Switch
ci-runs-only: [Chaos CI, Cargo Clippy, Coverage Test, E2E Tests, Code Format, Unit Tests, Web3 Compatible Tests]

Codecov Report

Merging #633 (f9aa2de) into main (ec85dad) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #633   +/-   ##
=======================================
  Coverage   17.02%   17.02%
=======================================
  Files         142      142
  Lines       18987    18987
=======================================
  Hits         3232     3232
  Misses      15755    15755


Components render empty in Server Side Rendering

Is there any support for SSR? I noticed that when my server renders out components that are wrapped in a react-bounds component, that none of the html gets render on the Server Side generated code. Is that a known issue of this method?

Since this isn't supported, the workaround I came up with was when I'm returning a wrapped component, I check if I'm in the client or the server.
`const ResponsiveBackgroundImage = typeof window !== "undefined" ?

widthProvider(BackgroundImage) :
BackgroundImage;`

@casesandberg Wondering if this is on the radar to be supported? Thank you for putting out this library!


May not be able to view metrics when sharding prometheus

Describe the bug
When increasing the replicaCount of prometheus link to values the grafana instance will not necessarily be able to pull the data because each prometheus pod's data is not shared with the others. (see default local storage)
Expected behavior
I would expect if I increase the replicaCount to be able to access the same data from every prometheus pod.
Steps to reproduce the bug
install the helm chart with prometheus + grafana enabled and set the replicaCount of prometheus to something large like 10.
Version
istio with helm
istio           	10      	Thu Aug  9 17:20:03 2018	DEPLOYED	istio-1.0.0           	1.0.0      	istio-system
branch release-1.0
kubectl
Client Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.2", GitCommit:"bb9ffb1654d4a729bb4cec18ff088eacc153c239", GitTreeState:"clean", BuildDate:"2018-08-08T16:31:10Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.6", GitCommit:"a21fdbd78dde8f5447f5f6c331f7eb6f80bd684e", GitTreeState:"clean", BuildDate:"2018-07-26T10:04:08Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}

Is Istio Auth enabled or not?
No
Environment
aws kubernetes with kops
Cluster state
I don't believe this is necessary
Potential Solution
Have a default remote time series db that is shared among the prometheus pods. See Remote Storage Integrations

For the most part, Istio has provided relatively simple example configurations and deployments for the add-ons (such as Prometheus). We have not attempted, to-date, to focus on improving the robustness or general scalability of the add-ons. That being said, we would love to have community contributions around this issue.
For Prometheus itself, there is a FAQ about running HA prometheus here: https://prometheus.io/docs/introduction/faq/#can-prometheus-be-made-highly-available.

Yes, run identical Prometheus servers on two or more separate machines.

This recommended approach would seem to be inline with multiple replicas of Prom running with the same config, perhaps with the difference being around independent addressability.
There was an issue tracking HA on prometheus here: https://github.com/prometheus/prometheus/issues/1500. It had similar recs.
I think the trick would be getting Grafana to not ping back and forth across the multiple replicas (to ensure you aren't seeing data bounce across collection times, etc.).
There is some discussion here: https://community.grafana.com/t/recommended-ha-setup/1526/13.  I believe grafana has some support for sticky sessions, though I have not tested it nor am I aware of its limitations.

@Douglas-reid thanks for pointing me to the relevant info. For now it seems single Prometheus instance will serve my need (it’s  supposed to support up to roughly 1000 servers I read online), but in the future if I need to revisit I can modify.


newOreEntity missing local

https://github.com/VortiK/vtk-deep-core-mining/blob/525bb17ede8118980ff7fea79b47710032012bbe/lib/resource.lua#L139
variable newOreEntity does not have local so entity ref will not be serialised during save and so desync is possible

Thanks for this report, sorry I didn't see it earlier ! It is fixed in 1.21.1 now.


User defined cookies

Added a method that would allow to pass in a hash called user_cookies, this has may hash's key will be taken as the name of the cookie, and a hash with all the other values to be used, options available in JMeter docs

Sorry for the delay - this is going to need a refactor to fit in with the latest layout

I have refactored the code to work with the latest layout :)


Planned new features

Hi,
first thanks for this module.
I'm planning to use it  to sync cohors with  external systems.  First I have to return all cohorts from moodle. I would like  do some tuning to module code  make this little easier to implement.
Are you willing to accept pull request if I write "return all" ie. -all switch logic for Get-MoodleCohort. There's also need for add -limitfrom and -limitnum parameters.

Hi @PetriAsi!
Sorry - had some time off last week so I'm just getting to this now.
I see your pull requests. I am not using the cohort functions personally so I'll have to take your word for them that they work the way you intend and won't break anyone already using them. Are you confident?

NP at all. We all have other things to do.
I have been as careful as I could when making  changes.  I always try to look from other users perspective all code and feature I wrote.  So I'm confident that I have done everything not to break anything when adding features.
Have you any plan to include github CI/CD to MoodlePS?  Reason I ask is that  I'm maintaining couple of modules SnipeitPS and WilmaPSWorker both
are using AppVeyor for automatic testing and pushing releases to powershell gallery.  CI/CD is little work to set up, but it makes
releasing and testing so easy.
Starting point could be just  adding development branch here for merging and testing pull requests.
(Just tagging my current PRs here #12 , #13)

Oh we definitely have CI/CD working. When I publish a new "release" on GitHub, a new version of the module is automatically pushed to the gallery.

OK I've merged your two pull requests and will publish a new version soon! Tied up in meetings this arvo so it may be tomorrow. It doesn't take long but I want to be free while it happens in case I need to resolve any issues.

Oh we definitely have CI/CD working. ...
That's nice to hear. Setup must be cleaner than that copied for my module. :)


Replace brotli.js with native code implementation

Removes brotli.js and polyfills used to decode .br files within JavaScript.
Instead, use existing libbrotlidec on C++ code, using adapted source from brotli code (which we depend on).
This saves about 100 KiB or so, mostly extra dictionary size.

Applied the changes suggested on the review.


scipy.integrate.solve_ivp runtime event

I would like to include an event in my ODE solver that requires the solver to terminate after it has been running for 60 seconds. However, when I include the below event function, I receive an error:

ValueError: f(a) and f(b) must have different signs

Do you know why this may be happening and how to remedy it?
def time_event(t, y, start, elapsed_max=60):
    current = time.time()
    elapsed = current - start
    return elapsed - elapsed_max

Hi @chsher. Please note that this is not a user forum but a bug/enhancement reporting platform. We don't have the necessary bandwidth to address questions.
If after asking on StackOverflow or the mailing list there is indeed a bug, we would be happy to have a look.


BYOD Mailboxes not working in office 365 pre-collect

The pre-collect functions had code chagnes to look at full recipient objects when gathering all objects.  This code does not work when the BYOD function was called using only a list of SMTP addresses.  Updated functions to ensure that each SMTP address specified had a get-EXORecipient on it so that a full recipient object could be utilized for further evaluation.


fix typo

Fix typo on Line 663: "Sie könne" --> "Sie können"

Coverage: 90.429%. Remained the same when pulling 526cdd39bcae6c36ae13694688b5cfc2a0a88490 on typo into ff213b4bc89c438475fa69abf2df9575a4ab2ef0 on master.

:pray:


Update readme to include CI status and basic content

This PR provides a quick blurb about the package, a table of badges showing the status of our CI (among other things), and how to install the package from PyPi via pip.
We can always add more later, but this gives us some basic info on the README ahead of v0.1.0 release.

@fkiraly I believe this should be ready for your review.
Note that in the installation section, I mention Python versions through 3.10, but the bade doesn't say 3.10 yet. Should be cleared up when we release v0.1.0.

Codecov Report

Merging #38 (070c1d8) into main (27ca157) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #38   +/-   ##
=======================================
  Coverage   58.23%   58.23%
=======================================
  Files          18       18
  Lines        1463     1463
=======================================
  Hits          852      852
  Misses        611      611

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.