Introduce NsInfo to support finding symbols in different mount namespace

Resolving symbols from different mnt namespaces is currently not supported, which is very unfriendly for debugging container environments. So add this ability as perf: https://github.com/torvalds/linux/commit/843ff37bb59edbe51d64e77ba1b3245a15a4dd9f.

Compile and run below code in a normal container.

void __attribute__ ((noinline)) boo() {}

void __attribute__ ((noinline)) baz() { boo; }

void __attribute__ ((noinline)) bar() { baz(); }

void __attribute__ ((noinline)) foo() { bar(); }

int main(void)
{
        while (1) {
                foo();
        }
}

cherry-pick this pr to 0.8 and tested with libbpf-bootstrap's profile, get the syms like below:
COMM: main (pid=786936) @ CPU 8
No Kernel Stack
Userspace:
mntns_path: "/proc/786936/ns/mnt"
0000555be4e00606: baz @ 0x600+0x6 /main.c:9
0000555be4e00626: foo @ 0x618+0xe /main.c:20
0000555be4e00637: main @ 0x629+0xe /main.c:26
00007f880ab29d85: __libc_start_main @ 0x3aca0+0xe5
5541f689495641d7: <no-symbol>

@anakryiko @d-e-s-o PTAL, thanks!

but can you please add a test that requires the mount namespace setup for correct functioning

Sure, will add it, thanks!

I think it looks mostly great now. I left a few more comments/suggestions. Please update the pull request once you have the test that I mentioned earlier and we can get it merged. Also, please squash all commits so that we have a consistent and functioning history. Thanks again!

