Adding meta for routes without a component

Creating folders create routes and any file inside them becomes a nested route. This wasn't possible before v4.1 but now it makes sense to allow defining meta properties (mainly but also any other route property) at this level
This could maybe be achieved with a special file users/__route.js that exports some properties like name, meta, etc (the same as in the <route> block)

This would be nice for applying meta: { requiresAuth: true } to a parent route. Currently, I'm having to use definePage on every child page.

Here we're building our navigation menus from the routes table (using metadata added in route blocks).
We'd like to add metadata to the non-navigable parent nodes, too.
We used the following hack to work-around this:

Create an empty index.vue page anyway, with a <route> block and metadata.
In the metadata, include a marker that the page must be removed, e.g. "remove": true.
We use the extendRoute(route) callback during build to customize the process a bit:

if (route.node.value.overrides?.remove)
{
  // Move metadata to parent, depends on your use cases
  route.parent.addToMeta(route.node.value.overrides.meta);
  // Remove from routing table
  route.delete();
}

If anyone's interested, that approach works.
It would be nice to have this built-in though, maybe as the default export of __route.js as suggested initially.
Random remark: route.node is described as a private variable in code, yet there is no access to overrides object from EditableTreeNode. I feel like one public API is missing?

Thanks for sharing your approach!
I'm realizing this is quite old now and I haven't implemented any experimental APIs around it yet... I hope to get back to it after #246 and the Data Loaders RFC

Random remark: route.node is described as a private variable in code, yet there is no access to overrides object from EditableTreeNode. I feel like one public API is missing?

Yes, EditableTreeNode is definitely still missing some APIs but also docs and examples 😅

Here we're building our navigation menus from the routes table (using metadata added in route blocks). We'd like to add metadata to the non-navigable parent nodes, too.
We used the following hack to work-around this:

Create an empty index.vue page anyway, with a <route> block and metadata.
In the metadata, include a marker that the page must be removed, e.g. "remove": true.
We use the extendRoute(route) callback during build to customize the process a bit:

if (route.node.value.overrides?.remove)
{
  // Move metadata to parent, depends on your use cases
  route.parent.addToMeta(route.node.value.overrides.meta);
  // Remove from routing table
  route.delete();
}

If anyone's interested, that approach works. It would be nice to have this built-in though, maybe as the default export of __route.js as suggested initially; or __route.json and __route.yaml for syntax consistency with <route> blocks.
Random remark: route.node is described as a private variable in code, yet there is no access to overrides object from EditableTreeNode. I feel like one public API is missing?

route["node"].value.overrides.remove
这样调用后编译时期不会报错，When called like this, no errors are reported at compile time

Here we're building our navigation menus from the routes table (using metadata added in route blocks). We'd like to add metadata to the non-navigable parent nodes, too.
We used the following hack to work-around this:

Create an empty index.vue page anyway, with a <route> block and metadata.
In the metadata, include a marker that the page must be removed, e.g. "remove": true.
We use the extendRoute(route) callback during build to customize the process a bit:

if (route.node.value.overrides?.remove)
{
  // Move metadata to parent, depends on your use cases
  route.parent.addToMeta(route.node.value.overrides.meta);
  // Remove from routing table
  route.delete();
}

If anyone's interested, that approach works. It would be nice to have this built-in though, maybe as the default export of __route.js as suggested initially; or __route.json and __route.yaml for syntax consistency with <route> blocks.
Random remark: route.node is described as a private variable in code, yet there is no access to overrides object from EditableTreeNode. I feel like one public API is missing?

Called like this, vscode does not report an error
route["node"].value.overrides.remove

Creating folders create routes and any file inside them becomes a nested route. This wasn't possible before v4.1 but now it makes sense to allow defining meta properties (mainly but also any other route property) at this level
This could maybe be achieved with a special file users/__route.js that exports some properties like name, meta, etc (the same as in the <route> block)

How to write the __route.js file

@AAABingBing This issue is open, there is no support for __route.js (or any other alternative) built into this library yet.
Look at my comment above for an alternative using extendRoute() to implement this feature in your code.

@AAABingBing This issue is open, there is no support for __route.js (or any other alternative) built into this library yet. Look at my comment above for an alternative using extendRoute() to implement this feature in your code.

Oh, I see
Thank you for your reply

Here we're building our navigation menus from the routes table (using metadata added in route blocks). We'd like to add metadata to the non-navigable parent nodes, too.
We used the following hack to work-around this:

Create an empty index.vue page anyway, with a <route> block and metadata.
In the metadata, include a marker that the page must be removed, e.g. "remove": true.
We use the extendRoute(route) callback during build to customize the process a bit:

if (route.node.value.overrides?.remove)
{
  // Move metadata to parent, depends on your use cases
  route.parent.addToMeta(route.node.value.overrides.meta);
  // Remove from routing table
  route.delete();
}

If anyone's interested, that approach works. It would be nice to have this built-in though, maybe as the default export of __route.js as suggested initially; or __route.json and __route.yaml for syntax consistency with <route> blocks.
Random remark: route.node is described as a private variable in code, yet there is no access to overrides object from EditableTreeNode. I feel like one public API is missing?

This method solves my problem, but I have another question
Using definePage configuration, unable to use route.node.value.overrides to access route information
But in some cases I have to use the definePage configuration route information
Such as:

In this case, I cannot use the route block to configure

@AAABingBing in your case, use definePage() and add a pass through template:
<RouterView />

That will add component: () => h(RouterView) which is like not having a component.

@AAABingBing in your case, use definePage() and add a pass through template:
<RouterView />

That will add component: () => h(RouterView) which is like not having a component.

Sorry, maybe I understand incorrectly
<script setup>
import IconLayout from '~icons/tabler/layout'

definePage({
  remove: true,
  meta: {
    title: 'Test',
    icon: IconLayout,
  },
})
</script>

<template>
  <RouterView />
</template>

This way still unable to use route.node.value.overrides to access route information
It is still necessary to use the route block
VueRouter({
  extendRoute(route) {
    // if (route.node.value.overrides?.remove) {
    //   route.parent.addToMeta(route.node.value.overrides.meta)
    //   route.delete()
    // }
  },
  dts: 'src/typed-router.d.ts',
}),

Just open a discussion with all the information. I personally cont understand what you are trying to do

I use the above way to add metadata to the non-navigable parent nodes
But I found that this method must use route blocks instead of definePage() instead
Just like this, i don’t know how to use  imported IconLayout icon in the route block:

Just open a discussion with all the information. I personally don't understand what you are trying to do

I see
Thank you for your reply

For anyone interested, I’d like to share my temporary workaround for this issue. In this example, you can add a route.js file to any folder where you want to recursively apply certain metadata or settings.
Add the following to your vite.config.ts file under plugins.VueRouter:
async beforeWriteFiles(rootRoute) {
  const forEachRoute = (
    route: EditableTreeNode,
    callback: (route: EditableTreeNode) => Promise<void>
  ) => {
    callback(route)
    if (route.children) {
      route.children.forEach((childRoute: EditableTreeNode) => {
        forEachRoute(childRoute, callback)
      })
    }
  }

  type ExtendRouteData = {
    route: EditableTreeNode
    data: any
  }
  const promises: Array<Promise<ExtendRouteData | null>> = []

  const loadExtendedRoute = async (route: EditableTreeNode) => {
    const pagesDir = fileURLToPath(new URL('./resources/pages', import.meta.url))
    const routeFile = path.join(pagesDir, route.fullPath, 'route.js')
    promises.push(
      import(routeFile)
        .then((module) => {
          return { route: route, data: module.default }
        })
        .catch(() => null)
    )
  }

  forEachRoute(rootRoute, async (route: EditableTreeNode) => {
    if (route.isPassThrough) {
      loadExtendedRoute(route)
    }
  })

  await Promise.all(promises).then((results) => {
    results.forEach((result) => {
      if (result) {
        result.route.addToMeta(result.data)
      }
    })
  })
}

This approach is not without its drawbacks. Since unplugin-router doesn't monitors the route.js files to regenerate routes, changes made to the route.js files won’t be detected unless Vite is restarted. Additionally, it would be ideal to define these route overrides in a TypeScript file.
For now, this is a temporary fix, but hopefully, it will suffice until a more permanent solution becomes available.

My previous temporary solution had some inconsistencies and bugs, which I've now fixed. I’d like to share the final version of this temporary workaround.
In this approach, I recursively add metadata to the child routes to avoid any inconsistencies. However, changes to the route.js files are still not automatically detected, so the Vite dev server will need to be restarted for those changes to take effect.
Add the following to your vite.config.ts file under plugins.VueRouter:
async beforeWriteFiles(rootRoute) {
  const config = {
    src: './resources/pages',
    routeOverrideFile: 'route.js',
    forcedRecursive: true
  }

  const iterateRoutes = (
    route: EditableTreeNode,
    callback: (route: EditableTreeNode) => Promise<void> | void
  ) => {
    callback(route)
    if (route.children) {
      route.children.forEach((childRoute: EditableTreeNode) => {
        iterateRoutes(childRoute, callback)
      })
    }
  }

  type ExtendRouteData = {
    route: EditableTreeNode
    data: any
  }
  const promises: Array<Promise<ExtendRouteData | null>> = []

  const loadRouteGroupOverrides = async (route: EditableTreeNode) => {
    const pagesDir = fileURLToPath(new URL(config.src, import.meta.url))
    const routeFile = path.join(pagesDir, route.name, config.routeOverrideFile)
    promises.push(
      import(routeFile)
        .then((module) => Object({ route: route, data: module.default }))
        .catch(() => null)
    )
  }

  iterateRoutes(rootRoute, async (route: EditableTreeNode) => {
    if (route.isPassThrough) {
      loadRouteGroupOverrides(route)
    }
  })

  await Promise.all(promises).then((results: Array<ExtendRouteData | null>) => {
    results.forEach((result) => {
      if (!result) {
        return
      }

      if (result.data.meta) {
        if (config.forcedRecursive) {
          // Simple fix for root ('/') route not passing their meta to children
          iterateRoutes(result.route, (route: EditableTreeNode) => {
            route.addToMeta(result.data.meta)
          })
        } else {
          result.route.addToMeta(result.data.meta)
        }
      }

      // Override other properties if needed
    })
  })
}

I hope this proves helpful until a more permanent solution is available.


Annotation Processing not working in Android 2.3

I´m not familiar with your code and I don´t have enough knowledge to find out exactly it´s not working, but here is the case:
I tested the master branch on Android 4.4 an worked like a charm, but when testing using Android 2.3, I got a lot of errors in the annotated fields I debug the code in both devices (2.3 and 4.4) and notice that the difference was in the lookupClassesmethod in DatabaseTableConfigUtil, for some reason in Android 4.4 Class.forName("org.apache.harmony.lang.annotation.AnnotationFactory"); throws an exception and the method returns null.
I guess using apache AnnotationFactory it´s an attempt to optimize the annotations processing, but for some reason when this method is used in Android 2.3 (probably in others version as well) something goes wrong and the annotation process does not work, simple removing lookupClassesmethod was enough to fix the issue.
By annotation not working I mean get random errors like:
"Field x has maxForeignAutoRefreshLevel set 2 but foreignAutoRefresh is false" in a primitive field annotated only with @DatabaseField

I think this is a dup of https://github.com/j256/ormlite-core/issues/26
I've fixed this in 4.49.  I've removed the sanity check and added a way to turn off the annotation hack.  Is anything else needed?


Documentation improvements for android build and app store deployment

Changes

Building android bundle(.aab) instructions are missing under Builder documentation, and exists in deployment to play store. Linked the relevant part in the Builder documentation.
bundle install step sends a platform error when the Gemfile.lock is generated on an OS that differentiates from the OS the job uses, added the necessary lines to fix this error.
iOS deployment job, as far as I could tell, had no steps that added ssh authorization to the private repository containing the app store certificates. Added 2 lines that fixed this issue.

Checklist

[x] Read the contribution guide and accept the
code of conduct
[x] Readme (updated or not needed)
[x] Tests (added, updated or not needed)

@lazerwalker would you mind reviewing this as well?


No Code of Conduct

This repository has no code of conduct. any open-source project needs to set clear standards for behavior. It promotes inclusivity, prevents misconduct, fosters accountability, and maintains a positive environment.
Please assign this issue to me.

I would like to create the Code of Conduct for the given app description #gssoc2024

I would like to work on this issue. Please assign it to me.


Confirm that importers filter out CVE Status "REJECT" and NVD Status "Rejected"

Please refer to https://nvd.nist.gov/vuln/vulnerability-status
In the "CVE List Statuses" table, note:
REJECT |  ... As a rule, REJECT CVE Entries should be ignored.
In the "NVD Statuses" table, note:
Rejected | CVE has been marked as "**REJECT**" in the CVE List. These CVEs are stored in the NVD, but do not show up in search results.
Both Statuses are essentially "noise" and it seems that the associated CVE/NVD's should not be selected for VulnerableCode data, since they are only a distraction and add no value to VulnerableCode.
If VC is already filtering such entries out, please simply confirm and close this issue; otherwise, please improve the importers (and possibly the improvers) to filter them out.

Since the NVD and others keep these records we probably need to also keep a record but show the status much more clearly.
Using VCID-zzsb-14xc-aaam as an example;

Status=Invalid should override data for Exploitability, Weighted Severity and Risk because these values are also invalid in context.
We just need a reference record that this CVE / GHSA exists and is invalid.
The references to https://github.com/dom4j/ and https://github.com/joker-xiaoyan/ are inscrutable - I cannot see any reference to the Vuln at these URLs.


Custom Elytra texture not changing

After creating custom elytra textures & testing existing texture packs, it turns out CIT resewn does not show any changes to custom elytra textures.
Although it changes the elytra_item, it doesn't for everything else.
Note: texture packs work on optifine

I stg I will switch the issues to be forms....
Use the template


Fix README typos

Fixes #924

Thanks!

Glad I could help – in a very small way!

Every little bit helps :wink:.


Setting properties on SVG elements

I've created an SVG element (code at the bottom, more or less directly copied from Halogen.HTML plus a namespace). This works, if I add an r attribute in the browser my circle becomes visible.
However, if I try to add a property through Halogen, it doesn't work.
r :: forall s i. Int -> IProp (r :: I | s) i -- row parameter is 's' to avoid confusion
r = prop (PropName "r") (Just $ AttrName "r")

Trying to use svg [] [circle [r 20]] causes the page to appear blank, with the console error (Chromium, similar in Firefox):
Uncaught TypeError: Cannot assign to read only property 'r' of object '#<SVGCircleElement>'
    at app.js:27222
    at __do (app.js:27477)
    at app.js:28509
    at __do (app.js:27519)
    at __do (app.js:27872)
    at __do (app.js:27866)
    at app.js:28455
    at __do (app.js:27871)
    at __do (app.js:27866)
    at app.js:28455

I think this might be due to r not being a numeric value, but instead SVGAnimatedLength - what's the correct way to deal with properties like this?
I'm new to Halogen, so apologies if I'm using completely the wrong approach here.
SVG element code:
import Prelude
import Data.Maybe (Maybe(..))

import Halogen.HTML.Core (HTML, ElemName(ElemName), PropName(..), AttrName(..))
import Halogen.HTML.Elements (Node, Leaf)
import Halogen.HTML.Properties (I, IProp, prop)

import Halogen.VDom as VDom
import Halogen.VDom.DOM.Prop (Prop)

import Unsafe.Coerce (unsafeCoerce)

svgns :: String
svgns = "http://www.w3.org/2000/svg"

-- | A smart constructor for SVG elements.
celement :: forall p i. VDom.ElemName -> Array (Prop i) -> Array (HTML p i) -> HTML p i
celement = coe (\name props children -> VDom.Elem (VDom.ElemSpec ns name props) children)
  where
    coe :: (VDom.ElemName -> Array (Prop i) -> Array (VDom.VDom (Array (Prop i)) p) -> VDom.VDom (Array (Prop i)) p)
           -> VDom.ElemName -> Array (Prop i) -> Array (HTML p i) -> HTML p i
    coe = unsafeCoerce
    ns :: Maybe VDom.Namespace
    ns = Just $ VDom.Namespace svgns

-- | Creates an SVG element that expects indexed properties.
element :: forall r p i. ElemName -> Array (IProp r i) -> Array (HTML p i) -> HTML p i
element = coe celement
  where
    coe :: (ElemName -> Array (Prop i) -> Array (HTML p i) -> HTML p i)
           -> ElemName -> Array (IProp r i) -> Array (HTML p i) -> HTML p i
    coe = unsafeCoerce

svg :: forall p i.  Leaf (cx :: I, cy :: I, r :: I) p i
circle props = element (ElemName "circle") props []

For svg, you'll want to use the Attr constructor with the svg namespace, rather than Prop.

Trying that (code below) makes some changes, but doesn't quite work. This changes the markup when inspecting (to the expected <circle r="10"></circle>). However, in the DOM properties browser nothing is affected and the circle is not visible.
---- | Create a SVG attribute.
cattr :: forall i. AttrName -> String -> Prop i
cattr (AttrName name) = Attribute ns name
  where
    ns :: Maybe Prop.Namespace
    ns = Just $ Prop.Namespace svgns

---- | Creates an indexed SVG attribute.
attr :: forall r i. AttrName -> String -> IProp r i
attr = coe cattr
  where
    coe :: (AttrName -> String -> Prop i) -> AttrName -> String -> IProp r i
    coe = unsafeCoerce

cx :: forall r i. String -> IProp (cx :: I | r) i
cx = attr (AttrName "cx")

r :: forall s i. String -> IProp (r :: I | s) i
r = attr (AttrName "r")

Ah, the issue was that I should not have been providing the namespace in cattr, it should look like this:
---- | Create a SVG attribute.
cattr :: forall i. AttrName -> String -> Prop i
cattr (AttrName name) = Attribute Nothing name

This seems a bit counter-intuitive, could somebody explain why? Otherwise I'm happy for this to be closed.

@kwohlfahrt I'm not too familiar with using SVG with Halogen, unfortunately. But I know others have with some success at least. I would have expected you'd need the namespace, as I'm pretty sure others had to do that. It's what we've suggested in the past (and I think there are some issues here relating to it).

Hmm, I noticed that on master, Attribute and ElemSpec expect a different Namespace type. This is not the case in the purescript-halogen-vdom repository, but purescript-halogen master has a non-existent commit pinned. That could be causing trouble.

With the 1.0.0 release candidate, it is still necessary to use a namespace of Nothing for SVG attributes. That seems to work fine though! FWIW, I've thrown a (very incomplete) SVG library up here: https://github.com/kwohlfahrt/purescript-halogen-svg that I'll expand as I need additional properties.


fix: remove wrong package name

This pr provides implementation of the customers list fetching feature and unit tests has been written.
This closes https://github.com/hngprojects/hng_boilerplate_golang_web/issues/15


🚀 Feature: Configure and run node server using heroku or vercel or digital ocean and connect it with Frontend

🔖 Feature description

Explore different free sites to run node server

🎤 Screenshot
No response
🔄 Additional Information
No response
👀 Have you spent some time to check if this feature request has been raised before?

[X] I checked and didn't find similar issue

i'll take this issue


Better type checking for sample statements

Right now it's possible to generate invalid Stan code using ~.  For example:
        val x = data(real())
        val model = new Model {
          x ~ stan.poisson(1.0)
        }

The Stan for this will not compile because x is real.  Changing x to int fixes the problem.  ScalaStan should identify this before generating Stan code (ideally at Scala compile time).

I believe this is addressed with #53.

Hi - I'm getting an invlaid sample statement error from this:
omega ~ stan.lkj_corr(2)

Previously I declared omega as follows:
  val omega = parameter(corrMatrix(assetCount))

Was PR #53 supposed to have addressed this?

The lkj_corr distribution provides a slight complication for the type checking in ScalaStan related to the size of matrix in that it's not known when the distribution is created.  To work around it, there is a second version of the distribution that takes two arguments, where the first argument is the size of the matrix.  So I think the following should do what you want:
  val omega = parameter(corrMatrix(5))
  omega ~ stan.lkj_corr(5, 2)

That is something that should be fixed though. I'll file an issue for it.


Is this compatible with DeepSpeed / ZeRO?

I train large language models using DeepSpeed's ZeRO optimizer. Does this library support ZeRO?

Hi Stella,
Thanks for bringing our attention to the compatibility with DeepSpeed!
In principle, yes. Our muAdam is just a wrapper that scales the learning rates for different parameter groups differently before passing them on to Adam.
See https://github.com/microsoft/mup/blob/c9d67001c47ae254ea4b7e26146ffd059520b6ba/mup/optim.py#L38
If I understand correctly, ZeRO is a technique that makes the underlying optimizer more efficient without changing the math. If you could pass the parameter groups created by muAdam to ZeRO Adam, it should work as expected.
Please let us know if our understanding of ZeRO is correct. We'll also look into what the best way to integrate with DeepSpeed is, given its popularity among folks who train large models.