I am very happy to participate in this project and thank you for providing many valuable suggestions. Comments are currently fixed,
tut I encountered a problem with the test about enter_mntns, I want to add a test, such like (for easily test, I setup a container and run top in it to verify it first):
#[test]
   fn access_other_mnt_ns() {
       let nsi = NsInfo::new(Pid::from(top's root pid));
       assert!(nsi.as_ref().is_ok());
       let nsi = nsi.unwrap();
       assert!(nsi.need_setns());
       assert!(enter_mntns(&nsi).is_ok());
   }

But this test fails when call setns in enter_mntns, the OS return error code EINVAL.  I printed the parameters and confirmed their validity, then cherry-picked this pr into libbpf-bootstrap and made sure it works fine.  So It seems to be related to the mechanism of cargo test,  further investigation is needed.  Do you have any suggestions on this issue?

So It seems to be related to the mechanism of cargo test, further investigation is needed. Do you have any suggestions on this issue?

Well, I can reproduce it on your latest version, but it seems it worked on the first one: there the setns restoration (in Drop) fails, but seemingly not the initial setns. Or perhaps it's not happening at all. Haven't debugged further.
In any event, here is a programmatic test: https://github.com/d-e-s-o/blazesym/tree/ethercflow/topic/mnt-ns-v2
$ RUST_LOG=trace RUST_BACKTRACE=1 cargo test --test=mnt-ns -- --nocapture
2023-12-28T20:11:01.729029Z  WARN symbolize_single{src=Process(2006) input=AbsAddr(
    0x7fd851d9d140,
)}: blazesym::namespace: failed to setns to "/proc/2006/ns/mnt": Invalid argument (os error 22)
2023-12-28T20:11:01.729148Z  WARN symbolize_single{src=Process(2006) input=AbsAddr(
    0x7fd851d9d140,
)}: blazesym::namespace: failed to set mount ns back, err: Invalid argument (os error 22)
thread 'mnt_ns' panicked at tests/mnt-ns.rs:63:10:
called `Result::unwrap()` on an `Err` value: Error: Invalid argument (os error 22)

Stack backtrace:
   0: <blazesym::error::Error as core::convert::From<std::io::error::Error>>::from
             at ./src/error.rs:488:28
   1: blazesym::namespace::enter_mntns
             at ./src/namespace.rs:77:20
   2: blazesym::namespace::NsInfo::new
             at ./src/namespace.rs:118:9
   3: blazesym::symbolize::symbolizer::Symbolizer::symbolize_user_addrs
             at ./src/symbolize/symbolizer.rs:551:19
   4: blazesym::symbolize::symbolizer::Symbolizer::symbolize_single
             at ./src/symbolize/symbolizer.rs:930:35
   5: mnt_ns::mnt_ns
             at ./tests/mnt-ns.rs:61:18
   6: mnt_ns::mnt_ns::{{closure}}
             at ./tests/mnt-ns.rs:28:1
   7: core::ops::function::FnOnce::call_once
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/ops/function.rs:250:5
   8: test::__rust_begin_short_backtrace
   9: test::run_test::{{closure}}
  10: std::sys_common::backtrace::__rust_begin_short_backtrace
  11: core::ops::function::FnOnce::call_once{{vtable.shim}}
  12: std::sys::unix::thread::Thread::new::thread_start
  13: <unknown>
  14: <unknown>

I just cherry-picked that on top of v1.

Well, I can reproduce it on your latest version, but it seems it worked on the first one: there the setns restoration (in Drop) fails, but seemingly not the initial setns.

Actually no. It's the cleanup paths that's broken there. We setns the original even if we never enter_mntns() succesfully. So it's the same problem.

The other thing that I don't fully understand is why I can symbolize an address that should be in a binary in a new mount namespace correctly, even without your patch.
$ sudo data/test-mnt-ns.bin /home/deso/local/opt/blazesym/data/libtest-so.so
0x7f62f3fe6130

$ pgrep test-mnt | xargs
2775
$ cargo run -p blazecli -- symbolize process --pid 2775 0x7f62f3fe6130
0x007f62f3fe6130: await_input @ 0x1130+0x0

So it seems as if either mount namespaces aren't the only issue or my mount namespace setup is somehow broken.

I ended up adding this test in a slightly modified form as part of #469. It can be used as a baseline for additional tests requiring different setup and similar.

The other thing that I don't fully understand is why I can symbolize an address that should be in a binary in a new mount namespace correctly, even without your patch.

$ sudo data/test-mnt-ns.bin /home/deso/local/opt/blazesym/data/libtest-so.so

0x7f62f3fe6130

$ pgrep test-mnt | xargs

2775

$ cargo run -p blazecli -- symbolize process --pid 2775 0x7f62f3fe6130

0x007f62f3fe6130: await_input @ 0x1130+0x0

So it seems as if either mount namespaces aren't the only issue or my mount namespace setup is somehow broken.

I find the reason，it works without this pr as https://github.com/libbpf/blazesym/commit/327f2884205d5f3e7b24dc8b06f9bd9a40d71f2f.
I found this project not work as the version I'm using with libbpf-tools is too old， not include the ability of parsing from /proc/pid/map_files. So I thought setns is the only solution.

I find the reason，it works without this pr as 327f288.
I found this project not work as the version I'm using with libbpf-tools is too old， not include the ability of parsing from /proc/pid/map_files. So I thought setns is the only solution.

Ah, perfect. Yes, it was my understanding that this change should help with precisely that, but I figured it may not be the full story given your report.
So I assume it's working for you now? If so, can we close this pull request?

I find the reason，it works without this pr as 327f288.

I found this project not work as the version I'm using with libbpf-tools is too old， not include the ability of parsing from /proc/pid/map_files. So I thought setns is the only solution.

Ah, perfect. Yes, it was my understanding that this change should help with precisely that, but I figured it may not be the full story given your report.
So I assume it's working for you now? If so, can we close this pull request?

Yes, I think we can close this now,BTW as it's my first time to know /proc/pid/map_files, I'm wondering if there is any limit or shortcoming when using it?

I ended up adding this test in a slightly modified form as part of #469. It can be used as a baseline for additional tests requiring different setup and similar.

Thanks for your help, I'll keep debuging the setns error for learning then update the reason here.
Thanks again for your gave a lot of helps to me.

BTW as it's my first time to know /proc/pid/map_files, I'm wondering if there is any limit or shortcoming when using it?

The only shortcoming that I am aware of is that in order to dereference a link in this directory you need to have the CAP_SYS_ADMIN capability. In practical terms that pretty much means we need to be root in order to perform symbolization.

I'll keep debuging the setns error for learning then update the reason here.

Update:

I used gdb to debug kernel found the EINVAL return from https://github.com/torvalds/linux/blob/master/fs/namespace.c#L4962. the fs->users 's value is two;
I added a loop in access_other_mnt_ns before call enter_mntns, and found cargo test tests::access_other_mnt_ns  is a process with two threads, which will call clone with CLONE_FS, so that's why fs->users's value is two;
I wrote a simple rust code to double verify it: call enter_mntns in a one thread process is OK, create a new thread then call enter_mntns will fail with EINVAL ;

cc @d-e-s-o

Interesting! Thanks for the update.


Upgrade Pagefind to 1.3.0 and configure Pagefind logging levels

Description

This PR updates Starlight’s Pagefind dependency to 1.3.0.
Thanks to https://github.com/CloudCannon/pagefind/issues/745 we can now forward Astro’s logging level to Pagefind to reduce (or increase) log verbosity in line with user preference.
Marking this as a draft for now as we still have to consider #1750 and some of the bundle size changes, but wanted to put this up as a PR before I forget about the logging level feature.

size-limit report 📦

Path
Size

/index.html
7 KB (+0.03% 🔺)

/_astro/*.js
25.71 KB (+21.31% 🔺)

/_astro/*.css
13.75 KB (0%)

I’ve repeated @HiDeoo’s exercise from #1750 of comparing results for a selection of search terms in the Starlight docs.
For results that changed rank, I’ve added the difference in ranking compared to Pagefind v1 to help highlight what changed. Bolded entries are results that I’ve subjectively decided are “good” or “best” results, to help track those across columns. I’ve also added a subjective “impact” assessment for each query to summarize my impressions.
Query: setup
Impact: 👎 Negative — slightly worse than before, although not terribly

Rank
1.0
1.3, termFrequency: 1
1.3, termFrequency: 0.5
1.3, termFrequency: 0

1
Manual Setup
+1 Plugins Reference
+1 Plugins Reference
+1 Plugins Reference

2
Plugins Reference
-1 Manual Setup
-1 Manual Setup
-1 Manual Setup

3
Using components
Using components
Using components
+2 Customizing Starlight

4
Getting Started
Getting Started
Getting Started
-1 Using components

5
Customizing Starlight
Customizing Starlight
Customizing Starlight
-1 Getting Started

Query: installation
Impact: Neutral — we don’t have clear content for this query, closest being “Manual Setup”

Rank
1.0
1.3, termFrequency: 1
1.3, termFrequency: 0.5
1.3, termFrequency: 0

1
Site Search
+1 Authoring Content in Markdown
+1 Authoring Content in Markdown
+1 Authoring Content in Markdown

2
Authoring Content in Markdown
-1 Site Search
-1 Site Search
+1 Customizing Starlight

3
Customizing Starlight
Customizing Starlight
Customizing Starlight
-2 Site Search

4
CSS & Styling
CSS & Styling
CSS & Styling
CSS & Styling

5
Manual Setup
Manual Setup
Manual Setup
+1 Configuration Reference

Query: page
Impact: 👎 Negative — wildly different results, which in the worst case removes the “Pages” result entirely

Rank
1.0
1.3, termFrequency: 1
1.3, termFrequency: 0.5
1.3, termFrequency: 0

1
Pages
+15 Internationalization (i18n)
+15 Internationalization (i18n)
+5 Overrides Reference

2
Site Search
+4 Overrides Reference
+4 Overrides Reference
+6 Frontmatter Reference

3
Overriding Components
-1 Site Search
-1 Site Search
-2 Pages

4
Customizing Starlight
+4 Frontmatter Reference
+4 Frontmatter Reference
+7 Configuration Reference

5
Eco-friendly docs
+6 Configuration Reference
+6 Configuration Reference
+11 Internationalization (i18n)

(Pages ranked №8)
(Pages ranked №8)

Query: markdown
Impact: 👎 Negative — downranks the obvious result, which is not ideal

Rank
1.0
1.3, termFrequency: 1
1.3, termFrequency: 0.5
1.3, termFrequency: 0

1
Authoring Content in Markdown
+9 Overrides Reference
+9 Overrides Reference
Authoring Content in Markdown

2
Link Cards
-1 Authoring Content in Markdown
-1 Authoring Content in Markdown
+8 Overrides Reference

3
Steps
-1 Link Cards
-1 Link Cards
+2 Pages

4
Card Grids
+1 Pages
+1 Pages
Card Grids

5
Pages
-1 Card Grids
-1 Card Grids
-4 Link Cards

Query: component
Impact: 👍 Positive — surfaces the same key content, plus adds “Pages” which does include page component docs

Rank
1.0
1.3, termFrequency: 1
1.3, termFrequency: 0.5
1.3, termFrequency: 0

1
Using components
Using components
Using components
+2 Overrides Reference

2
Overriding Components
+19 Pages
+19 Pages
-1 Using components

3
Overrides Reference
Overrides Reference
Overrides Reference
-1 Overriding Components

4
Eco-friendly docs
-2 Overriding Components
-2 Overriding Components
+2 File Tree

5
Code
+1 File Tree
+1 File Tree
+3 Card Grids

Query: css
Impact: Neutral — no significant changes for the most part

Rank
1.0
1.3, termFrequency: 1
1.3, termFrequency: 0.5
1.3, termFrequency: 0

1
CSS & Styling
CSS & Styling
CSS & Styling
CSS & Styling

2
Icons
Icons
Icons
+2 Customizing Starlight

3
Starlight Showcase
+1 Customizing Starlight
+1 Customizing Starlight
+2 Configuration Reference

4
Customizing Starlight
-1 Starlight Showcase
-1 Starlight Showcase
-2 Icons

5
Configuration Reference
Configuration Reference
Configuration Reference
-2 Starlight Showcase

Query: language
Impact: Neutral — over promotes “Overrides Reference”, but otherwise OK

Rank
1.0
1.3, termFrequency: 1
1.3, termFrequency: 0.5
1.3, termFrequency: 0

1
Internationalization (i18n)
+4 Overrides Reference
+4 Overrides Reference
Internationalization (i18n)

2
Link Cards
-1 Internationalization (i18n)
-1 Internationalization (i18n)
+2 Configuration Reference

3
Make your docs shine with Starlight
-1 Link Cards
+1 Configuration Reference
+2 Overrides Reference

4
Configuration Reference
Configuration Reference
-2 Link Cards
+3 Authoring Content in Markdown

5
Overrides Reference
+1 Pages
+1 Pages
+3 Sidebar Navigation

Query: sidebar
Impact: 👎 Negative — only the termFrequency: 0 variant returns similarly appropriate results

Rank
1.0
1.3, termFrequency: 1
1.3, termFrequency: 0.5
1.3, termFrequency: 0

1
Sidebar Navigation
+4 Configuration Reference
+4 Configuration Reference
Sidebar Navigation

2
Overrides Reference
Overrides Reference
Overrides Reference
Overrides Reference

3
Pages
Pages
Pages
+1 Frontmatter Reference

4
Frontmatter Reference
-3 Sidebar Navigation
-3 Sidebar Navigation
+1 Configuration Reference

5
Configuration Reference
-1 Frontmatter Reference
-1 Frontmatter Reference
-2 Pages

Query: lastUpdated

Impact: Neutral — no change

Rank
1.0
1.3, termFrequency: 1
1.3, termFrequency: 0.5
1.3, termFrequency: 0

1
Overrides Reference
Overrides Reference
Overrides Reference
Overrides Reference

2
Frontmatter Reference
Frontmatter Reference
Frontmatter Reference
Frontmatter Reference

3
Configuration Reference
Configuration Reference
Configuration Reference
Configuration Reference

Query: plugin
Impact: Neutral — no significant change (reference page second would be nice, but hard to expect the search index to distinguish between guides and reference without assistance)

Rank
1.0
1.1
1.1 with 0.5 term frequency
1.1 with 0 term frequency

1
Plugins and Integrations
+1 Plugins Reference
+1 Plugins Reference
+1 Plugins Reference

2
Plugins Reference
-1 Plugins and Integrations
-1 Plugins and Integrations
-1 Plugins and Integrations

3
Configuration Reference
CSS & Styling
CSS & Styling
Configuration Reference

4
CSS & Styling
+1 Site Search
+1 Site Search
CSS & Styling

4
Site Search
-1 Configuration Reference
-1 Configuration Reference
Site Search


Remove maven tool

Signed-off-by: Sayali Gaikawad<EMAIL_ADDRESS>Description
Coming from https://github.com/opensearch-project/opensearch-ci/pull/166#pullrequestreview-1047219557
Removing maven here as it is already installed on docker images.
https://github.com/opensearch-project/opensearch-build/blob/main/docker/ci/dockerfiles/current/build.centos7.opensearch.x64.arm64.dockerfile#L52-L57
Issues Resolved
List any issues this PR will resolve, e.g. Closes [...].
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #2359 (eb7aa14) into main (528cdfc) will increase coverage by 5.38%.
The diff coverage is n/a.

@@              Coverage Diff              @@
##               main     #2359      +/-   ##
=============================================
+ Coverage     94.61%   100.00%   +5.38%
=============================================
  Files           209         6     -203
  Lines          4309       105    -4204
  Branches         29        19      -10
=============================================
- Hits           4077       105    -3972
+ Misses          226         0     -226
+ Partials          6         0       -6

Impacted Files
Coverage Δ

src/sign_workflow/sign_args.py

..._workflow/input_manifests_opensearch_dashboards.py

src/ci_workflow/ci_check_package.py

src/ci_workflow/ci_check_lists.py

src/manifests/input_manifests.py

src/assemble_workflow/bundle_opensearch.py

src/test_workflow/integ_test/distribution_tar.py

src/assemble_workflow/bundles.py

...ests/jenkins/jobs/AssembleManifest_tar_Jenkinsfile

...w/perf_test/perf_test_runner_opensearch_plugins.py

... and 193 more

Help us with your feedback. Take ten seconds to tell us how you rate us.

ci-runner:ci-runner-centos7-v1

Yes I brought up containers for all above 3 docker images and logged in and checked for mvn version. They all contain maven.
Thanks!


Updated to Angular2-beta.11 and fixed View references

The main change here is the removal of "@View", which doesn't exist anymore in Angular2-beta.11 and causes a runtime exception. I've also updated the project dependencies according to the new Angular2 version.

hey, am gonna take the idea, but not merge, as the PR included .d.ts and .js files, only .ts files should be updated. also the order of the references in package.json are changed, makes it difficult to spot differences. otherwise, thank you, am moving this in now!

updated. doing release now.


Mud2 isn't compatible with webpack5

There are various issues when bundling mud packages with webpack5 (the default bundler for NextJS projects...although they are switching to Turbopack)
Here are some issues I ran into trying to figure this out:

Named imports from JSON files
Webpack5 requires imports from JSON files to be imported as default, and errors on named imports. In MUD, named imports from JSON are everywhere, especially when importing abis.
For example, this line here should be changed from
import { abi as IStoreAbi } from<EMAIL_ADDRESS>to
import IStore from<EMAIL_ADDRESS>and then
const abi = IStore.abi to get the abi.
See this related issue: https://github.com/quasarframework/quasar/issues/7943

Imports with ".js"
Webpack5 couldn't handle these. Wrote this custom webpack config to deal with these (looks for lattice packages, removes .js from imports in the package during the resolve step
Get errors like this: Module not found: Can't resolve './SchemaType.js'
Here was the custom webpack config:

webpack: (webpackConfig, { webpack }) => {
    webpackConfig.plugins.push(
      new webpack.NormalModuleReplacementPlugin(new RegExp(/\.js$/), function (
        /** @type {{ request: string }} */
        resource
      ) {
        if (resource.request.startsWith(".")) {
          const path = resolve(resource.context, resource.request);
          if (path.includes("@latticexyz/schema-type") && !existsSync(path)) {
            resource.request = resource.request.replace(".js", "");
          }
        }
      })
    );
    return webpackConfig;
  }

There might be other issues as well, these are the ones I ran into before switching to Vite

potential fix: https://github.com/latticexyz/mud/pull/682
still need to confirm/repro

this was optimistically closed via #682, feel free to reopen if this doesn't fix the issues you were seeing!
I'll plan to spin up an example project using Next.js soon that we can use to test against

I'll plan to spin up an example project using Next.js soon that we can use to test against

yes, please do make all React templates with next.js, it's a huge quality-of-life improvement. And it supports server API routes, which are useful for all sort of things.


Model distillation

Hi , thanks for the Jax code , Are there any plans for distilling the existing/orignal model ?

Potentially 👀 We only have working checkpoints for LibriSpeech so far: https://huggingface.co/distil-whisper


Fix nonexistent os_sec_plugin_conf_path directory error

Signed-off-by: Peter Zhu<EMAIL_ADDRESS>Description
Fix nonexistent os_sec_plugin_conf_path directory error.
Issues Resolved
#80
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

See https://github.com/opensearch-project/ansible-playbook/issues/80#issuecomment-1267371652


unable to set migration strategy per model

Sails version: 1.0.2
Node version: 8.9.4
NPM version: 6.1.0
DB adapter name: sails-disk
DB adapter version: version that ships with sails 1.0.2
Operating system: Windows 8.1 Enterprise

Howdy,
I've started to use Sails v1 for new projects after using v0.12 for many previous projects. In v0.12, I set a migration strategy I wanted to use for my models in config/models.js.
/**
 * Default model settings
 * (sails.config.models)
 */
module.exports.models = {
    migrate: 'drop',
}

For a given model, I could set a different migration strategy in that model file (eg. api/models/Kitten.js) that would override what was in config/models.js.
/**
 * Kitten.js
 *
 * @description :: A model definition.  Represents a database table/collection/etc.
 * @docs        :: https://sailsjs.com/docs/concepts/models-and-orm/models
 */
module.exports = {
    migrate: 'safe',
    attributes: {

    }
}

When the server lifted, it would honor this model-specific migration strategy, and leave my kittens data intact.
Is this no longer the default behavior in v1.x? I do not see this on the list of breaking changes when upgrading to v1.
Steps to reproduce (or see this repo):

Generate a new app: sails generate new testapp1
Create a kitten model: sails generate model kitten
Create a puppy model: sails generate model puppy
Set migrate: 'drop' in config/models.js
Start sails with node app.js
Hit http://localhost:1337/kitten/create a couple times to generate some kittens.
Shut down sails
Add migrate: 'safe to api/models/Kitten.js
Start sails with node app.js
Go to http://localhost:1337/kitten... we've lost all the kittens.

@chestercharles The Sails v1.0 breaking changes log states, "The experimental create auto-migration scheme is no longer supported. It is highly recommended that you use a migration tool such as Knex to handle migrations of your production database."  Hope this helps!

@johnabrams7 , I don't think the "create auto-migration scheme" is what I'm trying to use, here. I just want to be able to use different migration strategies for different models.
For example, in my case I have a User model which uses a datastore that is actually a web service that pulls data for employees at my company. I want to configure the model so that it always uses the safe migration strategy
The Model Settings documentation state they "can be specified on a per-model basis by setting top-level properties in a model definition". I would assume this includes the migrate setting.

After digging into the sails-hook-orm, it appears that auto-migrations are performed using whatever migration strategy is set in sails.config.models.migrate:
https://github.com/balderdashy/sails-hook-orm/blob/master/lib/build-ontology-and-run-auto-migrations.js#L132
    // Now that all relevant attributes have `autoMigrations` properties set, go ahead
    // and perform any requested migrations.
    WaterlineUtils.autoMigrations(sails.config.models.migrate, freshOntology, function(err) {
      if (err) { return done(err); }

      return done(undefined, freshOntology);
    });

I would expect that the orm hook would also inspect the migrate setting of each model, and perform the corresponding auto migration strategy.

Hi @chestercharles,
I am looking into your issue more (thanks alot for adding a repo so I can easily test it out!) The first thing I am noticing is that in your config/models.js you have migrate set to drop.  So all your kittens are lost because its wiping your data clean!
I think you want to start with your migrate: 'alter' and see where that gets you!
Also here are the official docs for migration for  easy access:
https://sailsjs.com/documentation/concepts/models-and-orm/model-settings#?migrate

Hi @raqem, thanks for looking into the issue.
My confusion is not about what the different migration strategies do, but rather why Sails no longer supports migrate as a top level model property.
The documentation says:

Model settings allow you to customize the behavior of the models in your Sails app. They can be specified on a per-model basis by setting top-level properties in a model definition, or as app-wide defaults in sails.config.models.

However, in Sails v1 this is not the case - the migrate setting cannot be set on a per-model basis. It can only be set as an app-wide default in sails.config.models.
In Sails v0.12.9 I was able to have a different migrate setting per each model - this was very helpful when I had different models using different connections (datastores) that may or may not be read-only. I've modified my initial repo to include another puppy/kitten app generated with Sails v0.12.9 to demonstrate this.
I could certainly be misunderstanding something, but this appears to be a breaking change?

Hi @raqem. Does my previous question make sense? Have you and your team had a chance to take a look at this yet?

I have the same issue that @chestercharles it's commenting. I have the inverse situation, my db is so big that my migration it's on safe and i want to alter or drop certain models but keep safe migration for the rest of the models.

I've been working around this by making the drop and define methods fail silently in my custom adapters for read only data:
define: function (datastoreName, tableName, definition, done) {
    logger.warn(`Adapter method ('define') not implemented in this adapter.`)
    return done();
  },

However, this is a sloppy hack and would not work in @krewx 's situation.
Does Sails plan to support setting migration strategies per model?

Hi @chestercharles,
So sorry for the long delay! I am going to tackle someone today until I can get some kind of satisfactory answer for you before the holiday!

Hey @chestercharles @krewx,
Its official, Sails V1 does not support setting each model to its own migration schema.

It was there in the docs all along but apparently a little too easy to read over since I swear I read that page a half-dozen times.
My understanding is that this was done to avoid having a situation where associated models have different migration strategies and by one slip up become a massive tangle and database death-heap.

@raqem I did see that note in the docs, but I thought it was just a suggestion.
Here is my case why you should consider supporting it:
In most real life situations, an application is going to need to interact with more data sources than just the core CRUD models, eg.  like 3rd party APIs.
Sails/Waterline is awesome because it provides an adapter specification (and generator) so that I can integrate these different datastores into my applications and interact with them using the sails model APIs.
However, if I need to use a datastore that is read-only (say, to integrate data from an external system), without being able to specify migration strategies per model (or at least per datastore) I can no longer use the migration feature of sails.
Also, I can no longer use the sails-disk adapter for quick-rev development since I can't really manually migrate models with sails-disk. And for any relational databases I want to use, I have to manually create all the tables.
I feel like dropping support for this feature undermines the benefits of the adapter-based approach of waterline. It is going to be too much of a burden to use Sails to develop applications that need data from external systems via waterline adapters.
My two cents -  thanks for your consideration and happy Thanksgiving :)

The option to set the migration strategy on a per-model basis was incredibly useful.  Maybe using another migration tool is safer but I'm not going to do it.  I keep coming back to Sails because the ORM is badass but this change makes the ORM significantly less useful. Please bring it back

Hi @alwaysAn0n,
Thanks for the love! And for your thoughts on the issue. The more people who share ya'lls feelings on the matter the more the Sails team will keep this in mind.
I am sorry I cant offer any promises but we are hearing ya!
~Cheers

Hey ya'll @chestercharles, @krewx, @alwaysAn0n
Brought this up to @mikermcneil in a meeting. This is a totally valid use-case (thanks for providing one so we can get into your headspace!)
The biggest blocker for making this happen is associated models.
Since Waterline auto creates a join-table what would the migrate setting be for that table if the two associated models had different migrate strategies?

If anyone is interested in giving this a good think and making a PR Mike is interested in reviewing it. But for now, it’s just not on the docket for the core team.

Thanks for the quick response Sails team!

The biggest blocker for making this happen is associated models.
Since Waterline auto creates a join-table what would the migrate setting be for that table if the two associated models had different migrate strategies?

That's a totally valid concern.  I would do it like this.  When trying to auto-migrate a particular model, check if it actually does have associations.  If yes, refuse to migrate ( and log a warning ) unless all associated models share the same per-model migration strategy as the model in question.  If the model in question doesn't have associations, migrate using the specified per-model migration strategy.
As for submitting a PR, I might be able to do that.  Would this only require a change in waterline-utils or does it touch sails-hooks-orm and/or the adapters?

@alwaysAn0n all automigrations logic is driven by sails-hook-orm, but it does use some utilities in waterline-utils.  So this is something that'd mostly live in waterline-utils, I think, but it'll definitely involve npm link-ing both of those packages, and might also involve changes in sails-hook-orm that I'm not thinking of right now.  (tldr; yes I think only waterline-utils, but be sure to link and test in the context of a sails app to make sure there aren't any unexpected surprises.  automigrations have been notoriously difficult to test)

I'm experiencing the same thing. Seems counter intuitive to force migration policy at the entire app level, as it removes our ability to integrate legacy databases with stuff we're newly developing.

@mikermcneil made a couple PRs to address this. I imagine you'll want some things changed, but would like your feedback and to know what I need to change to get it in. Thanks!
https://github.com/sailshq/waterline-utils/pull/89
https://github.com/balderdashy/sails-hook-orm/pull/19

Hey Mike, I also wanted to thank you and the team for making Sails, and look forward to using it to make life easier!

@atomiccc thanks! I like (a lot) the idea of it being per-datastore rather than per-model  (makes way more sense) -- for consistency, I think that'll mean updating the docs to change it from a model setting to a standard datastore config key.
The only problem is that this way is potentially a breaking change, depending on how we do it.  And realistically, the right way to do this is with a breaking change, since that way we're not adding a bunch of deprecation warnings and stuff we have to unwind later.
I'd like to hear some other thoughts too, just to get a sense of whether this change would obviously mess anyone up in some way we're not anticipating.

I’m not sure why this would be a breaking change. It seems like there should be a default (app-wide) migration strategy if one isn’t specified.  That’s the current behavior and nothing to deprecate. This feature should only build on that; use the strategy added to the adapter, if specified.
Ideally, though, setting the strategy in the adapter is still too wide. I don’t want to discount the concerns and complications previously mentioned, but the migration strategy should be a per-model setting.
I have models that are simple ORM interfaces to database views. For instance, I’ve been granted access to an HR employee view of a database I don’t administer. I don’t have permission to drop those views, nor would I want to. They are read-only data, which should also not be replicated in another database, to honor data governance policies.
In other databases, which I do have write access, I don’t want to accidentally drop tables that are managed by other applications. For instance, let’s say I’m building a notification interface to notify user lists of varying system events. This notifier queries varying database looking for conditions that trigger a notification and build a subsequent  report with more details of the data. I may want to log that in an area of that database (maybe in a log db schema), without being able to drop those main tables. That requires different migration strategies w/in the same database — unless the advice is to have two adapters/connections to the same database (read stream vs write stream).