@StellaAthena @edwardjhu Our team is also trying to migrate muP to gpt-neox. It seems to me that MuAdam works fine with zero optimizer, as all it does is adjusting the learning rate. Figure below is the "coord check" test for a 12 layer model (basically the small.yml config in gpt-neox), width from 12 to 768:

As you can see, mup works well with gpt-neox!
I think the major barrier to use mup is that we could not use the MuReadout in mup as the output layer. We need to have a model-parallel version. And applying the coord check is hard on large model, because deepspeed will somehow occupy certain gpu memory even after the model is garbaged collected and current coord check impl need to initialized multiple model squentially, which will lead to OOM for multiple large model.
If you have interest in adapting mup to gpt-neox, maybe we can work together :)

@zhuzilin So MuReadout essentially just does the following
    def forward(self, x):
        return super().forward(
            self.output_mult * x /  self.weight.infshape.width_mult())

If for some reason you can't use MuReadout as is, you can manually write out this forward, assuming you have already called set_base_shapes. For example, in your model forward function,
output = x @ self.output_weights.T * self.output_mult / self.output_weights.infshape.width_mult() + self.output_bias

I'm not sure what you need exactly for model parallelism, but hopefully this helps. But if you do figure out how to do model parallelism, we would like to hear how to incorporate your insight into mup to make it work right out the box.

@zhuzilin I'm looking into adding support for muP to GPT-NeoX and would love to check out your code. Where can I find it?


Minimum Py version

Does not work with Python < 3.11 due to missing datetime.UTC, especially not with Python 3.8 as specified in the pyproject.toml.
For example, Python 3.10.8
>>> import datetime
>>> datetime.datetime.now(datetime.UTC)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'datetime' has no attribute 'UTC'

Thanks for letting me know. Not sure how that slipped. Should be fixed in 0.6.1. Let me know if you have other issues.


chore(deps): update terraform-module

This PR contains the following updates:

Package
Type
Update
Change

terraform-ibm-modules/cos/ibm (source)
module
minor
8.4.1 -> 8.5.1

terraform-ibm-modules/event-notifications/ibm (source)
module
minor
1.5.3 -> 1.6.4

Release Notes

terraform-ibm-modules/terraform-ibm-cos (terraform-ibm-modules/cos/ibm)
v8.5.1
Compare Source
Bug Fixes