I know Mike may not be looking for parroting the original idea, but wanted to reinforce that there are countless cases where I have needed to perform migrations on a per-model basis and it makes sense to be able to set migrations at the three layers:

app
database
model

Hi @Kontributer Thanks alot for your thoughtful feedback.
I am going to keep this issue open to more community feedback mostly to address @mikermcneil concern

I'd like to hear some other thoughts too, just to get a sense of whether this change would obviously mess anyone up in some way we're not anticipating.

But we have counted you as a vote for 'in favor of changing how strict migration settings are'

this is not useful as long as there is no feature to automatically create migration such as django.

Hey, @vikas-0! We're continuing to monitor community opinion on this topic, and we appreciate your feedback!

Hey guys - just wanted to add my support for a model-level setting for migration strategy. I'm working with user data in an external database whereas all my other data is in its own database. I can't drop the external tables so this is giving me issues at the minute. If anybody has any workarounds I could use please let me know!

Hey guys - just wanted to add my support for a model-level setting for migration strategy. I'm working with user data in an external database whereas all my other data is in its own database. I can't drop the external tables so this is giving me issues at the minute. If anybody has any workarounds I could use please let me know!

The workaround I used was temporarily commenting out all models I didn't want migrated then lifting the app.

Hey guys - just wanted to add my support for a model-level setting for migration strategy. I'm working with user data in an external database whereas all my other data is in its own database. I can't drop the external tables so this is giving me issues at the minute. If anybody has any workarounds I could use please let me know!

The workaround I used was temporarily commenting out all models I didn't want migrated then lifting the app.

Yeah this is what I ended up doing also. It's a bit of an annoying warkaround though.

I just wanted to add my support for a model-level setting for migration strategy. I'm looking at a REST adapter, which does not want migrations performed ever.

Hi, I'm in a similar situation. In my case y develop a json based adapter to use with preloaded data that will not change. I have one or two models working with it and the rest of the them with mongo.
I'm writing some tests so I'm overriding the global migrate to drop so each test run with an empty db except for the two models with preloaded data.
Right now my only option is to change my drop & define to prevent the erase, but it would be great to override the migration strategy model based.
Thank all the people working hard to make sails a great framework!!! And if I can in the near feature I will be releasing the db adapter (made on top of low db).

Hey, all. I'm working on Sails Content which will definitely benefit from having a per-model or per-datastore migration. I am going to take a stab to see if I can land a PR for this.


Height of the CupertinoTextField in the CupertinoTextFormFieldRow cannot be changed.

Steps to Reproduce

See the code sample.
The height of the CupertinoTextField in the CupertinoTextFormFieldRow does not change.
Expected results:
I expect the height of the text field in the CupertinoTextFormFiledRow to fill the space of its parent, which is set by the SizedBox. But currently, it can only be changed by changing the font size.
CupertinoTextField does this as expected. InputDecoration contentPadding can be used for the Material TextFormField to do this.
Actual results:

Code sample

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

class MyHomePage extends StatelessWidget {

  const MyHomePage({
    Key? key,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Title')
      ),
      body: Center(
        child: Padding(
          padding: const EdgeInsets.all(18.0),
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              SizedBox(
                height: 150,
                child: CupertinoTextFormFieldRow(
                  placeholder: 'ABC',
                  padding: EdgeInsets.all(4.0),
                  decoration: BoxDecoration(
                    color: Colors.lightBlue,
                    borderRadius: BorderRadius.all(Radius.circular(5.0)),
                  ),
                ),
              ),
              SizedBox(
                height: 150,
                child: CupertinoTextField(
                  placeholder: 'DEF',
                  padding: EdgeInsets.all(14.0),
                  decoration:BoxDecoration(
                    color: Colors.lightBlue,
                    borderRadius: BorderRadius.all(Radius.circular(5.0)),
                  ),
                ),
              ),
              SizedBox(
                height: 150,
                child: TextFormField(
                  initialValue: '123',
                  decoration: InputDecoration(
                    contentPadding: EdgeInsets.all(48.0),
                    labelText: 'Text',
                    border: const OutlineInputBorder(
                      borderRadius: BorderRadius.all(Radius.circular(5.0)),
                    ),
                  ),
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

Logs
[✓] Flutter (Channel stable, 3.7.2, on macOS 13.1 22C65 darwin-arm64, locale en-NL)
    • Flutter version 3.7.2 on channel stable at /Users/user/development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 32fb2f948e (22 hours ago), 2023-02-08 07:30:10 -0800
    • Engine revision f40b73f8a4
    • Dart version 2.19.2
    • DevTools version 2.20.1

[!] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    • Android SDK at /Users/user/Library/Android/sdk
    • Platform android-33, build-tools 33.0.0
    • Java binary at: /usr/bin/java
    ✗ Could not determine java version

[✓] Xcode - develop for iOS and macOS (Xcode 14.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14A309
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[!] Android Studio (version 2022.1)
    • Android Studio at /Users/user/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/221.6008.13.2211.9514443/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    ✗ Unable to find bundled Java version.
    • Try updating or re-installing Android Studio.

[!] Android Studio (version 2022.1)
    • Android Studio at /Users/user/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/221.6008.13.2211.9477386/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    ✗ Unable to find bundled Java version.
    • Try updating or re-installing Android Studio.

[✓] VS Code (version 1.75.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension can be installed from:
      🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected device (3 available)
    • iPhone 13 (mobile) • 46B53203-D9FB-4139-8596-893C191A77F5 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-0 (simulator)
    • macOS (desktop)    • macos                                • darwin-arm64   • macOS 13.1 22C65 darwin-arm64
    • Chrome (web)       • chrome                               • web-javascript • Google Chrome 110.0.5481.77

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 3 categories.

Hello @cirediew. Is it possible to change the height using BoxDecoration.padding in the decoration property of CupertinoTextFormFieldRow?

@exaby73 BoxDecoration.padding is only a getter that returns border?.dimensions.
Extending BoxDecoration does not work. Extending the Border class does.
This is a work around for now, but hardly seems the optimal way to do this.
This works:
SizedBox(
                height: 150,
                child: CupertinoTextFormFieldRow(
                  placeholder: 'ABC',
                  padding: EdgeInsets.all(4.0),
                  decoration: BoxDecoration(
                    color: Colors.lightBlue,
                    border: MyBorder(top: BorderSide()),
                  ),
                ),
              ),

class MyBorder extends Border {
  const MyBorder({
    super.top = BorderSide.none,
    super.right = BorderSide.none,
    super.bottom = BorderSide.none,
    super.left = BorderSide.none,
  });

  @override
  EdgeInsetsGeometry get dimensions => EdgeInsets.all(48.0);
}

This does NOT work:
decoration: MyDec(
    color: Colors.lightBlue,
    border: Border(top: BorderSide()),
),

class MyDec extends BoxDecoration{
  const MyDec({
    super.color,
    super.image,
    super.border,
    super.borderRadius,
    super.boxShadow,
    super.gradient,
    super.backgroundBlendMode,
    super.shape = BoxShape.rectangle,
  });

  @override
  EdgeInsetsGeometry get padding => EdgeInsets.all(48.0);
}

Alright thanks for the information. Labelling the issue for insights from the team


Duplicate users not handled by frontend

In #38, RESTful status codes were implemented. The frontend has not been updated in the register section of the application.

This is not an issue. It was reported by @torch2424 as allowing users to sign up duplicates, however it does not. I have been able to duplicate what @torch2424 experienced, and it is because he was not using the backend on master, and instead using the production server.

naw naw naw naw. I meant throught the frontend yo. THe backend wors great. I'm saying the frontend isnt catching these errors. the frontend need to catch these statueses to inform the user whats going on

The frontend captures the errors just fine using success/fail REST procedure. Please test this with the frontend pointed at the correct server.

Maybe what I'm trying to say is the frontend is not handling it. like if we get Use not authorized, nothing toasts saying "USER not authorized".
You get what I'm saying? Maybe it is, and I'm derping? when I checked last night, I had to inspect element to figure out why I wasnt able to sign up

I understand now. Created #42


Level 8_2 Server 2 resting at 11.636

Hi, my human servers are resting when they're not supposed to. The first time a rest occurs is at 11.636 by Server 2. Server 1 also starts resting after a while.
When doing level 7, I had the rest time as an attribute to Shop and created a new constructor for Shop with the Server list and rest time. In each of the Event classes' return statement, I update the Shop. This includes Events that return Optional.empty() as well. I'm not sure if that's the problem?
I always do this:
Shop newShop = new Shop(updated, shop.getRestTime());
return Pair.<Optional<Event>, Shop>of(Optional.<Event>of(newEvent), newShop);

Also to cater to level 8, if the Server is a Self-Checkout, I don't add the rest time to its next available time unlike for a Human Server where I will add it. But I still return the updated Shop with shop.getRestTime() for both cases like the above.

Hi, I'm not sure about your level 7 part but for level 8 what I did was check if the server is a self checkout, if it is then I don't call the get for the rest time because it has no rest time, so the next available time will just be the current event time.

Hi !
Same as the comment above ^, what I did was to check if the polled event in my run method if it is being served by a Self-checkout or a human Server. From there, I will be able to get the rest times only when it is a human server.

Hi ! Not sure what shop.getRestTime() do , since shop has a list of servers and they all have different rest time if they want to rest. For me, for level 7, Server has a Supplier restTime attribute.  In this way, in the Done event, server.getRestTime().get() will be called, which will be added with the eventTime of the Done event to calculate the Server's next available time.
Then, my SelfCheckout will extends Server, and the Supplier restTime attribute will then be defaulted to () -> 0.0, so that the restTime will be 0 even if its called.
Hope this helps!

I managed to figure it out, thanks everyone!


[BUG] all fallback answer

OpenVoiceOS specifications (please complete the following information):

Device: Mark2-Devkit
Image release: january 2023

Describe the bug
If you install skill-ovos-fallback-chatgpt along another fallback skill, both fallback will answer
To Reproduce
Steps to reproduce the behavior:

Install skill-ovos-fallback-unknown
Install skill-ovos-fallback-chatgpt
Ask something weird (it happen a lot when not using English)
Both fallback skills answer

Expected behavior
The first fallback that answer should close the dialogue.
Additional context
Chatgpt takes a long time to answer, probably this is the reason why both fallback kick in.

Will look into this issue. as it might be related to; https://github.com/OpenVoiceOS/ovos-core/issues/383

It seems more an issue with the timeout I think, I will try to find the reference in the matrix chat, we discussed this once with @JarbasAl

with latest gpt skill this should be fixed


libadwaita: 1.1.4 -> 1.1.5

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for libadwaita is: "Library to help with developing UI for mobile devices using GTK/GNOME"
meta.homepage for libadwaita is: "https://gitlab.gnome.org/GNOME/libadwaita"
meta.changelog for libadwaita is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.1.5 with grep in /nix/store/xpx5d6asyv9h0b30r2ddqm25ay6222h4-libadwaita-1.1.5
found 1.1.5 in filename of file in /nix/store/xpx5d6asyv9h0b30r2ddqm25ay6222h4-libadwaita-1.1.5

Rebuild report (if merged into master) (click to expand)

76 total rebuild path(s)

76 package rebuild(s)

First fifty rebuilds by attrpath
adapta-gtk-theme
amberol
ashpd-demo
authenticator
bada-bib
banking
baobab
blanket
cambalache
celluloid
chrome-gnome-shell
clapper
contrast
d-spy
deja-dup
dialect
dippi
easyeffects
emulsion-palette
fragments
giara
gnome-firmware
gnome-frog
gnome-obfuscate
gnome-secrets
gnome-solanum
gnome-text-editor
gnome-tour
gnome.baobab
gnome.gnome-bluetooth
gnome.gnome-calculator
gnome.gnome-calendar
gnome.gnome-characters
gnome.gnome-chess
gnome.gnome-clocks
gnome.gnome-contacts
gnome.gnome-control-center
gnome.gnome-font-viewer
gnome.gnome-music
gnome.gnome-session
gnome.gnome-shell
gnome.gnome-software
gnome.gnome-sound-recorder
gnome.gnome-terminal
gnome.gnome-todo
gnome.gnome-tweaks
gnome.gnome-weather
gnome.gpaste
gnome.polari
gnomeExtensions.easyScreenCast

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/xpx5d6asyv9h0b30r2ddqm25ay6222h4-libadwaita-1.1.5 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A libadwaita https://github.com/r-ryantm/nixpkgs/archive/dc5b352b9013f25de06518e00c97512dc4c3f437.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/xpx5d6asyv9h0b30r2ddqm25ay6222h4-libadwaita-1.1.5
ls -la /nix/store/xpx5d6asyv9h0b30r2ddqm25ay6222h4-libadwaita-1.1.5/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

75 packages built:

adapta-gtk-theme
amberol
ashpd-demo
authenticator
bada-bib
banking
baobab
blanket
cambalache
celluloid (gnome-mpv)
chrome-gnome-shell
clapper
contrast
d-spy
deja-dup
dialect
dippi
easyeffects (pulseeffects-pw)
emulsion-palette
fragments
giara
gnome-firmware (gnome-firmware-updater)
gnome-frog
gnome-obfuscate
gnome-secrets (gnome-passwordsafe)
gnome-solanum
gnome-text-editor
gnome-tour
gnome.gnome-bluetooth
gnome.gnome-calculator
gnome.gnome-calendar
gnome.gnome-characters
gnome.gnome-chess
gnome.gnome-clocks
gnome.gnome-contacts
gnome.gnome-control-center
gnome.gnome-font-viewer
gnome.gnome-music
gnome.gnome-session
gnome.gnome-shell
gnome.gnome-software
gnome.gnome-sound-recorder
gnome.gnome-terminal
gnome.gnome-todo
gnome.gnome-tweaks
gnome.gnome-weather
gnome.gpaste
gnome.polari
gnomeExtensions.easyScreenCast
gnomeExtensions.gsconnect
gnomeExtensions.system-monitor
icon-library
junction
khronos
kooha
libadwaita
metadata-cleaner
mojave-gtk-theme
mousai
netease-cloud-music-gtk
notejot
pantheon.elementary-onboarding
pantheon.elementary-session-settings
phosh
pika-backup
rnote
shortwave
spot
symbolic-preview
video-trimmer
vimix-gtk-themes
warp
whitesur-gtk-theme
xdg-desktop-portal-gnome
zrythm

Maintainer pings
cc @bobby285271 @hedning @jtojnar @dasj19 @maxeaubrey @dotlambda for testing.

Closing in favour of #182618.


Questionnaire sub menu

As a user, when viewing a questionnaire, I would like a menu so that I can view the information I am interested in most.
When viewing a questionnaire, add a sub menu, which allows users to switch between viewing the questionnaire's general details, questions and scorings.

Opted for panels atm..


What is the best way to modify the  font size in _page.scss styles?

I'm trying to customize the font size for the .page__content class in  _page.scss.
To override how the <p> tag is working, I'm adding some css to the main.scss file after the imports, which works fine.
The documentation says you can do size customization using the type variables but they don't appear to be used in the area I want to change:
https://github.com/mmistakes/minimal-mistakes/blob/ab19c77ac9d68593467d8ec242244e6335ed7e09/_sass/minimal-mistakes/_page.scss#L111
Short of copying the entire _sass folder and customizing that way, is the way I have achieved changing the <p> font size by adding custom css the easiest path?

This post provides enough detail so closing
https://github.com/mmistakes/minimal-mistakes/issues/1352


Unable to install using npm/yarn

npm ERR! 404 Not Found - GET https://registry.npmjs.org/@bugfender%2Frn-bugfender - Not found
Getting the above error while installing this library.

As discussed privately, this URL does not return a 404, so I guess it's a temporary network error


postInit issue

I assume that due to the fact I used a waitUntil in the root initPost.sqf file, this essentially causes all scripts to halt and not load properly (woops)
Causes errors such as:
23:37:09 Error in expression <riable;

private _arrayMoneyAmount = [
HALs_money_oldManItemsPrice select 0,
HA>
23:37:09   Error position: <HALs_money_oldManItemsPrice select 0,
HA>
23:37:09   Error Undefined variable in expression: hals_money_oldmanitemsprice
23:37:09 File x\A3A\addons\core\functions\init\fn_initVarServer.sqf..., line 264
23:37:09  ➥ Context: 	[] L1 (x\A3A\addons\maps\Antistasi_Malden.Malden\initServer.sqf)

Will link a PR that closes this issue when ready, should be a simple enough fix

test comment


Update expressroute-routing.md

Added documentation that IANA reserved ASN numbers for documentation 64496 - 64511 are not allowed in the path for Microsoft Peering

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

This is a result of a support case


Better docs

Perhaps as a Vue app?

+1 - documentation definitely missing

+1 Still waiting on the new documentation site! Hopefully they are still working on it. FlexGrid has not been updated since 2019.

This is being worked on right now. And a tiny upgrade to the project is also incoming!

Though you're probably a busy person and the documentation is still not available I'm very much enjoying the concept of this. Going to see if I can implement for a project this evening. Thank you for sharing!

Love this. One issue I did find is the .container is using width which causes my page to overflow on the x axis. Is there a reason why it's not using max-width? More than happy to support with documentation or this snag. Phenomenal work!


WIP: Simple Payment Verification

Adding a first draft for feedback, for an SPV Envelope.
It takes a TX, along with that tx's inputs, and the inputs' inputs (and so on), and recurses through the tree until it reaches valid bottom level proofs.
It then performs validation and continues on until complete.

Codecov Report

Merging #7 (a549a12) into master (ec4892b) will increase coverage by 7.24%.
The diff coverage is 79.36%.

:exclamation: Current head a549a12 differs from pull request most recent head 49060c1. Consider uploading reports for the commit 49060c1 to get more accurate results

@@            Coverage Diff             @@
##           master       #7      +/-   ##
==========================================
+ Coverage   41.10%   48.34%   +7.24%
==========================================
  Files          11       12       +1
  Lines         489      606     +117
==========================================
+ Hits          201      293      +92
- Misses        231      249      +18
- Partials       57       64       +7

Impacted Files
Coverage Δ

spvclient.go
80.00% <0.00%> (+8.57%)
:arrow_up:

spvenvelope.go
80.64% <80.64%> (ø)

coinbase.go
0.00% <0.00%> (ø)

merklebranches.go
26.08% <0.00%> (+1.08%)
:arrow_up:

bytemanipulation.go
18.42% <0.00%> (+1.17%)
:arrow_up:

blockheader.go
65.45% <0.00%> (+1.45%)
:arrow_up:

merkleproof.go
58.97% <0.00%> (+2.21%)
:arrow_up:

difficulty.go
79.66% <0.00%> (+2.73%)
:arrow_up:

humanhash.go
29.16% <0.00%> (+3.07%)
:arrow_up:

... and 4 more

Continue to review full report at Codecov.

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

might be a good idea to split out the interfaces...


Reset the operation log before fetching new one

Why are the changes needed?

https://github.com/apache/kyuubi/blob/9342a29284234e21c73f96024a740c6e93e7cb33/kyuubi-ctl/src/main/scala/org/apache/kyuubi/ctl/cmd/log/LogBatchCommand.scala#L134-L141
We need to reset the operation log before fetching new operation log, otherwise, we might meet corner case.

The last operation log is not empty
we meet log not found exception
we can not terminate the loop because the shouldFinishLog is always false

How was this patch tested?

[ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[x] Run test locally before make a pull request

thanks, merging to master


Rename img metrics normalized

What does this PR do?
addresses https://github.com/Lightning-AI/metrics/pull/1246#discussion_r1004945697
Before submitting

[ ] Was this discussed/approved via a Github issue? (no need for typos and docs improvements)
[x] Did you read the contributor guideline, Pull Request section?
[ ] Did you make sure to update the docs?
[x] Did you write any new necessary tests?

PR review
Anyone in the community is free to review the PR once the tests have passed.
If we didn't discuss your PR in Github issues there's a high chance it will not be merged.
Did you have fun?
Make sure you had fun coding 🙃

@Borda is this still needed?

@Borda is this still needed?

Was just writing the differences and realized that it is not... :otter:


Outdated cask: omegat-dev

Outdated cask: caskroom/versions/omegat-dev
Github URL: https://github.com/caskroom/homebrew-versions/blob/966a03a1735b0d9a16092e622b0770ea755c9c3e/Casks/omegat-dev.rb
Outdated version: OmegaT_4.1.2_Beta_Mac_Signed
Current version: OmegaT_4.1.2_02_Beta_Mac_Signed ('minor' release suffix _02 ignored by cask as implemented)
Value of omegat-dev over regular omegat cask: 'standard' release cycle is most conservative; 'beta' is stable enough in practice and has the features many translators will want.
2 issues with omegat-dev cask:

Cask Formula does not take the minor patch number 4.1.2_02 suffixes (_02) of some releases into account, so it skips downloading those 'minor' patch releases. It seems the regular omegat cask formula does already take these into account.
Error: Unpacking and moving OmegaT.app from the downloaded zip to the Mac application directory fails. Removing the subdirectory from the cask formula file seems to do the trick.

https://github.com/caskroom/homebrew-versions/pull/4747


Support other parameters in termsAggregation

Hello,
According to this documentation
https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-terms-aggregation.html
Terms Aggregation can support many parameters :
size, min_doc_count, order,...
Can you add to this ?
Thanks

You can add any parameter via ParametersTrait
here's an example:
$termsAggregation = new TermsAggregation('genders', 'gender');
$termsAggregation->addParameter('size', 5);
$termsAggregation->addParameter('min_doc_count', 3);

$search = new Search();
$search->addAggregation($termsAggregation);

$queryArray = $search->toArray();

Ok sorry... thanks for your help !!


Version strings that don't conform to PEP 440 cause a failed audit

Bug description
If pip-audit tries to audit an environment that contains a package with a version string that doesn't conform to PEP 440, it will fail like so:
dc@ubuntu:~$ pip-audit
WARNING: You are using pip version 21.2.4; however, version 21.3.1 is available.
You should consider upgrading via the '/usr/bin/python3 -m pip install --upgrade pip' command.
\ Auditing appdirs (1.4.4)WARNING:pip_audit._service.pypi:warning: Dependency not found on PyPI and could not be audited: apturl (0.5.2)
\ Auditing bcrypt (3.2.0)  WARNING:pip_audit._service.pypi:warning: Dependency not found on PyPI and could not be audited: binwalk (2.2.1)
* Auditing bracex (2.1.1)  WARNING:pip_audit._service.pypi:warning: Dependency not found on PyPI and could not be audited: brlapi (0.8.2)
| Auditing colored-traceback (0.3.0) WARNING:pip_audit._service.pypi:warning: Dependency not found on PyPI and could not be audited: command-not-found (0.3)
\ Auditing cryptography (3.3.2)      WARNING:pip_audit._service.pypi:warning: Dependency not found on PyPI and could not be audited: cupshelpers (1.0)
| Auditing decorator (4.4.2)            WARNING:pip_audit._service.pypi:warning: Dependency not found on PyPI and could not be audited: defer (1.0.6)
/ Auditing intervaltree (3.1.0)         WARNING:pip_audit._service.pypi:warning: Dependency not found on PyPI and could not be audited: iotop (0.6)
* Auditing kiwisolver (1.3.1)           WARNING:pip_audit._service.pypi:warning: Dependency not found on PyPI and could not be audited: language-selector (0.1)
\ Auditing lockfile (0.12.2)            WARNING:pip_audit._service.pypi:warning: Dependency not found on PyPI and could not be audited: louis (3.16.0)
/ Auditing pytest (6.2.5)
Traceback (most recent call last):
  File "/home/dc/.local/lib/python3.9/site-packages/pip_audit/_dependency_source/pip.py", line 65, in collect
    dep = Dependency(name=dist.name, version=Version(str(dist.version)))
  File "/home/dc/.local/lib/python3.9/site-packages/packaging/version.py", line 266, in __init__
    raise InvalidVersion(f"Invalid version: '{version}'")
packaging.version.InvalidVersion: Invalid version: '2.2.0-ubuntu<IP_ADDRESS>'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/dc/.local/bin/pip-audit", line 8, in <module>
    sys.exit(audit())
  File "/home/dc/.local/lib/python3.9/site-packages/pip_audit/_cli.py", line 212, in audit
    for (spec, vulns) in auditor.audit(source):
  File "/home/dc/.local/lib/python3.9/site-packages/pip_audit/_audit.py", line 60, in audit
    yield from self._service.query_all(specs)
  File "/home/dc/.local/lib/python3.9/site-packages/pip_audit/_service/interface.py", line 82, in query_all
    for spec in specs:
  File "/home/dc/.local/lib/python3.9/site-packages/pip_audit/_dependency_source/pip.py", line 72, in collect
    raise PipSourceError("failed to list installed distributions") from e
pip_audit._dependency_source.pip.PipSourceError: failed to list installed distributions

This can happen if some Python packages weren't installed from PyPI. In this case, the python-apt package that comes bundled with Ubuntu has a version string that contains the actual Ubuntu distribution version.
Reproduction steps

Run pip-audit without any arguments.
Observe the failure.

Expected behavior
Instead of failing on an invalid version string, it'd be better to log a warning and continue on with the audit similar to how we handle things here.
Platform information

OS name and version: Ubuntu Linux 21.04
pip-audit version (pip-audit -V): 0.07
Python version (python -V or python3 -V): N/A
pip version (pip -V or pip3 -V): N/A

CC: @disconnect3d

does #139 also address python itself having a version like 3.9.7+. this is what development python versions like 3.9-dev built via pyenv end up with – not sure if this is python's or pyenv's doing.
the stack trace looks different:
$ pip-audit
Traceback (most recent call last):
  File "bin/pip-audit", line 5, in <module>
    from pip_audit._cli import audit
  File "lib/python3.9/site-packages/pip_audit/_cli.py", line 15, in <module>
    from pip_audit._audit import AuditOptions, Auditor
  File "lib/python3.9/site-packages/pip_audit/_audit.py", line 9, in <module>
    from pip_audit._dependency_source import DependencySource
  File "lib/python3.9/site-packages/pip_audit/_dependency_source/__init__.py", line 13, in <module>
    from .resolvelib import ResolveLibResolver  # noqa: F401
  File "lib/python3.9/site-packages/pip_audit/_dependency_source/resolvelib/__init__.py", line 5, in <module>
    from .resolvelib import ResolveLibResolver, ResolveLibResolverError  # noqa: F401
  File "lib/python3.9/site-packages/pip_audit/_dependency_source/resolvelib/resolvelib.py", line 16, in <module>
    from .pypi_provider import PyPIProvider
  File "lib/python3.9/site-packages/pip_audit/_dependency_source/resolvelib/pypi_provider.py", line 31, in <module>
    PYTHON_VERSION = Version(python_version())
  File "lib/python3.9/site-packages/packaging/version.py", line 266, in __init__
    raise InvalidVersion(f"Invalid version: '{version}'")
packaging.version.InvalidVersion: Invalid version: '3.9.7+'

above crash happens with pip-audit 1.0.0, which seems to include #139

@wbolster Thanks for reporting! This is different, I filed https://github.com/trailofbits/pip-audit/issues/164 to capture it.


Failed to install

Hello,
i have this error when i try to install it with brew :
MacOS Catalina version 10.15.7 (19H2)
❯ brew install yulrizka/tap/pushtotalk
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/cask).
==> Updated Casks
macpilot

==> Installing pushtotalk from yulrizka/tap
==> Downloading https://github.com/yulrizka/osx-push-to-talk/archive/v0.1.5.tar.gz
Already downloaded: /Users/jmenan/Library/Caches/Homebrew/downloads/1a5ea18d0cc9c93bae9a5b6ea97a1603913bf305b9fc0560c8365826391c3921--osx-push-to-talk-0.1.5.tar.gz
==> xcodebuild -project PushToTalk.xcodeproj CODE_SIGN_IDENTITY=- -configuration Release SYMROOT=build
Last 15 lines from /Users/jmenan/Library/Logs/Homebrew/pushtotalk/01.xcodebuild:
	15  ibtoold                             0x0000000106b8ede5 IBIDEInitialize + 52
	16  ibtoold                             0x0000000106b8dfdf main + 1622
	17  libdyld.dylib                       0x00007fff6baf6cc9 start + 1
	18  ???                                 0x0000000000000015 0x0 + 21
)
libc++abi.dylib: terminating with uncaught exception of type NSException
Command CompileXIB failed with a nonzero exit code

** BUILD FAILED **

The following build commands failed:
	CompileAssetCatalog /tmp/pushtotalk-20201103-24209-3s0kkl/osx-push-to-talk-0.1.5/build/Release/PushToTalk.app/Contents/Resources /tmp/pushtotalk-20201103-24209-3s0kkl/osx-push-to-talk-0.1.5/PushToTalk/Images.xcassets
	CompileXIB /tmp/pushtotalk-20201103-24209-3s0kkl/osx-push-to-talk-0.1.5/PushToTalk/Base.lproj/MainMenu.xib
(2 failures)

If reporting this issue please do so at (not Homebrew/brew or Homebrew/core):
  https://github.com/yulrizka/homebrew-tap/issues

Hi, could you report the version of your xcodebuild ? eg
$ xcodebuild -version

I have the same error on MacOS Catalina version 10.15.7 (19H2) as well. My xcodebuild version is:
$ xcodebuild -version
Xcode 12.1
Build version 12A7403

Sorry for my late answer, my xcodebuild is the same version like Daanvm
❯ xcodebuild -version Xcode 12.1 Build version 12A7403

Unfortunately I could not reproduce even with the same version
❯ xcodebuild -version

Xcode 12.1
Build version 12A7403

~/dev/go/rumah master
❯ brew install yulrizka/tap/pushtotalk
==> Installing pushtotalk from yulrizka/tap
==> Downloading https://github.com/yulrizka/osx-push-to-talk/archive/v0.1.5.tar.gz
Already downloaded: /Users/ahmy.yulrizka/Library/Caches/Homebrew/downloads/1a5ea18d0cc9c93bae9a5b6ea97a1603913bf305b9fc0560c8365826391c3921--osx-push-to-talk-0.1.5.tar.gz
Warning: Your Xcode (12.1) is outdated.
Please update to Xcode 12.2 (or delete it).
Xcode can be updated from the App Store.

==> xcodebuild -project PushToTalk.xcodeproj CODE_SIGN_IDENTITY=- -configuration Release SYMROOT=buil
==> Caveats
The application was only built in "/usr/local/opt/pushtotalk/PushToTalk.app"

To make it available in the Application folder, create a symlink with:

    ln -s "/usr/local/opt/pushtotalk/PushToTalk.app" "/Applications/PushToTalk.app"

==> Summary
🍺  /usr/local/Cellar/pushtotalk/0.1.5: 31 files, 12.3MB, built in 16 seconds

Could you maybe try manually
$ git clone git@github.com:yulrizka/osx-push-to-talk.git
$ cd osx-push-to-talk
$ xcodebuild -target "PushToTalk" -configuration Release

It also fails when I run it manually, but with a lot more output: https://gist.github.com/Daanvm/8cd84d0bbdb714e312cb57f19b438b07
Let me know if you want me to try anything else and thanks for the help so far!

Update: I got it to work (both the manual build and the brew install) by opening the Xcode app once. It did install additional required components, so I guess these were missing.

I already had the xcode command line tools installed, so it was something else. Not sure if this is something that can be downloaded from the CLI so you can add it to your build steps?

Thanks for the update @Daanvm, that is something I have to check.

That fix works for me. Managed to build a universal binary on an M1 MBP after installing the "additional components".

That fix works for me. Managed to build a universal binary on an M1 MBP after installing the "additional components".


[WIP] Move arithmetic operations to F32 newtype

Codecov Report

Merging #75 (1c70e2e) into main (f34c46d) will increase coverage by 0.11%.
The diff coverage is 58.76%.

@@            Coverage Diff             @@
##             main      #75      +/-   ##
==========================================
+ Coverage   54.37%   54.48%   +0.11%
==========================================
  Files          39       39
  Lines         789      802      +13
==========================================
+ Hits          429      437       +8
- Misses        360      365       +5

Impacted Files
Coverage Δ

src/f32ext.rs
0.00% <0.00%> (ø)

src/float.rs
4.54% <33.33%> (+4.54%)
:arrow_up:

src/float/powf.rs
91.66% <86.36%> (-8.34%)
:arrow_down:

src/float/div_euclid.rs
100.00% <100.00%> (ø)

src/float/rem_euclid.rs
100.00% <100.00%> (ø)

src/float/round.rs
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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


Replace script window appears for every nested script

Describe the bug
Not sure if this is a bug or intended behaviour, but this did not happen in beta 1 or before.
When copy pasting scripts, the Replace script warning keeps appearing for every nested script that is called. This is quite disruptive when you are copy pasting long scripts multiple times.
To Reproduce
Paste an event group with "Call script" events in it.
Expected behavior
I expect to be able to dismiss this warning for every nested script in this group.
Screenshots
https://github.com/chrismaltby/gb-studio/assets/20700995/06a0d9b2-0bb8-4fc2-af98-7afa25e847ed
Platform (please complete the following information):

OS: macOS Sonoma 14.4.1
App version: 4.0.0-beta2

Additional context

Oh! Yeah I think this will be an unintended side effect of the fix for nested scripts sometimes causing a stack overflow. I’ll investigate and fix for the next beta

I've been trying to reproduce the issue you're seeing but so far have been unable to. Are you able to share an example project and steps to reproduce the issue seen in your video?

@chrismaltby Weird... as I am not able to reproduce this problem either. This is a few days after I cut my longest custom script into smaller pieces.
Maybe the problem occurs when a custom script is about to exceed a maximum size (16Kb if I remember the error message correctly)? I am not sure. Maybe close this bug for now.


Use queue to store Worker

Instead of keep scanning through the whole worker list,
use LinkedBlockingQueue to store the worker. This also
provide the data  buffering, which loads the csv
data into memory and wait for the available thread to
run the job.
Signed-off-by: Yihong Wang<EMAIL_ADDRESS>

I see significant improvement in import time for vertex. On my laptop, med-csv vertex now takes 114sec (was 211sec) and edges takes 505 sec (was 531sec). I think we should re-run our import test with this build after merge.

interesting, I do know it improved the performance but I didn't expect the improvement would be significant. and sure, I will rerun the import test case against scylla.


Question about resolution, effector volume and bicep angle

Thanks for this! Sorry if this is not the place to ask these questions but there are so little information about rotary delta projects in web, I thought I might try. Feel free to close the issue if it's not wanted.
1- Looking at the default configuration at https://12343954.github.io/fk/, it comes up with a resolution of 0.463 mm. Is this uniform for all axis? For 3d printer purposes, one would need a resolution of at least 0.1 or 0.05 mm for Z axis and probably even less for XY axis. Could we, let's say, slap on a reduction of 10:1 to the motors and practically have a resolution of 0.046 mm and call it a day? Or do we need to consider something else?
2- The page calculates a cuboid volume for the given configuration but the actual volume is not a cuboid AFAIK. For a traditional (non-rotary) delta it would be triangle like shape with curved sides and spherical void at the top. Would it be a similar shape for rotary-delta? Would it be possible to have this volume plotted in the web interface?
3- I see that limits of the bicep angle (motor angle) is in some cases more than 90 degrees, I can see that this is a theoritical limit but in practice might it have a bed effect as the forearm angle switches polarity?
Best

@tapir  asking questions here is ok. and welcome.
this algorithm is not mine. I just put this page https://www.marginallyclever.com/other/samples/fk-ik-test.html here and  enhanced some details, and then, implemented it in c++ and open source it.
now answer you questions:
1- I use this algorithm for my delta picking robot, not for 3d printer, so the resolution and accuracy requirements are not so high.
you can use reducer + (stepper/motor) to Improve accuracy.
2-  the executable scope should be circular. but it labeled the cuboid, I guess it should be the safe range, not the max range.
3- this algorithm is rough, the result is theoretical value, many situations are not considered. the Endstop(hardware) can prevent the bad accidents.
In fact, after my actual test, this algorithm is inaccurate and needs to be improved.

Thanks for the responses.
Could you point where do you think the inaccuracies are?
Also found this article where it shows the resulting working volume. I'm guessing the cuboid is just a subset of this volume.


valeStyles: init

Description of changes
Add valeStyles packages
cc @katexochen

Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.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

[x] Fits CONTRIBUTING.md.

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

@marsam any chance we get this in before the release?

Hi, sorry for the delay. I had my changes locally, but somehow I forgot to push them :(
Thanks for reviewing! I addressed you comments, please take a look.


Task: Evaluate requirements

What needs to be done?

As the development team you should evaluate the first set of requirements the customer has and

Ask about missing information
Create possible user stories out of it
Get an idea / basic understanding of the product.
Add your own possible ideas for the product

After finishing this task you (the development team) should be able to

create the first concepts for our software (Technical, design etc)
define the architecture for our software (Possible APIs, Database tables etc)
create a set of milestones that you think when the software reaches a certain point during development

When is this task complete?

Additional Notes

Product is looking at the finish software from the customers point of view. (for example) as the customer I dont care what database is used in the background
Software is more for the technical aspects of our finished product

Should be done with all members of this project

Questions in the Meeting on 06.11.2019:

Multi-Language Support for the midnightboard?
Specific Design requirements?

Answers:

Multi-Language Support for the midnightboard?
-> Englisch/German (implement extendable)
Specific Design requirements?
-> Free but user-oriented design
Static User System or option to integrate existing LDAP?
-> User system is a must-have element. External solutions can be used.

I updated the existing requirements with more information. I also added the full document inside our slack channel.
Would closing this in favour of new issues or if some requirements are unclear just comment under the requirement issue.
next step would be to create issues / planning based on the requirements.


Please invite me to the Recode-Hive GitHub Community Organization

Name
Aayan
Discord Username (if applicable)
aayanmtn470
Additional Context
No response

Invitation sent to join the GitHub Organisation. Welcome to the community 🎉
Don't forget after accepting to make it public so it appears on your GitHub profile for everyone else to see. You can do this by finding your name in the GitHub organisation list and change the dropdown to public https://github.com/orgs/recodehive/people


Transformations: Re-organise inline and extract sub-packages

This change creates two new separate transformation sub-packages loki.transformations.inline and loki.transformations.extract that are conceptual complements. For the inline sub-package, this allows us to separate the different types of inlining (constants, small functions and full procedures), and the associated tests. For "extract", this change brings together the two disparate current implementations (formerly extract_contained and region_to_call), and provides the counter-passes to the respective inlining operations as extract_internals and extract_marked. I've also added a wrapper ExtractTransformation class that provides both functionalities for batch processing.
Please note that, other than a minor bug-fix, I've left the implementations untouched. Further consolidation and additional features are planned, but I wanted to get the diff-heavy stuff out of the way first.
In some more detail:

Created separate loki.transformations.inline sub-package with constants/functions/mapper/procedures modules. Importantly, I also split the test accordingly and localised it!
Renamed extract_contained to extract_internals for consistency and created new loki.transformations.extract sub-package.
Renamed region_to_call to extract_marked and moved to loki.transformations.extract.
Added a new ExtractTransformation as batch-processing entry point. Importantly, this works on Module and Sourcefile objects only, as that defines where the newly created procedures go. Also added tests for this
A small bug-fix for extract_internals and a few linter-compliance fixes for the transformation standalone tests. (Turns out pylint does not recurse into test directories, as there is no automatic package import 😉 )

@reuterbal Ok, I've rebased this over recent master and renamed the outline method, flags and pragma names. The rebase was quite tricky (esp. splitting the new inline sub-package), so I'd appreciate a quick double-check that everything is still as it's supposed to be.


Create ontology of target capabilities and prescribed/recommended behaviors

Migrated from GitLab: https://gitlab.com/meltano/hub/-/issues/46
Originally created by @aaronsteers on 2021-05-12 16:42:41

Taking the list in https://gitlab.com/meltano/sdk/-/issues/186 , let's add a section in the MeltanoHub for Singer docs that details what each of the capabilities are. Each should be linkable as an anchor.
For the capabilities that don't exist, we can leave placeholders and link to the relevant Singer Working Group issue on GitHub.
These would be linked to from each connector page where we can list a connectors capabilities.

View 7 previous comments from the original issue on GitLab


Upgrade Gradle to 2.10 to 3.2.1

Old Gradle version sometimes cause CI failure.
* What went wrong:
Error resolving plugin [id: 'com.jfrog.bintray', version: '1.1']
> Could not GET 'https://plugins.gradle.org/api/gradle/2.10/plugin/use/com.jfrog.bintray/1.1'.
   > peer not authenticated

e.g. https://travis-ci.org/civitaspo/embulk-filter-expand_json/jobs/254802145
I upgraded Gradle version to v<IP_ADDRESS> to avoid this failure.

@kietdo360 Could you take a look?

LGMT


Get Output Info seems inconsistent

Sometimes it returns the paired portal as an entity, sometimes it returns its position. I have no idea what factors contribute to this, nor is there anything in the book to indicate what they are. This can be dealt with by checking the type of the returned iota, but IMO this shouldn't be necessary.
I suggest splitting it into two patterns: One that just returns the paired portal's position, and another that returns it as an entity (or NULL if it cannot for some reason).

Returning coordinate happens when OutputInfo is used on a 1-way portal. However, it seems like I forgot to say that in the Hex Book, will be fixed in the next update


Improvements for Repository index page

From 23.5.2024 front-end alignment meeting:

sorting, filtering, pagination of the ORT runs will be coming in another PR. See also issue #285

@mnonnenmacher I edited the issue and deleted the done improvements from the list. Is it OK to leave this still open as a "bookmark" issue for further improvements to the Repository index page, or rather close this and later on, create a separate issue for sorting, filtering, pagination?

@mnonnenmacher I edited the issue and deleted the done improvements from the list. Is it OK to leave this still open as a "bookmark" issue for further improvements to the Repository index page, or rather close this and later on, create a separate issue for sorting, filtering, pagination?

Instead of deleting items better use a task list (I have converted the description to show what I mean). That better documents progress.


Device provision: link is dead?

Got HTTP 404 while downloading images for:

AllWinner Nezha D1
Lichee RV
StarFive VisionFive
StarFive VisionFive 2

ruyi is asking for mirror.iscas.ac.cn/ruyisdk/dist/$name, but no image is avaliable right now.
info: downloading https://mirror.iscas.ac.cn/ruyisdk/dist/openEuler-23.03-V1-base-d1-preview.img.zst to
/home/mx/.cache/ruyi/distfiles/openEuler-23.03-V1-base-d1-preview.img.zst
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   153  100   153    0     0   1041      0 --:--:-- --:--:-- --:--:--  1047
warn: file /home/mx/.cache/ruyi/distfiles/openEuler-23.03-V1-base-d1-preview.img.zst is corrupt: wrong sha512 checksum: want
e3867ed20b2de7d8568ded39480e0cdc31d695f4c8895f3c1a5c627f66951d6df35dde8c2eaaa1deacd13ee8c62106424ab66b0d1a44a94d71eb7295909b21cd, got
1bc6474444174db36c3164cea3deae0712727508e06603d5d219ff98636d670e200a07836f0bf225b42a804d4858006c0ae4375c8df7cae6b578bab934f1e8b8; deleting
fatal error: failed to fetch distfile: /home/mx/.cache/ruyi/distfiles/openEuler-23.03-V1-base-d1-preview.img.zst failed integrity checks

Downloads can fail for a multitude of reasons, most of which should not and
cannot be handled by Ruyi. For your convenience though, please check if any
of the following common failure modes apply to you, and take actions
accordingly if one of them turns out to be the case:

* Basic connectivity problems
    - is the gateway reachable?
    - is common websites reachable?
    - is there any DNS pollution?
* Organizational and/or ISP restrictions
    - is there a firewall preventing Ruyi traffic?
    - is your ISP blocking access to the source website?
* Volatile upstream
    - is the recorded link dead? (Please raise a Ruyi issue for a fix!)

board-image/oerv-awol-d1-base
board-image/oerv-awol-d1-xfce
board-image/oerv-starfive-visionfive-base
board-image/oerv-starfive-visionfive-xfce
board-image/oerv-starfive-visionfive2-base
board-image/oerv-starfive-visionfive2-xfce
全部得下载链接都是 https://mirror.iscas.ac.cn/ruyisdk/dist/……，但是ruyi包管理器中没有分发安装包。需要修正下载链接

Fixed by https://github.com/ruyisdk/packages-index/commit/6228916c301cec67bc54713ad4b0cf21eaefd884.


Add bulk insert implementation in rankings repository

Summary by CodeRabbit

New Features

Implemented a new BulkSave functionality to enhance the efficiency of saving ranking data.

Refactor

Updated repository and test structures for better clarity and consistency.
Improved the Write method to utilize bulk saving for performance optimization.

Tests

Added comprehensive tests for the new BulkSave method to ensure reliability.
Updated existing tests to align with the new error handling and bulk save process.

Chores

Standardized error messages across the application for better user understanding.

Style

Adjusted naming conventions for improved code readability and maintenance.

@coderabbitai


providing list for WHERE  IN (...list) statement

Hello,
today I found my self needing to fetch data from a table based on an id, where I had a list of ids and in a single query I wanted the results.
I tried looking in the docs but I couldn't see any built-in method to do this "cleanly".
This is what I came up with:
let myList = ['a','b','c','d'];
let data = db.prepare(`SELECT * FROM table WHERE id IN (${Array(myList.length).fill("?").join(",")})`).all(myList);

Is there a better way to do this?
any input is welcome
thx
Rico

That's the only way I'm aware of. If there's a cleaner way, I'd love to know.
If you have a large (> 500) number of ids, it may be faster to bulk-load them into a temp table and do a inner join, or to chunk through your ids array in batches of N (where N is large but doesn't bonk against any SQLite limits: https://www.sqlite.org/limits.html )


call another command from /start command?

Hello everybody tell me how I can automatically call another command from /start command?

Check this answer, for example - https://github.com/php-telegram-bot/core/issues/866#issuecomment-406380402

@chuv1 thank you very much all happened


Check PEP440 versioning scheme

It might be possible to drop the current local_version prefix of n and use the git hash directly. Historically, this was necessary since the local_version part needed to start with a letter. According to PEP440 it is also allowed to have digits.

Removed n prefix for PEP440 local_version string and use now the node attribute of setuptools_scm directly. Currently setuptools_scm prepends a g but I filed this issue.

We keep it the way that setuptools_scm proposes.


Support for ecflow-generated variables

Is your feature request related to a problem? Please describe.
We can't use ecflow-generated variables in scripts as they are not supported by pyflow, which means they are not detected and exported at the beginning of the script. For instance, if I create a RepeatDate("YMD",...), ecflow will generate the following variables:

YMD
YMD_DD
YMD_DOW
YMD_JULIAN
YMD_MM
YMD_YYYY
But we can't use those because they are not added to the exportables list in pyflow (see https://github.com/ecmwf/pyflow/blob/master/pyflow/attributes.py#L259 and https://github.com/ecmwf/pyflow/blob/master/pyflow/nodes.py#L401). The RepeatDate class is only linked to one exported variable, following the name provided in the RepeatDate class.
The FAMILY variable, attached to a Family node is another example, but there are many others. We should list them.

Describe the solution you'd like
We could maybe add a list of exportables attached to an Exportable class?
Describe alternatives you've considered
No response
Additional context
No response
Organisation
No response

List of ECFLOW generated variables (missing repeat and maybe other attributes): https://ecflow.readthedocs.io/en/latest/ug/user_manual/ecflow_variables/generated_variables.html


Fix calculations for 3d textures

The current implementation doesn't correctly calculate the block depth and block height for 3d textures (depth > 1). The block depth module also needs additional tests.

This requires valid swizzled/deswizzled surface pairs for texture dimensions other than 16x16x16. This will require finding 3D textures in games other than Smash Ultimate, which only uses a single 3D texture size.

Metroid Prime Remastered has RGBA8 3D textures with dimensions 33x33x33 that I'm attempting to deswizzle.
tegra_swizzle expects 253440 bytes, whereas the texture data is 368640 bytes.
(The texture is a single mip, and the game's custom texture format specifies the mip0 size as 143748 bytes, corresponding to 33×33×33×4, but the actual data is 368640 bytes. Possibly a bug in their tooling, but interesting.)

Metroid Prime Remastered has RGBA8 3D textures with dimensions 33x33x33 that I'm attempting to deswizzle. tegra_swizzle expects 253440 bytes, whereas the texture data is 368640 bytes.

Is that the only 3D texture you've found with different dimensions than 16x16x16? Thankfully, the only thing that really changes with different texture sizes is calculating the surface dimensions in bytes and figuring out the GOB ordering. I'll try and see if I can get more tests set up for 3D textures.

(The texture is a single mip, and the game's custom texture format specifies the mip0 size as 143748 bytes, corresponding to 33×33×33×4, but the actual data is 368640 bytes. Possibly a bug in their tooling, but interesting.)

This is not uncommon for Switch texture formats. I'm not sure what purpose it serves, but some formats specify the "unswizzled" size in the texture header. A size of 143748 bytes for 33x33x33x4 makes sense in this case.

Is that the only 3D texture you've found with different dimensions than 16x16x16?

Yes, all 3D textures in MP1R appear to be the same RGBA8 33x33x33.

This is not uncommon for Switch texture formats. I'm not sure what purpose it serves, but some formats specify the "unswizzled" size in the texture header. A size of 143748 bytes for 33x33x33x4 makes sense in this case.

Makes sense!
Happy to help test / provide more information if it'd be useful.

Works now! I'm not sure if the gray (actually transparent) parts are swizzling artifacts or intentional, but leaning towards intentional.

Works now! I'm not sure if the gray (actually transparent) parts are swizzling artifacts or intentional, but leaning towards intentional.

I'm pretty confident that the swizzling is still incorrect. That texture looks like it should be similar to the one on the README of this repo. The black bars at different levels usually indicate that the swizzle code is copying 0's from padding bytes in the swizzled surface. You can see how the depth slices on the right half are not complete.
Can you upload the swizzled texture in a zip file? I don't need the entire texture file. Just the image data in a .bin file works fine. I'll need to get proper test cases set up eventually using Ryujinx's output as a reference.

Sure, here's the unswizzled texture data: tex.zip

This is what I get after putting together a simple CLI converter program using Ryujinx. I'll work on fixing the implementation in tegra_swizzle and let you know when it's ready for you to test.

This should be fixed on the latest commit. I've updated the implementation and added appropriate test cases. Please try again on the new commit and let me know if it's working for you. @encounter

Great. You can switch to version 0.3.1 from crates.io now.


The iCard-Resume link is broken

Hi,

You can see the live demo of iCard-Resume

In the README.md, iCard-Resume link http://ddbullfrog.com/iCard-Resume is broken.

updated. http://ddbullfrog.github.io/iCard-Resume/