deps: update terraform-module (#651) (dd1a7c1)

v8.5.0
Compare Source
Features

add support to use an optional prefix in the COS instances DA (#650) (77cf971)

v8.4.2
Compare Source
Bug Fixes

updated several variable descriptions (#644) (52255cd)

terraform-ibm-modules/terraform-ibm-event-notifications (terraform-ibm-modules/event-notifications/ibm)
v1.6.4
Compare Source
Bug Fixes

deps: update terraform-module (#231) (2979df4)

v1.6.3
Compare Source
Bug Fixes

bug with kms id (#229) (d2dbcd6)

v1.6.2
Compare Source
Bug Fixes

skip call to cos module when providing existing bucket in the DA solution (#220) (bf07db0)

v1.6.1
Compare Source
Bug Fixes

add back the fix that was added in v1.5.4 but incorrectly removed in v1.6.0 (#227) (8e294b0)

v1.6.0
Compare Source
Features

add optional prefix variable to the DA solution (#216) (817437b)

v1.5.4
Compare Source
Bug Fixes

fixed bug with COS KMS key logic (#222) (d386fdd)

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

/run pipeline

/run pipeline

/run pipeline

/run pipeline

:tada: This PR is included in version 1.6.3 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


⚠ Spryr has degraded performance

In 010d327, Spryr (https://spryr.com) experienced degraded performance:

HTTP code: 200
Response time: 3663 ms

Resolved: Spryr performance has improved in 22d2a63 after 7 minutes.


Python: Exclude the KernelContent's inner_content as it breaks serializing the model

Motivation and Context
There's been an error for a while where serializing the chat history leads to the following error:
PydanticSerializationError(Error serializing to JSON: TypeError: 'MockValSer' object
cannot be converted to 'SchemaSerializer')}

This is due to the fact that we're trying to do a model dump of an object that we don't have a Pydantic model for as the inner_content type is Any. Most, if not all, of the inner_content info is already included in our ChatMessageContent, therefore we're excluding this attribute from serialization.
Note: if you require the information in this inner_content attribute, you will be responsible for grabbing the content before serializing the chat history, as it won't be included.

Description
This PR excludes the inner_content from the model_dump(), model_dump_json(), or serialize() calls.

Fixes #7903
Adds a concept sample showing how to serialize the ChatHistory after invoking a prompt via the kernel.

Contribution Checklist

[X] The code builds clean without any errors or warnings
[X] The PR follows the SK Contribution Guidelines and the pre-submission formatting script raises no violations
[X] All unit tests pass, and I have added new tests where possible
[X] I didn't break anyone :smile:

Python Unit Test Overview

Tests
Skipped
Failures
Errors
Time

2823
4 :zzz:
0 :x:
0 :fire:
1m 3s :stopwatch:


Clarification on masked behaviour for vbrev8

vbrev8 (https://github.com/riscv/riscv-crypto/blob/master/doc/vector/insns/vbrev8.adoc) performs bit reversal on bytes, but the instruction still consider elements as SEW-bit wide, so that means that when masked each mask bit corresponds to a SEW-bit element. Although the description hints that way by using the phrase "Elements with bit-reversed bytes" and the pseudo-code consider SEW-wide elements, I feel like this could warrant a note to distinguish element-width and bit-reversal granularity, or change the description from:

A bit reversal is performed on the bits of each byte.

to

A bit reversal is performed on the bits of each byte of each element.

Fine by me. Thank you for responding to my comment.


Error when running script to generate graphql queries used by frontend

Error when running the Generate Queries script.
E.g. https://github.com/vegaprotocol/frontend-monorepo/actions/runs/3345498707

Blocks #802


Make EBA build with a modern OCaml ecosystem

jbuilder is deprecated and dune should be used instead.
This PR updates the build configuration to reflect that while also updating the Dolog module.

Thanks @andersfischernielsen. Are you familiar with git rebase? I like the changes but I would prefer if some of them were squashed. I do appreciate a lot that we keep the Git history a bit clean, although no need to exaggerate of course.
Basically, all commits except 7c4bc28c1b705ee2f7bcb3f7c2d857b613b1adbb could be squashed into a single commit. Ideally this change "dolog" {>= "4.0.0"} should go out of this PR. Or you can squash everything together with PR #4  into a single commit titled "Make EBA build with a modern OCaml ecosystem" or something. Some of the commits are undoing stuff done by previous commits and that will make the history a bit messy.
Regarding commit 7c4bc28c1b705ee2f7bcb3f7c2d857b613b1adbb, it would be nicer if you create .gitignore but leave .hgignore. I was actually using Hg and I just pushed to GitHub using the hg-git bridge. I must drop Hg here, but haven't done it yet. When I do it I'll remove .hgignore.

I'll try to sqeeze everything together. Thanks! 👍

@IagoAbal When you have the time, can you review this (again)? 👍

Thanks for rebasing!


Modification of parameters

Hello.
I was wondering if there is any documentation on the role each parameter plays within the overall code. I am trying to use GATK-SV to identify de novo structural variants and thus want to be more lenient in calling SVs in the parents to reduce the false negative rate but I cannot find any information on how I can adjust the inputs to do so.
Thank you very much.

Hi @andrewruttenberg we are working on filtering documentation but you can reference my post over in #615


Custom fields not added into authorization header

I was trying to test an access token request and put the oauth_verifier into the field list but the generate authorization header doesn't have this field.

@tyteen4a03 The library generates the signature, it does not generate a full header, you should just pass to the the oauth_verifier header: https://github.com/bettiolo/oauth-signature-js#example


Don't submit needless submission in SubmissionQueue::wake

The current SubmissionQueue::wake implementation always adds an event, even if we're not currently polling. We can try to keep track when we're polling and only then add a submission, otherwise it would be an no-op.
I already have a implementation for this based on Mio's Waker: https://github.com/Thomasdezeeuw/heph/blob/64a3e330dc9f3bdc40a4cb61b004ec17501cf2d8/rt/src/thread_waker.rs.

Could also return a boolean indicating whether or not the ring was actually awoken (vs. not polling).

Commit f752da0 improves this a little bit.


Split tst/anupqeg.tst into multiple files

The test file tst/anupqeg.tst is huge and takes very long; this makes it very difficult to isolate and debug individual test failures. Hence, this file should be split into multiple smaller files.
Note that it is created by tst/make_anupqeg, so perhaps one can tweak that script to generate multiple test files (which could be put into a subdirectory tst/examples/).

Related to this: PqExample is huge and complicated and it accesses the same base data from which the .tst files are generated. So when revising this, one should propably revise the whole approach how examples are managed. See also my remark at issue #23.


a question about xpos and D of decay mat

as we all know, xpos has decay  ability , but you add  D of decay mat  after Q @K^T ..
Is It redundant ?

I think your concern is justified. The decay ability exists in xpos. The decay of matrix D may be redundant.


"Sărata" and "Bălțata" villages are listed in the drop-down menu

Description:
The villages are listed in the drop-down menu alongside its corresponding county and commune, according to the law
Preconditions : the website (https://peviitor-ro.github.io/ui.orase/) is up and runing. After every step delete the text you typed from the search bar.

Step 1
Type "Sărata" in the search bar.

Expected results
The location is listed in the drop-down menu as "Sărata, Bacău(Sărata)"

Step 2
Type "Bălțata" in the search bar.

Expected results
The location is listed in the drop-down menu as "Bălțata, Bacău(Sărata)"


Package scope and name

Hi, a quick thought here regarding the package name.
When I see it from the first time, I feel the current name bioimageio.core is not clear. Basically, "the core of bioimageio" can mean the core of the bioimage.io website, or something unclear. It can also make people wonder what is bioimageio first. But for us, bioimageio is just a domain name that includes the bioimage model zoo.
We should think about what the scope of the package is. As I understand, we are implementing the model inference (perhaps also training in the future), one question is that are we going to also deal with other RDFs (dataset, application, workflow) in the same package? Considering that they can be significantly different from the way we deal with models, we might want to split into smaller python modules.
If that's the case, I would propose to reserve the name core and use something like bioimageio.runner or bioimageio.model-runner for the model. It will also be more clear because it means "the model runner of bioimage.io".
What do you think?
@FynnBe @constantinpape @k-dominik

We had a discussion about this and thought that core is fine because this package is only used in the python context in any case.

use something like bioimageio.runner or bioimageio.model-runner for the model. It will also be more clear because it means "the model runner of bioimage.io".

This package contains more than model inference though, for example the build_spec and weight_converter functionality.

maybe we come up with something better... let's keep track of discussed options:

bioimageio.x
pro
contra

core
covers various functionality we want to include there
somewhat unsepcific

runner

we also have other funtionality in there

model-x

there will always be shared python funcitonality acrross resource types... ( this does not mean we might not add more specific packages in the future)

utils

too vague, used also internally

We have decided on core-bioimage-io-python for the repo name and bioimageio.core for the package name now.


Navigation sidebar missing from index page

OpenQASM version:
Live
Python version:
NA
Operating system:
NA
What is the current behavior?
The sidebar navigation links are not visible from the index page of https://openqasm.com. Other subpages show the correct location for the navigation sidebar.
Steps to reproduce the problem
Visit  https://openqasm.com
What is the expected behavior?
Sidebar navigation is visible when visiting  https://openqasm.com.
Suggested solutions (Optional)
I have tracked this down to a bug in the docutils package, which is required by sphinxcontrib-bibtex and occurs because of a missing opening div that is followed by a mismatched closing div.
Details are here: https://github.com/mcmtroffaes/sphinxcontrib-bibtex/issues/309
A patch is available here: https://sourceforge.net/p/docutils/patches/195/
Link to patchfile: https://sourceforge.net/p/docutils/patches/195/attachment/0001-Fix-previous_sibling-in-case-index-is-0.patch
The patch was merged into docutils dev about 6 months ago, but I have no idea when a new version of docutils will be released. We could either try to patch docutils using the file above during publishing of the webpage or directly insert the missing line
\n into the built html page after the line
.

I should mention that I was bothered by this bug when working on my PR for publishing multiple versions of the specification (#452). The sidebar contains the links I've inserted for the different versions, so having it missing off the side of the page on the index is very inconvenient.


Observables return whole list of items instead of newly added item

Suppose i have a list of songs name like
firebase-database -> songs ---> song one
---> song two
---> song three
in firebase.
When the first time observables run it returns the whole list [song one,song two,song three]. It's perfect but after that if i add a new song to the list say song four
firebase-database -> songs ---> song one
---> song two
---> song three
---> song four
then observables should return [song four] but instead of the expected it's returning [song one,song two,song three, song four].
It's a lot wastage of usage and besides that when the list will be huge it ll be a problem fetching the whole list everytime .
So help me get rid of this .

Where r u , Brothers ? It's urgent . Please help me.

Hi @iamCoderGod -- what you're experiencing is the expected result from returning a FirebaseListObservable.
If you want just the last one, try this code:
const lastSong = af.database.list('/songs', {
  query: {
    orderByKey: true,
    limitToLast: 1
  }
});

Don't forget to subscribe to lastSong as it's an observable and won't do anything until you subscribe to it!
I do want to mention that if you're in need of some real-time assistance, check out the AngularFire2 Gitter Chat. It's probably going to you an answer faster than posting a question like this. Github issues are best suited for feature requests and bug reports.


Missing document file path in validation output when validating multiple documents

Currently the jv cli only outputs the validation results but omits the information about the corresponding document the validation results belong to.
This is especially problematic when validating multiple documents at once.
Even with detailed output I just get this:
jv -output detailed path-to/myschema.json *.json
{
  "valid": true
}
{
  "valid": true
}

Or is there a way to enable this information?

@ahochsteger there is no flag available for this.
I just added this information with d3bf053

@santhosh-tekuri wow, that was quick - thanks a lot! :smiley:
Since I use it as part of an build pipeline with automated reporting it would be great to have the instance as part of the JSON output. Currently it breaks the processing, since the output is now mixed plain text and JSON.
It also seems, that currently the output JSON switches from stdout to stderr if validation errors are found, which makes post-processing a pain, since I have to redirect stderr to stdout (2>&1) which may still break if there are any non-JSON error messages which should stay at stderr. Best would be if JSON would always be in stderr and additional (text) messages always to stderr.
Let me know, if you think I should open a separate issue for that.

@ahochsteger
I am rewriting this package. You can find the latest one at:
https://github.com/santhosh-tekuri/jsonschema/blob/boon/cmd/jv/main.go
it has more consistent output and also has -q quite mode
it has better output for parsing.
You can try the latest one if possible. otherwise let me know if adding -q quite flag solves your trouble

@santhosh-tekuri I just tried the boon branch, but it gives me this error:
$ go install github.com/santhosh-tekuri/jsonschema/cmd/jv@boon
go: downloading github.com/santhosh-tekuri/jsonschema/v6 v6.0.0
../../../../go/pkg/mod/github.com/santhosh-tekuri/jsonschema/cmd/jv@v0.0.0-20240502123112-148d5f7e16ea/loader.go:13:2: reading github.com/santhosh-tekuri/jsonschema/go.mod at revision v6.0.0: unknown revision v6.0.0

the branch boon is not published yet. so go install will not work.
you have to clone the repo and build it from sources as shown below:
$ git clone https://github.com/santhosh-tekuri/jsonschema.git
Cloning into 'jsonschema'...
remote: Enumerating objects: 3960, done.
remote: Counting objects: 100% (1737/1737), done.
remote: Compressing objects: 100% (589/589), done.
remote: Total 3960 (delta 1178), reused 1285 (delta 1113), pack-reused 2223
Receiving objects: 100% (3960/3960), 872.06 KiB | 1.19 MiB/s, done.
Resolving deltas: 100% (2821/2821), done.

$ cd jsonschema
$ git checkout boon
branch 'boon' set up to track 'origin/boon'.
Switched to a new branch 'boon'
$ go build ./cmd/jv
$ ./jv -h
Usage: jv [OPTIONS] SCHEMA [INSTANCE...]

Options:
  -c    Enable content assertions with draft >= 7
  -cacert PEM-certificate-file
        Use the specified PEM-certificate-file to verify the peer. The file may contain multiple CA certificates
  -d version
        Draft version used when '$schema' is missing. Valid values 4, 6, 7, 2019, 2020 (default 2020)
  -f    Enable format assertions with draft >= 2019
  -h    Print help information
  -k    Use insecure TLS connection
  -o format
        Output format. Valid values simple, alt, flag, basic, detailed (default "simple")
  -q    Do not print errors

NOTE: the command line flags are bit different compared to original


update deps

Fixes Or Enhances
Update go.mod and go.sum through go mod tidy.
Make sure that you've checked the boxes below before you submit PR:

[x] Tests exist or have been written that cover this particular change.

@go-playground/validator-maintainers

Coverage: 74.191%. Remained the same when pulling 8058f95f09388e59db580b08e0a236a394367f5e on hezhizhen:deps into 8f07b0368280d9fc70b4ffd3708b31427bbc286d on go-playground:master.

Duplicate of #1071


[HUDI-973] RemoteHoodieTableFileSystemView supports non-partitioned table queries

What is the purpose of the pull request
When hoodie.embed.timeline.server = true, the written table is a non-partitioned table, will get an exception.
io.javalin.BadRequestResponse: Query parameter 'partition' with value '' cannot be null or empty
	at io.javalin.validation.TypedValidator.getOrThrow(Validator.kt:25)
	at org.apache.hudi.timeline.service.FileSystemViewHandler.lambda$registerDataFilesAPI$3(FileSystemViewHandler.java:172)

Because api checks whether the value of partition is null or empty.
ctx.validatedQueryParam(RemoteHoodieTableFileSystemView.PARTITION_PARAM).getOrThrow()

Brief change log
RemoteHoodieTableFileSystemView supports non-partitioned table queries
Verify this pull request
Manually verified the change by running a job locally
Committer checklist

[ ] Has a corresponding JIRA in PR title & commit

[ ] Commit message is descriptive of the change

[ ] CI is green

[ ] Necessary doc changes done or have another open PR

[ ] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.

Enable timeline-server by default(https://github.com/apache/hudi/pull/1634), may use the previous version to write non-partitioned table operations, throw an exception, and switch to AbstractTableFileSystemView.

@cxzl25 : This is good catch. Thanks for fixing it. We handle by falling back to local file-system view but this is inefficient. This shows a gap in testing non-partitioned table in TestHoodieTableFileSystemView. We need to add a test case there.
@nsivabalan :  this would be good to have in 0.5.3 release.

Codecov Report

Merging #1674 into master will not change coverage.
The diff coverage is 0.00%.

@@            Coverage Diff            @@
##             master    #1674   +/-   ##
=========================================
  Coverage     18.21%   18.21%
  Complexity      856      856
=========================================
  Files           348      348
  Lines         15332    15332
  Branches       1523     1523
=========================================
  Hits           2792     2792
  Misses        12183    12183
  Partials        357      357

Impacted Files
Coverage Δ
Complexity Δ

...e/hudi/timeline/service/FileSystemViewHandler.java
39.90% <0.00%> (ø)
11.00 <0.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 bde7a70...1df41f9. Read the comment docs.

@cxzl25 : Have opened a jira https://jira.apache.org/jira/browse/HUDI-975 to add unit-test in general for non-partitioned table across all of file-system view implementations. Would you be interested in taking that as a follow-up ?
I will go ahead and merge this code as I think this should go into 0.5.3.  cc @nsivabalan

@bvaradar :  I chose a method in TestHoodieTableFileSystemView, added a partition path parameter, and added a unit test, but I am not sure whether all unit tests need to be modified like this. (https://github.com/apache/hudi/pull/1692)


ARC: Evicted entries from T1 are not tracked in the ghost list

gc := gcache2.New(10).ARC().Build()

for i := 0; i <= 10; i++ {
    value := fmt.Sprintf("val%d", i)
    gc.Set(i, value)
}

Upon inspection of the cache internal state, it appears that:

As expected, all the key/values are stored in the tier 1 cache t1
The key 0 with value val0 is correctly evicted from t1

However, the ghost list b1 does not keep track of the evicted key 0.
See: ARC: A Self-Tuning, Low Overhead Replacement Cache - https://www.usenix.org/legacy/events/fast03/tech/full_papers/megiddo/megiddo.pdf

The issue will be considered fixed when a unit-test addressing it hits master.


Add a Kubernetes Job for migrations

Create a new kubernetes job that runs migrations on deployment.

alternatively, add soda to docker image, wrap in shell script to migrate before starting app.

Nope.  Grift and buffalo do this so nicely, there's no need.


Fix quantized vector writer ram estimates

I still need to write a test, but wanted to open this PR early.
Scalar Quantized vector writer ram usage estimates completely ignores the raw float vectors. Meaning, if you have flush based on ram usage configured, you can easily overshoot that estimate and cause an OOM.

@gautamworah96 @msokolov this might be part of the reason for the OOMs, the estimates were completely ignoring the float[] vector sizes for fieldwriters 🤦 . I plan on iterating on this fix first, then proceed with https://github.com/apache/lucene/pull/13538
The other PR helps reduce heap usage slightly, but not by much. Honestly, the issue is that we just weren't tracking the usage in the estimate correctly.

Interesting. I didn't know the ram usage estimator is what is actually used for flushing based on ram size. I used to think it was only for external monitoring/alarming, and some other IndexWriter based store would actually do the ram usage calculation.
Thanks for the fix.


Feat/custom generator templates

Summary
Testing this solution
(If you have not already please refer to the contributing guideline as described
here)

[ ] Tell us about the problem your pull request is solving.
[ ] Are there any open issues that are related to this?
[ ] Is this PR dependent on PRs in other repos?

If so, please mention them to keep the conversations linked together.
Other Information
If there's anything else that's important and relevant to your pull
request, mention that information here. This could include
benchmarks, or other information.
Your PR will be reviewed by a core team member and they will work with you to get your changes merged in a timely manner. If merged your PR will automatically be added to the changelog in the next release.
If this is a new feature, please remember to add the appropriate documentation in their respective pages in the docs folder.
Thanks for contributing to Feathers! :heart:

We feel this one is a bit more heavy handed and the 2nd (merged) approach will hopefully be a bit more easy to get merged into the feathers upstream, great investigation here.


How to install dotnet core runtime on many remote machines?

How to install dotnet core runtime on many remote machines?
With PowerShell remoting I tried downloading the installer and run it but it didn't work.

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

ID: ff5c1c2a-7d86-703c-038e-062f5dcfc5b0
Version Independent ID: cab4f67f-f338-8990-6454-853a0f01627e
Content: Prerequisites for .NET Core on Windows
Content Source: docs/core/windows-prerequisites.md
Product: dotnet-core
GitHub Login: @mairaw
Microsoft Alias: mairaw

@leecow @richlander can you help with this question? Is this something we need to cover in the docs?

Closing this due to lack of response. Also, considering that you can deploy .NET Core via a zip file and ensuring the prerequisites are installed, there shouldn't be a problem remotely deploying it. If there is a specific problem installing via PowerShell, please share the specific details. You may also find help on StackOverflow.

I have a similar problem. We're getting the first experiences with windows server core, which has no ui. When installing the dotnet hosting environment, it hangs up, propably due to a request to the user. If I try the same on common windows server it does the installation, but pops up with a warning to restart IIS. Are there any parameters for installer to avoid the popup?

@reframalo I ran the installer with the -? parameter and was shown this:

So I think that you can run something like this dotnet-hosting-2.2.6-win.exe /install /quiet to get it to be a silent install.

This works amazingly, thank you!


Apply select's required attribute to multi.js.

If the select that multi.js is based on has its "required" attribute set, multi.js will force the user to choose at least one option when submitting a form - in much the same way that the underlying select would have done.
The wrapper also receives the class "required" to allow it to be styled.

Hi! This seems like an awesome feature to have. Thank you for taking the time to contribute!
I can see one problem with the current solution though. This relies on the search field to exist in order to trigger the validation error (select.wrapper.search.setCustomValidity) but the search field can be disabled!
Can you think of a way to use HTML5 validation with the search field absent?
Thank you!

Hi I'm happy to contribute - thank you for your work in the first place!
I think you've found a big obstacle. As far as I'm aware, setCustomValidity can only be applied to inputs, textareas and selects. Initially I tried to use the original select, but because it is hidden that did not work (the browser complains that the control is not focusable), so I used the search as the only available input, forgetting that it might not always be present.
It would seem there are probably only two ways we could handle this:

Disregard the new functionality if search is disabled (but show a warning in the console if required is set and search is disabled).
See if there is another way to hook into the form validation event and display the validation message on the wrapper div.

When I find the time I'll investigate option 2 a bit further, although my feeling is that option 1 at least offers an enhancement at this time if we include the warning for disabled search.
James

Option 1 is a possible solution although not ideal. Investigate option 2 if you find the time. I'm a bit short on time myself but I'll try looking into it as well.

Multi.js will now show a warning in the console if the select is required and search is not enabled.
This commit also removes the required attribute from the hidden select. If the required attribute remains but the search is disabled, the browser will validate normally and block form submission. However it will not display an error to the user, but show an error in the console because it is unable to focus on the hidden select. This would make for a poor user-experience.
I'll continue to look into option 2 as and when I have the time.

Hi! Let me know if you want to continue work on this. I'll close the PR for now :)


Run linting and tests with GitHub Actions

[ ] Add MinGW/MSVC to build matrix; set up MSVC build
[ ] Fix MinGW 11.2 warnings if feasible
[ ] Decide if it is worth building with warning level 3 with GCC


Fix for WinPTY freeze on termination

This is a proof-of-concept for working around winit:1241 to fix alacritty:2889.
The workaround creates a notification channel between main even loop and pty thread that notifies the thread that the main loop is about to exit. This notifies the thread to terminate which stop it from  spamming Wakeup messages on Windows message channels.

I'm still not sure how Alacritty is doing anything bad here, the Wakup events we send are not increasing after termination, right? This is just our usual terminal updates.
If this is the case, the terminal should exit eventually, since no more data is printed to it. If the Wakeup is getting triggered for no good reason, we should probably try to fix this in the pty reader.

@chirsduerr: Another workaround, for WinPTY would be to somehow track if winpty-agent is still alive and quit if it has terminated.
As I understand, the shell process is, when using WinPTY spawned and maintained by winpty-agent which is a 3rd party C library. The only thing that Alacritty knows of are 2 named pipes for shell cin and cout. Inside of it's pty thread alacrity polls only handles those, one of which is constantly polling cin to see if anything could be read from it.
As long as nothing bad happens to shell or agent, sending a WM_QUIT message to the windows (ex. by clicking X in the top right corner) works fine, no problems there.
However, named pipes persist even after winpty-agent and underlying shell have terminated. Alacritty does not really track that and therefore the pty thread still polls the pipes even when there's nothing to write to the. This wouldn't be an issue, but after every read attempt it sends a user-defined windows message to wake-up main Glutin/winit UI thread in case it is paused, I assume so it redraws in case new input was received from cout pipe. This triggers a bug (or at least a weird assumption in winit), where Windows message handling code exits only after all messages have been consumed from the message queue and only after that winit checks, if application has requested a termination. Because pty thread does not know yet about the termination (it only know about it after winit UI thread actually exits), it keeps sending messages to window message queue and prevents the main UI thread from exiting. I assume because there's nothing to read/write from.
Let me know if there's a Gitter, Slack or any other channel you're in, I'm happy to arrange some time to show you what triggers this bug step by step, if you're interested. It's definitely not an easy one to explain :)

Let me know if there's a Gitter, Slack or any other channel you're in, I'm happy to arrange some time to show you what triggers this bug step by step, if you're interested.

There's an #alacritty channel on IRC, which has pretty good activity and I'm (almost) always around.
I think I understand the issue a bit better now though, I'm not super familiar with the WinPTY code and the way it works on Windows is extremely messy.
Would something like adding Ok(0) if processed == 0 => return work here to fix the issue?
An alternative solution might be just wrapping the Wakeup in a if processed > 0 conditional.
If these two do fix the issue, it depends a bit on performance which is the better fix, but let me know if my assumption is correct and this resolves it.

I think that would solve the freezing. I think that's event better fix as long as nothing related to rendering relays on those wake-up events happening (blinking cursor maybe?).
I've actually just realised there is a piece that tracks status of WinPTY agent that enters Glutin event handler here with [tty:process_should_exit()] returning true.
But that's only UI loop and it does not terminate it immediately. All it does is tell winint that it would like to exit next time it's possible. But there is still pty thread active and sending messages to windows message queue here when all of this happens, so winit never gets around to check that intent.
So any way of stopping / throttling those messages will work.

This fixes the freeze, but brings back the original issue from 0.3.3, where you have to interact with the window for it to disappear.
This is because the UI thread is put to sleep and does not wake up until a Windows event arrives. Probably it would be useful to re-think how tracking WinPTY/ConPTY is done on Windows (spearate thread?) so it can also wake up UI thread when shell exits / crashes.

I think that would solve the freezing. I think that's event better fix as long as nothing related to rendering relays on those wake-up events happening (blinking cursor maybe?).

We do not have a blinking cursor. These Wakeups are only required when data has been processed and the terminal was mutated in the process. If processed is 0, it is never required.

This is because the UI thread is put to sleep and does not wake up until a Windows event arrives. Probably it would be useful to re-think how tracking WinPTY/ConPTY is done on Windows (spearate thread?) so it can also wake up UI thread when shell exits / crashes. Or just make it a part of PTY thread but I'm not sure how expensive is tty:process_should_exit()

On Linux a Wakeup is sent to the event handler when the process should exit, this should behave the same way on Windows.

On Linux a Wakeup is sent to the event handler when the process should exit, this should behave the same way on Windows.

So it seems that it is just happening in completly different place than on Windows. On Unix-based systems this is done in PTY thread via some MIO magic that I'm still need to fully grasp. Should be possible to move Windows child process monitoring there as well, I'll try to find some time to dive into mio::windows to see if we can use it to do the same thing.

@chrisduerr: That should be the solution. It now uses async WinAPI call to catch child process exit and produce relevant mio event. The event is captured in pty thread and terminates it. It is now aligned with how it's done on Unix-based systems until OS-specific code is hit. Have a look and let me know what changes should I make to get it merged. I still might post a couple of small changes here and there, want to double-check all the unsafe interactions with WinAPI

I'm done with the changes I wanted to make.

I'll try to find some time later today to wrap it up and fix the remaining things mentioned in the review.

This should be all the changes you've requested, let me know if there's anything else.

One other suggestion I have, since you still have some second though about names of ChildProcessWatcher and WaitSignalHandler, they could probably just be merged it all into a single struct, something like ChildExitWatcher. It is unlikely that there will be any other use case for WaitSignalHandler unrelated to this functionality, so maybe there is no point in having it separated and done in such a generic fashion.
It was done this way because it was a lot easier for me when I was still trying to decide between mio channel and atomic boolean for storing the fact that child has exited, but it doesn't have to stay that way.

One other suggestion I have, since you still have some second though about names of ChildProcessWatcher and WaitSignalHandler, they could probably just be merged it all into a single struct, something like ChildExitWatcher. It is unlikely that there will be any other use case for WaitSignalHandler unrelated to this functionality, so maybe there is no point in having it separated and done in such a generic fashion.

I'd definitely be curious on how this would work out and if this would simplify the implementation. If we'd be able to streamline things a little bit that would of course be very nice, though I'm not sure if I want to request this change and then tell you to revert it again.
If you're willing to test it out, feel free to do so, otherwise I can give it a shot too. Otherwise just rename the one struct and that should be sufficient.

Just merged the structs, I think the code is a lot more straightforward this way. Testing is a bit more complicated, since it requires minimal mio setup, but overall I think it's better this way.
One final thing I'm considering now - since child module now has just a single struct, might be worth just moving it to parent module.
Let me know what do you think.


Why train incomplete 3D Gaussians first？

What is the purpose of doing this？

Our goal is to construct an incomplete Gaussian. According to our experiments, some segmentation methods at that time could not segment Gaussian robustly, so we directly trained an incomplete Gaussian. Of course, this is not the core part of this project. Now, perhaps some Gaussian segmentation methods have better performance.

Thank you for your reply.But after I read the train.py in gaussian-splatting, I found that if mask_training is True, the loss is computed between masked render image and masked gt-image,I can't understand why does this allow us to train incomplete Gaussians.And another question is, does an incomplete Gaussian mean a Gaussian with the inpaint part gaussians completely removed?


Yellow warning triangle not necessary in this case

What version of Wallet are you using?
Version: 0.15.2
What is happening?
When connecting an app to the wallet, in this case the bridge, the wallet tells you what the app is allowed to do, in this case it gives the following list with a green tick or a red cross next to each point
(green tick) View your account address
(green tick) Request transaction approval
(green tick) Request message signature
(green tick) Read your transaction history
(red cross)  View your private keys

After confirmation, a yellow triangle is is shown above the app connection box as shown in the image below

My assumption is that because all the points are not a green tick, then a warning is given in the form of the yellow warning triangle.
In reality, no warning is required in this case, the user should be happy that the app cannot view the private key.
steps to reproduce
Check under ### What is happening
How it should behave?
Generally speaking, maybe we should have a re-think on how the information should be displayed to the user.  In this case I would expect a green tick rather than a yellow warning triangle.
Maybe the last message should read:
(green tick) Cannot view your private keys
and then a green tick would be displayed rather than a yellow warning triangle
If there's a red cross against any of the other 4 points, namely:
View your account address
Request transaction approval
Request message signature
Read your transaction history
Then I don't think that's a problem, we should still display a green tick as an overall status.  But also conversely maybe there should be a yellow warning triangle if an app can Read your transaction history or View your account address
What os are you seeing the problem on?
Mac/Apple Desktop
What browser?
Chrome
What is your browser version?
Version 122.0.6261.112 (Official Build) (x86_64)

@HoTandy does that make sense?
I replaced that warning icon with a grey info circle icon.


fix: SignClient disposing when duplicate WalletConnectModal deletion occurs

This pull request fixes the issue in #199

Thank you, @astasovsky!
This also fixes #173


standard figure file name in the case of multilayering

If multilyering is chosen, the standard file name suggested upon saving the figure should be named by the main chosen variable "1". This is currently not the case.

As these two are related. Do you also suggest the title of the plot to represent the "1" layer instead of the last one?
Currently the highest numerical priority is chosen both for the title of the plot and filename for saving it.

Yes. I just reckognised, that also the title is given from the overlay figure not from the "main" figure. It would be much more logical to me to have the priority 1 giving the figure name and title.


Field Slip PDFs

Builds on the SolidQueue PR.  Probably makes sense to just keep them merged and deploy them together.
To test:

Run the migrations.
Start bundle exec rake solid_queue:start in a new shell.
Go to a project with a field slip prefix.
Click "Create Field Slip PDF".
Click "Create" (feel free to update the number of Pages.
Click again on "Create Field Slip PDF".  The job is likely already done at this point if you haven't chosen a very large number.  If the job is not done, then Reload the page until it is.
Once it's done, the file name in the display should turn into a link that will download the PDF.
The files and FieldSlipJobTracker objects get cleanup during the first job that gets run after they have not been updated for a week.

See #1949 for more notes on what was implemented, but the above covers most of it.

coverage: 94.435% (+0.03%) from 94.401%
when pulling bd1d9860d5bf12d27665e1c6b91bcaa9a9632c77 on njw-field-slip-pdfs
into dfa9ac66dac2e48134d911e0b50aae281c73cdb0 on main.

I'm not sure about the service stuff I just added.  Specifically in config/etc/solidqueue.service and and script/deploy.sh.

@pellaea @nimmolo Can you review the services bit of this for SolidQueue?  I tried following combining what we're doing with Puma with what I found here https://gitlab.com/-/snippets/3693757.  Not sure how to test this other than just trying and seeing if it works.

One thing i'm noticing in the solid queue docs, I don't know if it's necessary, but it seems like it might put error messages where we're more likely to catch them when we're not already thinking about it:

We provide a Puma plugin if you want to run the Solid Queue's supervisor together with Puma and have Puma monitor and manage it. You just need to add plugin :solid_queue to your puma.rb configuration.

I agree that this will be hard to troubleshoot without just trying it out.

One thing i'm noticing in the solid queue docs, I don't know if it's necessary, but it seems like it might put error messages where we're more likely to catch them when we're not already thinking about it:

We provide a Puma plugin if you want to run the Solid Queue's supervisor together with Puma and have Puma monitor and manage it. You just need to add plugin :solid_queue to your puma.rb configuration.

I noticed that as well, but decided not to try it because it creates another dependency (something we have to fix when we switch from Puma to whatever the next Rails webserver is).  It seems the main reason this feature exists is to avoid extra billing cost on Heroku which doesn't matter to us.

Manual test threw ArgumentError at step 4 ("In the console, run FieldSlipJob.new.perform(Project.first.id, 0, 6) (or pick your favorite Project)""). I'm sure this is something simple, but don't have time this morning to figure it out.
irb(main):001> FieldSlipJob.new.perform(Project.first.id, 0, 6)
  Project Load (0.3ms)  SELECT `projects`.* FROM `projects` ORDER BY `projects`.`id` ASC LIMIT 1
/Users/joe/mushroom-observer/app/jobs/field_slip_job.rb:6:in `perform': wrong number of arguments (given 3, expected 2) (ArgumentError)

Tried again, but running into a conflict with the long/lng change. I'm almost out the door for today soprobalby won't be able to resolve the conflict till tomorrow.
NameError in Observations#index
Showing /Users/joe/mushroom-observer/app/views/controllers/shared/_matrix_box.erb where line #38 raised:

undefined local variable or method `long' for an instance of Observation
Extracted source (around line #798):

    "#{lat.abs}°#{lat.negative? ? "S" : "N"} " \
      "#{long.abs}°#{long.negative? ? "W" : "E"}"
  end

  def display_alt

Trace of template inclusion: #<ActionView::Template app/views/controllers/observations/index.html.erb locals=[]>

Rails.root: /Users/joe/mushroom-observer

Application Trace | Framework Trace | Full Trace
app/models/observation.rb:798:in `display_lat_long'
app/helpers/observations_helper.rb:177:in `observation_details_where_gps'
app/helpers/observations_helper.rb:150:in `observation_details_when_where_who'
app/helpers/lightbox_helper.rb:36:in `lightbox_obs_caption'
app/helpers/lightbox_helper.rb:20:in `lightbox_caption_html'
app/helpers/lightbox_helper.rb:8:in `lightbox_link'
app/helpers/images_helper.rb:45:in `block in interactive_image'
app/helpers/images_helper.rb:31:in `interactive_image'
app/helpers/matrix_box_helper.rb:61:in `block in matrix_box_image'
app/helpers/matrix_box_helper.rb:60:in `matrix_box_image'
app/views/controllers/shared/_matrix_box.erb:38
app/views/controllers/shared/_matrix_box.erb:36
app/views/controllers/shared/_matrix_box.erb:33
app/helpers/matrix_box_helper.rb:52:in `block in matrix_box'
app/helpers/matrix_box_helper.rb:51:in `matrix_box'
app/views/controllers/shared/_matrix_box.erb:32
app/helpers/matrix_box_helper.rb:36:in `block (2 levels) in render_cached_matrix_boxes'
app/helpers/matrix_box_helper.rb:35:in `block in render_cached_matrix_boxes'
app/helpers/matrix_box_helper.rb:34:in `each'
app/helpers/matrix_box_helper.rb:34:in `render_cached_matrix_boxes'
app/helpers/matrix_box_helper.rb:20:in `block in matrix_table'
app/helpers/matrix_box_helper.rb:12:in `matrix_table'
app/views/controllers/observations/index.html.erb:39
app/helpers/pagination_helper.rb:19:in `paginate_block'
app/views/controllers/observations/index.html.erb:38
app/controllers/application_controller.rb:1531:in `show_index_render'
app/controllers/application_controller.rb:1387:in `show_index_of_objects'
app/controllers/observations_controller/index.rb:189:in `show_selected_observations'
app/controllers/observations_controller/index.rb:21:in `list_all'
app/controllers/observations_controller/index.rb:14:in `default_index_subaction'
app/controllers/application_controller.rb:1341:in `index'
app/controllers/application_controller.rb:226:in `catch_errors_and_log_request_stats'

app/models/observation.rb

Looks right to me on the current version of this branch.  There were some changes this morning, so maybe you need to do a git pull?
  def display_lat_lng
    return "" unless lat

    "#{lat.abs}°#{lat.negative? ? "S" : "N"} " \
      "#{lng.abs}°#{lng.negative? ? "W" : "E"}"
  end

It created a page of field slips. (I'm at the airport)
Possible issue re field slip #s
I used the alpha test project from this snapshot database-20240409.gz
The field slips are numbered 0-5
Locally the highest field slip is 12 for your Obs 547665

It created a page of field slips. (I'm at the airport) Possible issue re field slip #s I used the alpha test project from this snapshot database-20240409.gz The field slips are numbered 0-5 Locally the highest field slip is 12 for your Obs 547665

Yeah, I need to update the max number for projects that have field slips.  Thanks for the reminder.

@nimmolo What's the best way to manage the state updates for the background job using spinner?  See the "Create FIeld Slip PDF" page.

Thinking about it. It seems the job (or tracker) needs to fire off a response that can be picked up... by the controller or view template for the "Create PDF" page... by which it can... update the spinner?
I haven't dug into jobs enough to know what these callbacks are. Investigating...

Thinking about it. It seems the job (or tracker) needs to fire off a response that can be picked up... by the controller or view template for the "Create PDF" page... by which it can... update the spinner?
I haven't dug into jobs enough to know what these callbacks are. Investigating...

At the moment there is a status field that goes from 'Starting' to 'Processing' to 'Done'.  This gets recorded in the database in the FieldSlipJobTracker object.  It would also be possible to record the count of pages that have been processes so far as part of the job.  I think what this means is a browser on the Create PDF page needs to periodically (once per second?) make an AJAX call to the backend asking for the status of each job that is not already in the 'Done' state as far as the browser knows.  The call would return the status (and the page count if that gets added).  The JS code would then update the DOM with any change in status, turn the file name into a link once it gets to 'Done', and potentially update a pages rendered count.  For NEMF the plan at the moment is to render 800 pages (4,800 slips) which locally took 135 seconds.  At this point I think the most useful thing would be update the "Time" column and to add a page count column.  Then it would update every second.  I've attached the current UI and the HTML from the Chrome inspector.  I'm assuming I need to provide id's for each item in the table.  Happy to do something bootstrappy for the table if you think that would be significantly better.  My concern is I don't want to just go do something old school that there is some newer, better way to do.

I think i get it - thank you for that explanation.
Most important thing: old school JS is not even an option anymore - it will not load in the page.

You (or I) will need to write a Stimulus controller that attaches to the table (by DOM id), or maybe rather attaches to each row that needs updating (also by DOM id — Stimulus controllers can attach to more than one object if the objects should behave the same). The Stimulus controller would make the AJAX calls and update the row.
We have a new library I've loaded for easy AJAX calls via Stimulus.  (it's core Rails requestjs, but we had to load it to make it available.) I don't recommend using jQuery AJAX, since we're aiming to drop jQuery, but requestjs is pleasantly similar and easy. There are two example controllers that use it currently: modal-toggle_controller.js and obs-form-images_controller.js. In many other cases I've used vanilla-JS fetch - also an option, but if we're calling our own app, requestjs is maybe easier.

Let me know if you want to tackle it, or if you'd like me to do it.

  Thanks!

Ok. I'm psyched you're going to try it, I think you may enjoy working with Stimulus more than "regular" JS, even though you can't use jQuery in it by default.
I find it reassuringly "conventional over configurational". You don't have to re-invent the fork and the plate for each meal (although of course that can also be part of the fun when camping). Once you get the hang of the few conventions, it makes working with JS a lot more like working with Rails. I honestly think Joe might even like it!

Recommendation for the future: Don't point newbies and your biggest, gnarliest controllers.  autocompleter_controller.js is over a 1100 lines and obs-form-images_controller.js is over 900, but the median size is 30 lines.

Yes, sorry. Point taken. The gnarliest two make the most use of requestjs, I guess is why they came to mind.

Here's a sketch of the HTML markup for the table row here, with the attributes Stimulus might need.
This assumes a controller called field-slip-job_controller.rb. (I have been manually overriding the generated file name to use hyphens before the _controller suffix, following an online example somewhere.)
tag.tr(id: field_slip_id, data: { controller: "field-slip-job" }) do
  [
    tag.td { link_to(field_slip_pdf) },
    tag.td(data: { field_slip_job_target: "seconds" }) { seconds_html },
    tag.td(data: { field_slip_job_target: "pages" }) {pages_html }
  ].safe_join
end


Admin setup heroku

Description
Admin setup wouldnt deploy properly on Heroku but it should be fixed now. Only issue is that it wont redirect to the routes. Going to the route manually works though.
Type of change
Please delete options that are not relevant.

[X] Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?
I deployed this branch on Heroku to see if it works which it do.
Checklist:

[X] I have performed a self-review of my code
[X] My changes generate no new warnings

Fixed the conflicts; you can merge.


[vm][bytecode-verifier] Improve compatibility checks around abilities

Improve compatibility checks in upgrades for abilities

New struct abilities must be a superset of the old
New type parameter constraints must be a subset of the old

Improve dependency/linking check to allow for these upgrades

Local view of struct abilities must be a subset of the defined
Local view of type parameter constraints must be a superset of the defined

Motivation

Necessary to support abilities properly after the release

Test Plan

We can't really test linking easily at the moment
@mengxu-fb, anything to do for compatibility/upgrade tests?

We can test compatibility/upgrade in the ir-testsuite (and in functional tests too I believe), some examples can be found in language/ir-testsuite/tests/move/publish/republish_module_*.mvir.

Changes in this PR is good! But I think more changes are needed, especially to address the problem @tzakian encountered yesterday:
Here are some code snippets that might help illustrate the problem:
// language/vm/src/normalized.rs

pub struct FunctionSignature {
    pub name: Identifier,
    pub type_parameters: Vec<AbilitySet>,
    pub formals: Vec<Type>,
    pub ret: Vec<Type>,
}

pub struct Module {
    pub address: AccountAddress,
    pub name: Identifier,
    pub friends: Vec<ModuleId>,
    pub structs: Vec<Struct>,
    pub exposed_functions: BTreeMap<FunctionSignature, Visibility>,
}

// language/vm/src/compatibility.rs
// the logic for checking function-compatibility

        for (func_sig, old_vis) in &old_module.exposed_functions {
            let new_vis_opt = new_module.exposed_functions.get(func_sig);
            let is_compatible = match (old_vis, new_vis_opt) {
                (Visibility::Public, Some(Visibility::Public)) => true,
                (Visibility::Public, _) => false,
                (Visibility::Script, Some(Visibility::Script)) => true,
                (Visibility::Script, _) => false,
                (Visibility::Friend, Some(Visibility::Public)) => true,
                (Visibility::Friend, Some(Visibility::Friend)) => true,
                (Visibility::Friend, _) => false,
                (Visibility::Private, _) => unreachable!("A private function can never be exposed"),
            };
        }

Note that this FunctionSignature serves as key in the exposed_functions field, which means that functions with different ability constraints in the type parameters will be considered as different functions.
I would suggest the following change:
pub struct FunctionSignature {
    pub name: Identifier,
-    pub type_parameters: Vec<AbilitySet>,
    pub formals: Vec<Type>,
    pub ret: Vec<Type>,
}

pub struct Module {
    pub address: AccountAddress,
    pub name: Identifier,
    pub friends: Vec<ModuleId>,
    pub structs: Vec<Struct>,
-    pub exposed_functions: BTreeMap<FunctionSignature, Visibility>,
+    pub exposed_functions: BTreeMap<FunctionSignature, (Vec<AbilitySet>, Visibility)>,
}

And a new function-level compatibility checking procedure:
        for (func_sig, (old_type_constraints, old_vis)) in &old_module.exposed_functions {
            let is_compatible = match new_module.exposed_functions.get(func_sig) {
                Some((new_type_constraints, new_vis)) => {...},
                None => false,
            };
            ......
        }

:exclamation: Invalid command

Bors help and documentation

Bors is a Github App used to manage merging of PRs in order to ensure that CI is always green. It does so by maintaining a Merge Queue. Once a PR reaches the head of the Merge Queue it is rebased on top of the latest version of the PR's base-branch (generally master) and then triggers CI. If CI comes back green the PR is then merged into the base-branch. Regardless of the outcome, the next PR is the queue is then processed.
General

This project's Merge Queue can be found here.
This project requires PRs to be Reviewed and Approved before they can be queued for merging.
Before PR's can be merged they must be configured with "Allow edits from maintainers" enabled. This is needed for Bors to be able to update PR's in-place so that Github can properly recognize and mark them as "merged" once they've been merged into the upstream branch.

Commands
Bors actions can be triggered by posting a comment which includes a line of the form /<action>.

Command
Action
Description

Land
land, merge
attempt to land or merge a PR

Canary
canary, try
canary a PR by performing all checks without merging

Cancel
cancel, stop
stop an in-progress land

Cherry Pick
cherry-pick <target>
cherry-pick a PR into <target> branch

Priority
priority
set the priority level for a PR (high, normal, low)

Help
help, h
show this help message

Options
Options for Pull Requests are configured through the application of labels.

          Option
Description

Indicates that the PR is high-priority. When queued the PR will be placed at the head of the merge queue.

Indicates that the PR is low-priority. When queued the PR will be placed at the back of the merge queue.

Before merging the PR will be squashed down to a single commit, only retaining the commit message of the first commit in the PR.

Interesting point re testing linking. I think you can (probably?) do it with CLI tests that leverages doctor? E.g.
// M2 depends on M1
publish src/modules/M1.move
publish src/modules/M2.move
publish M1.move // this copy of M1 (e.g.) adds a new ability to a struct
move doctor // verifies and links everything, should work

for a positive test. For a negative one:
// M2 depends on M1
publish src/modules/M1.move
publish src/modules/M2.move
publish M1.move --ignore-breaking-changes // this copy of M1 (e.g.) removes an ability from a struct
move doctor // should fail to link M2 against M1

It's not the ideal place to test this, but the best we have at the moment (to my knowledge).

:exclamation: Invalid command

Bors help and documentation

Bors is a Github App used to manage merging of PRs in order to ensure that CI is always green. It does so by maintaining a Merge Queue. Once a PR reaches the head of the Merge Queue it is rebased on top of the latest version of the PR's base-branch (generally master) and then triggers CI. If CI comes back green the PR is then merged into the base-branch. Regardless of the outcome, the next PR is the queue is then processed.
General

This project's Merge Queue can be found here.
This project requires PRs to be Reviewed and Approved before they can be queued for merging.
Before PR's can be merged they must be configured with "Allow edits from maintainers" enabled. This is needed for Bors to be able to update PR's in-place so that Github can properly recognize and mark them as "merged" once they've been merged into the upstream branch.

Commands
Bors actions can be triggered by posting a comment which includes a line of the form /<action>.

Command
Action
Description

Land
land, merge
attempt to land or merge a PR

Canary
canary, try
canary a PR by performing all checks without merging

Cancel
cancel, stop
stop an in-progress land

Cherry Pick
cherry-pick <target>
cherry-pick a PR into <target> branch

Priority
priority
set the priority level for a PR (high, normal, low)

Help
help, h
show this help message

Options
Options for Pull Requests are configured through the application of labels.

          Option
Description

Indicates that the PR is high-priority. When queued the PR will be placed at the head of the merge queue.

Indicates that the PR is low-priority. When queued the PR will be placed at the back of the merge queue.

Before merging the PR will be squashed down to a single commit, only retaining the commit message of the first commit in the PR.

:exclamation: Invalid command

Bors help and documentation

Bors is a Github App used to manage merging of PRs in order to ensure that CI is always green. It does so by maintaining a Merge Queue. Once a PR reaches the head of the Merge Queue it is rebased on top of the latest version of the PR's base-branch (generally master) and then triggers CI. If CI comes back green the PR is then merged into the base-branch. Regardless of the outcome, the next PR is the queue is then processed.
General

This project's Merge Queue can be found here.
This project requires PRs to be Reviewed and Approved before they can be queued for merging.
Before PR's can be merged they must be configured with "Allow edits from maintainers" enabled. This is needed for Bors to be able to update PR's in-place so that Github can properly recognize and mark them as "merged" once they've been merged into the upstream branch.

Commands
Bors actions can be triggered by posting a comment which includes a line of the form /<action>.

Command
Action
Description

Land
land, merge
attempt to land or merge a PR

Canary
canary, try
canary a PR by performing all checks without merging

Cancel
cancel, stop
stop an in-progress land

Cherry Pick
cherry-pick <target>
cherry-pick a PR into <target> branch

Priority
priority
set the priority level for a PR (high, normal, low)

Help
help, h
show this help message

Options
Options for Pull Requests are configured through the application of labels.

          Option
Description

Indicates that the PR is high-priority. When queued the PR will be placed at the head of the merge queue.

Indicates that the PR is low-priority. When queued the PR will be placed at the back of the merge queue.

Before merging the PR will be squashed down to a single commit, only retaining the commit message of the first commit in the PR.

@mengxu-fb You are exactly right about the compatibility check. I did it in linking and then somehow thought I did it in compatibility.rs but clearly didn't

/land

Other tings are blocked by this, so I will get it in ASAP and new additional tests later

/land

@tnowacki :exclamation: Unable to run the provided command on a closed PR


Stronghold Crusader HD

Stronghold Crusader HD (1.4v) can be added to support games. cnc-ddraw resolve problem with camera scroll speed on windows 10. And additional can reduce processor load be setting maxgameticks=1000.
Only handlemouse=false need set for compatibility.
i use vsync=true, renderer=direct3d9, singlecpu=false.
Processor loaded 5-10% against 40-50% without wrapper.
Thanks you for the hard work!

Such a bug can happen if you run at 1366x768 with the GDI renderer, try to use 1360x768 instead and it will work! OpenGL and Direct3D should not have any problems with 1366x768 though

Its okey i am just confused wrappers. cnc-ddraw is good for this game.

Oh I see :+1:
Thanks for sharing your settings for the game, I will add the "handlemouse=false" now as preset into ddraw.ini


Is there a simple way to alter the head (i.e. meta tags/title/etc)?

I see that react-helmet used to be included as a dependency but was removed. Is there a simple way to set it (or something else) up in the current configuration?  I know it has to be done on the server, but I'm having trouble figuring out where I would need to make changes. I'd prefer not to have to rewrite the entire server setup if possible.

Yeah, I misread react-helmets docs. Ignore.


Fix fix potential heap use after free when concurrently flush segments on one tablet

TabletSchema is shallow copied, should do deep copy for _flush_schema
Proposed changes
Issue Number: close #xxx

run buildall


[idea] Merging website issue tracker here (or at least restricting website to very technical stuff)

The FD website is a major part of FD and the issue tracker there contains a fair amount of generic items e.g. "Publishing data tutorials / patterns" - https://github.com/frictionlessdata/website/issues/51
It would make sense to have one clear focal issue tracker for general FD work.
Could we consolidate issue trackers - or, at the very least, restrict website issue tracker to very technical stuff.

Hi @rufuspollock Have you checked out the overall FD project board? https://github.com/orgs/frictionlessdata/projects/2 Is this kind of what you are envisioning?

@lwinfree that's really useful - i had not seen that and kanban boards for tracking work overall is def useful.
My point though was a bit more e.g. i was also just wondering about reducing confusion about the places to post e.g. do I post a high level item about improving the website here or in the website issue tracker?

I like posting it in the website tracker. Most of the current issues are about improving the site, so i think it makes sense. Maybe we can update this: https://github.com/frictionlessdata/website/issues/184?

@rufuspollock the point i had was that i'd kind of prefer one place - rather than this pm tracker and the website tracker. The website is a massive part of the general delivery of this project (i.e. not specific to a particular tool). So having two trackers one for PM and one for the website leads (at least for me) to wondering about where i should post (example is that issue you linked). At least for me i'm going to concentrate on this tracker for now.

@rufuspollock to me it seems like putting stuff here instead of on the website tracker is then making the issues be in 2 places? Which is what you are trying to not do? Am I not following?

@lwinfree
following our Slack conv.
I've checked the website's issue and I would agree it seems mixed.
I think the idea is to decide where is the main entry point for project issues. Limiting or closing some issue tracker feels a good move. Less is always better for me :smiley:
E.g. checking project-level repos (project, website, fellow, etc)- https://github.com/frictionlessdata/software/blob/master/TEAMS.md#repositories
I would say that we can close almost all of the issues trackers there (I mean in the project subgroup) with a message that please use the project issue tracker (also adding the link to the site). In my opinion, website could be limited to presentation-only issues.

Ahhh OK thanks that makes more sense to me! I'm happy with that plan. @rufuspollock WDYT?

@roll 👍 👍 and @lwinfree
Let's do it. This can be a gradual thing where we first just add new issues here by default and then later actually do the issue merge as needed (I did a bulk move of issues recently and have tools for that if we need them).

@lwinfree
@rufuspollock
I've been thinking and even I'd like to suggest something more radical.
Consider, we have a standard layout for the new site like https://vuepress.vuejs.org/. There one and only one Github link on the top.
I suggest:

we merge all project-related trackers
we rename it to be frictionlessdata/frictionlessdata.io and put there the new site (optional but it feels more natural for Github to name the main entry point after your project name)
we link this new united issue tracker from the new website header

@roll

👍 for one entry point place for new users to post issues and linking that from the website
Not sure re merging all project related trackers - I'd want to think about that. Personally i think you may want to keep a few of these separate as these are code related and useful for the devs to have
i would keep website repo and this issues repo separate

FIXED. We are converging on this tracker as the tracker. See also https://github.com/frictionlessdata/project#where-to-open-issues


Forc.toml metadata support

Description
Adds support for metadata as [project.metadata] or [workspace.metadata] in Forc.toml of value toml::Value

Addresses: https://github.com/FuelLabs/rfcs/blob/22bf3936a37b60bb496232c1b52bf59e204a0697/text/rfcs/0006-metadata-in-forc-manifest.md#reference-level-explanation
Resolves: https://github.com/FuelLabs/sway/issues/2180

Linked examples of usage

https://github.com/FuelLabs/example-forc-plugins/pull/1

Nice one. It would be nice to add some documentation about this feature so developers of plugins are aware that this is now possible. I imagine you could put something together using the motivations already written in the RFC and #2180.
Adding it to the manifest reference probably makes the most sense https://docs.fuel.network/docs/forc/manifest_reference/


Ability to turn off the Is this page helpful? question

Reading technical documentation requires focus.
When the "Is this page helpful?" Dialog box pops up my focus is interrupted and I feel frustrated.

I can usually provide feedback in the comments section of the page so why does Microsoft respect my focus so little that I can't turn this off?

@ShevaDas Please take a look at this suggestion.

Hi @kgreed—thanks for the feedback. I agree that the pop-up isn't a great user experience. The reason there's no option to disable it is that it's what powers the internal per-page ratings that let our authors know what people think of their content at a high level. That's a metric we use pretty heavily, so it's important to collect it in addition to the ability to leave comments via GitHub Issues at the bottom of the page.
The current design is definitely less than ideal and something we're actively working on re-designing. I don't have a timeline for this work yet, but I'll update the issue when I do.

Hi ShevaDas is there a way I can raise this issue in User Voice? It would be interesting to see whether other people find it as frustrating as I do.
There is an Accessibility dimension to my request as currently the feature discriminates against people who are "attentionally challenged"
Not sure if that helps :-)

@kgreed we are no longer using User Voice - this repository is the primary feedback channel for all site issues.

@ShevaDas

The reason there's no option to disable it is that it's what powers the internal per-page ratings
that let our authors know what people think of their content at a high level.

Just show it as static buttons at the top/bottom sides of pages. Popups looks really ugly.


[TW#28013] Sending HCI_Inquiry_Cancel while doing Inquiry sometimes causes crash

Environment

Development Kit:      [none]
Core (if using chip or module): [ESP32]
IDF version f11ac037c4958fc68e67a50134a0ce9a1634008c
Development Env:		[Make]
Operating System:		[Windows]
Power Supply:         [USB]

Problem Description
If we have both Bluetooth and WiFi enabled and doing inquiry we see every ~10-20 inquiry this crash:
0x4008444f: r_assert_err at ??:?
0x4003b0ae: ?? ??:0
0x40085e46: r_ld_fm_frame_isr at ??:?
0x40088386: r_rwbt_isr at ??:?
0x40088ec3: r_rwbtdm_isr_wrapper at intc.c:?
0x40082581: _xt_lowint1 at C:/Users/jakob.krantz/Documents/nina-esp/component/cb_rtsl_esp32/esp-idf/components/freertos/xtensa_vectors.S:1105
0x4000bfed: ?? ??:0

And this log: ASSERT_ERR((EM_BT_RXDESC_OFFSET + ld_env.curr_rxdesc_index * REG_EM_BT_RXDESC_SIZE) == bt_et_currentrxdescptr_currentrxdescptr_getf()), in ld_inq.c at line 278
The problem does not appear if WiFi is not initialized.
Expected Behavior
No crash
Actual Behavior
Crash
Steps to repropduce
Have not tried to reproduce using anything other than our application.
But use our sdkconfig. Init WiFi and Bluetooth.
Start Inquiry with timeout something like 40s and then after 5s cancel the inquiry.
Repeat until it hopefully crashes.
Debug Logs
Other items if possible
sdkconfig_debug.txt
HCI log only includes one Inquiry but you can see all Inquiry parameters and so on.
Problem occurs when just repeating Inquiry start and Cancel.
hci_log.zip

@blueMoodBHD Thanks alot, I'll close this issue now, as it's also tracked on other medium.


Added JavaScript bindings for geometry creation functions and parameters

Exposed JavaScript functions and parameters for: VertexBuffer.setBufferAt(), IndexBuffer.setBufferAt(), RenderableManager.Builder, createTextureFromKtx(), SurfaceOrientation and Builder.

The other contributor just submitted a CLA

@googlebot I consent.

@googlebot I consent.

Actually can you add new /// doc lines for the offsets and add a geometryMinMax to RenderableManager?

Will do.  We were just working on the comments, and we will add the geometryMinMax.
Thanks.