Optimize node transform computation

it's still taking too much time per frame to update the global transforms of the scene nodes

current plan is to try removing the parent index hash map, and just store a GameNodeId (basically a weak reference) to the parent in the GameNode struct

current plan is to try removing the parent index hash map, and just store a GameNodeId (basically a weak reference) to the parent in the GameNode struct

Here is my tracy made on the master branch.
Vulkan backend, debug compilation:

Vulkan backend, release compilation:

The difference in average recompute_global_node_transforms time between debug and release is very large, but for now I would say it's not a problem as it improves from debug to release by 60x in speed.
What is striking instead is the time difference of the get_next_texture between debug (just over half a ms) and release (55 ms !!).
(Now i do some tests on the dx12 backend)

does the performance improve if you add this to Cargo.toml?
[profile.dev.package."*"]
opt-level = 3

I wonder if it's also related to the validation layers that get enabled if you're running in Vulkan in dev mode (I can't quite remember how/when wgpu enables those validations)

Unfortunately with the dx12 backend I panic (both debug and release).
It was an issue that I recall had happened before but it seems to me that it was resolved somehow.

[2023-01-01T21:27:01Z INFO  wgpu_core::device] Created buffer Valid((1186, 1, Dx12)) with BufferDescriptor { label: Some("GpuBuffer"), size: 5280, usage: INDEX, mapped_at_creation: true }
[2023-01-01T21:27:01Z INFO  wgpu_core::device] Created buffer Valid((1187, 1, Dx12)) with BufferDescriptor { label: Some("GpuBuffer"), size: 92352, usage: VERTEX, mapped_at_creation: true }
[2023-01-01T21:27:01Z INFO  wgpu_core::device] Created buffer Valid((1188, 1, Dx12)) with BufferDescriptor { label: Some("GpuBuffer"), size: 2640, usage: INDEX, mapped_at_creation: true }
[2023-01-01T21:27:01Z INFO  wgpu_core::device] Created buffer Valid((1189, 1, Dx12)) with BufferDescriptor { label: Some("GpuBuffer"), size: 5280, usage: INDEX, mapped_at_creation: true }
[2023-01-01T21:27:01Z ERROR wgpu_hal::dx12::descriptor] Unable to allocate descriptors: RangeAllocationError { fragmented_free_length: 3 }
[2023-01-01T21:27:01Z ERROR wgpu::backend::direct] Handling wgpu errors as fatal by default
thread 'main' panicked at 'wgpu error: Validation Error
Caused by:
In Device::create_bind_group
note: label = InstancedMeshComponent textures_bind_group
not enough memory left
', C:\Users\Gatto.cargo\registry\src\github.com-1ecc6299db9ec823\wgpu-0.14.2\src\backend\direct.rs:2403:5

right yeah that's cuz the scene takes up too much VRAM

Apparently vulkan uses less vram, since with the same gpu i can start the game.
Tracy-ing with opt-level = 3 gives me similar results as vulkan+release.

However, I am noticing that the node update function increases the average time over time.
here after a while, in the same run, it exceeds 1 ms:

Instead in release the average time of the recompute_global_node_transforms function decreases over time..
It becomes complicated to test two different modes, I would say to focus on the release for now.

yeah, I'm only worried about optimising release. does the number of objects in the world stay the same during that time?

Is it the nodes I need to look at? shows me 22.
However I think that bizarre behavior of the mean time that decreases is given by some too high or too low spike that dirty the mean (assuming that the M of MTPC is mean and not median). All in all, the vice versa could also happen, it will be necessary to analyze what happens over the long term.

game_state.scene.node_count() should do the trick.
I think tracy has a view where you can see the distribution of the timings for a function which might help identify if the mean is being dirtied by a spike. I'll see if I can get a screenshot of what I'm referring to

Here if you click it you can see the distribution (yellow graph)


Getting error cannot find module 'class-validator'

Hi,
I am getting a transpiling error from running "tsc" into my project:
node_modules/fireorm/lib/src/AbstractFirestoreRepository.d.ts:2:33 - error TS2307: Cannot find module 'class-validator'.

2 import { ValidationError } from 'class-validator';

I added "fireorm": "^0.13.1" as Dependency and "reflect-metadata": "^0.1.13" as PeerDependency.
Any tips on what this could be related?

Hey! Apparently there is a regression bug after the latest release. For now you can add class-validator as a devDependency and it should run just fine, I'll try to fix it ASAP


Add free descriptor sets API

Fixes #2045
Very untested.  Do not merge until I've had time to test this on all backends.
PR checklist:

[ ] make succeeds (on *nix)
[ ] make reftests succeeds
[ ] tested examples with the following backends:

[x] Windows Vulkan
[x] Windows OpenGL
[x] DirectX 12
[ ] Metal
[ ] OSX OpenGL
[ ] Linux Vulkan
[ ] Linux OpenGL

Doesn't compile on metal.  Guess that's what happens when you try to write code for OSX on Windows haha, I'll fix it when I get to an OSX device.

@kvark how is this?

Squashed

@kvark ready for re-review

Main concern is why not use the existing free list implementation in the dx12 backend?

@msiglreith can you point me to it?

Sure: https://github.com/gfx-rs/gfx/blob/master/src/backend/dx12/src/free_list.rs

Ah... that seems obvious in retrospect :P I'll have a look

@msiglreith Well the free list implementation shown isn't a proper free list because it uses a separate LinkedList structure, rather than storing the list in the buffer being allocated, so we lost that benefit.  Meaning the only major distinction between that implementation and mine is that I get better cache usage out of a Vec, and I generally have to do fewer memory allocations.
Small differences, but differences nonetheless.  Honestly I'm wondering if I ought to replace the uses of this free_list with uses of the RangeAllocator instead.

Thinking a bit some more, I got the following concerns:

Correctness: according to the spec, allocation may fail due to exceeding either the maximum set count or the sum of descriptor counts for a type. Fragmentation is not a valid reason for a failed allocation.
Conflict with existing freelist implementation in d3d12 backend. We need to carefully evaluate which one works best.
Sharing: technically speaking, Metal can get away (and probably should) without this allocator. Only the argument buffer path currently uses it, and we can rewrite it to have a buffer per descriptor set as opposed to - per descriptor pool, efficiently treating each descriptor set separately (and never failing an allocation).

In response to

VK_ERROR_FRAGMENTED_POOL is a code that can be returned by that function.  It's not really possible to prevent this type of error unless we want to start using smart pointers as handles and modifying the internal values during allocation.  Avoiding this kind of error means we need the ability to shift around existing allocations.

Sure, I'll benchmark these

Sounds reasonable, although it does sort of defy the notion of a "Pool" being memory you don't have to request from the OS.

Benching range_alloc...
Time to allocate 500,000,000 items: Duration { secs: 3, nanos: 635872168 }
Time to de-allocate 500,000,000 items: Duration { secs: 2, nanos: 713068272 }
Benching free_list...
Time to allocate 500,000,000 items: Duration { secs: 32, nanos: 371233908 }
Time to de-allocate 500,000,000 items: Duration { secs: 29, nanos: 60538157 }

Meta

rustc 1.26.1 (827013a31 2018-05-25)
Windows 10
Intel(R) Core(TM) i5-6500 CPU @ 3.20 GHz (4 CPUs)
Run in release mode

Bench program:
use std::ops::Range;
use std::time::Instant;

mod free_list;
mod range_alloc;

use free_list::Allocator as FreeList;
use range_alloc::RangeAllocator;

trait Allocator {
    fn alloc(&mut self, size: u64) -> Option<Range<u64>>;

    fn dealloc(&mut self, range: Range<u64>);
}

impl Allocator for FreeList {
    fn alloc(&mut self, size: u64) -> Option<Range<u64>> {
        self.allocate(size)
    }

    fn dealloc(&mut self, range: Range<u64>) {
        self.deallocate(range);
    }
}

impl Allocator for RangeAllocator<u64> {
    fn alloc(&mut self, size: u64) -> Option<Range<u64>> {
        self.allocate_range(size)
    }

    fn dealloc(&mut self, range: Range<u64>) {
        self.free_range(range);
    }
}

fn main() {
    let mut free_list = FreeList::new(1_000_000_000);
    let mut range_alloc = RangeAllocator::new(0..1_000_000_000);
    let allocs: &mut[(&mut Allocator, &str)] = &mut [(&mut range_alloc, "range_alloc"), (&mut free_list, "free_list")];
    for (alloc, name) in allocs {
        println!("Benching {}...", name);
        let start = Instant::now();
        for _ in 0..500_000_000 {
            assert!(alloc.alloc(2).is_some());
        }
        let duration = start.elapsed();
        println!("Time to allocate 500,000,000 items: {:?}", duration);
        let start = Instant::now();
        for i in 0..500_000_000 {
            alloc.dealloc(i*2..(i*2 + 2));
        }
        let duration = start.elapsed();
        println!("Time to de-allocate 500,000,000 items: {:?}", duration);
    }
}

@kvark Any criticisms of this benchmark?

@msiglreith @kvark ready for re-review

@Xaeroxe yeah, let's generate a random sequence of allocations and frees, and run both choices through it.

@kvark new bench
Benching range_alloc...
Time to allocate 200002938 items: Duration { secs: 1, nanos: 591619302 }
Time to de-allocate 200002938 items: Duration { secs: 1, nanos: 167790382 }
Benching free_list...
Time to allocate 200002938 items: Duration { secs: 13, nanos: 522406580 }
Time to de-allocate 200002938 items: Duration { secs: 12, nanos: 148544505 }

program:
extern crate rand;

use rand::prelude::*;

use std::ops::Range;
use std::time::Instant;

mod free_list;
mod range_alloc;

use free_list::Allocator as FreeList;
use range_alloc::RangeAllocator;

trait Allocator {
    fn alloc(&mut self, size: u64) -> Option<Range<u64>>;

    fn dealloc(&mut self, range: Range<u64>);
}

impl Allocator for FreeList {
    fn alloc(&mut self, size: u64) -> Option<Range<u64>> {
        self.allocate(size)
    }

    fn dealloc(&mut self, range: Range<u64>) {
        self.deallocate(range);
    }
}

impl Allocator for RangeAllocator<u64> {
    fn alloc(&mut self, size: u64) -> Option<Range<u64>> {
        self.allocate_range(size)
    }

    fn dealloc(&mut self, range: Range<u64>) {
        self.free_range(range);
    }
}

fn main() {
    let range_max = 10_000_000_000;
    let mut free_list = FreeList::new(range_max);
    let mut range_alloc = RangeAllocator::new(0..range_max);
    let allocs: &mut[(&mut Allocator, &str)] = &mut [(&mut range_alloc, "range_alloc"), (&mut free_list, "free_list")];
    let mut sizes = Vec::new();
    let mut sum = 0;
    let mut rng = rand::thread_rng();
    while sum < range_max {
        let rand_num = rng.gen_range(1, 100).min(range_max - sum);
        sum += rand_num;
        sizes.push(rand_num);
    }
    for (alloc, name) in allocs {
        println!("Benching {}...", name);
        let start = Instant::now();
        for i in 0..sizes.len() {
            assert!(alloc.alloc(sizes[i]).is_some());
        }
        let duration = start.elapsed();
        println!("Time to allocate {} items: {:?}", sizes.len(), duration);
        let start = Instant::now();
        let mut sum = 0;
        for i in 0..sizes.len() {
            alloc.dealloc(sum..(sum+sizes[i]));
            sum += sizes[i];
        }
        let duration = start.elapsed();
        println!("Time to de-allocate {} items: {:?}", sizes.len(), duration);

    }
}

Thank you! Looks pretty convincing.
Would you want to squash some commits before proceeding?
Also, let's see if @msiglreith got any concerns left.

Well some testing on Linux and OSX would be nice.  I'll squash it.


Make static variables avialable via observable mechanism

I've used this code in BlockSystems to allow acces to sol[:removed_variables]. We can probably do this in NetworkDynamics in a simliar way for the static edge variables.

I have tried to implement the observed mechanism in the NetworkDynamics module. However, the symbols for the edges in the collect_ve_info function would still need to be modified so that the edge symbols differ which would allow explicit access to the respective edge variables in the solution object. A possible syntax for a two dimensional edge connecting vertex 1 and 2 could be:
[e_1_2_1, e_1_2_2, e_1_2_1_inv, e_1_2_2_inv]
where the first two integers indicate the source and destination vertex. The third integer indicates the dimension of the edge variable and the term inv specifies the internal inverse edge variable.

https://github.com/PIK-ICoNe/NetworkDynamics.jl/tree/acccessing_edge_variables

implemented in #140


Some chests cannot be opened

Sometimes there are chests in structures that cannot be opened. Most often I meet them in the ancient city (the screenshot shows one of these chests, which never opens)

if you try to break unopenable chest - nothing will drop

How do I even know - at -0 and below altitude, there is no drop from blocks

I had a drop from blocks below 0Y 🤔 . However, some chest can be opened but some don't, that's the problem

I cant reproduce both errors you reported here.
Speaking of the chest thing, I looted like 20 ancient cities and was able to open and loot every chest - the problem should be that the tile is not set, but this problem was resolved a long time ago (at least I was sure until now)

У мене було падіння з блоків нижче 0Y 🤔 .

Strange, I don’t have any drops from blocks below Y-0


Deincubate ProjectDependency and EclipseExternalDependency methods

Summary
org.gradle.tooling.model.ComponentSelector
org.gradle.tooling.model.eclipse.EclipseExternalDependency.getAttemptedSelector()
org.gradle.tooling.model.eclipse.EclipseExternalDependency.isResolved()
Checklist

[x] Validate whether we should de-incubate the API in the 7.0 release.

If the removal is not possible, create a follow-up issue and link it in the overview spreadsheet

[x] Update release notes (add API to promoted features)
[ ] Check User Manual (it might mention that the API is still incubating)

Think about updating snippets and samples to use this API

[ ] Deprecate existing API that is replaced by the new one

If it's not immediately possible, create a follow-up issue with a milestone (e.g. 7.1 RC1 or 8.0 RC1)

[ ] Check Incubation Report on TeamCity (example)
[ ] Mark the story as done in the overview spreadsheet.

Fixed in https://github.com/gradle/gradle/pull/15841

Fixed in https://github.com/gradle/gradle/pull/15841


ECS Documentation

First of all, I might have put the cart before the horse with this one - sorry for that!
I am interested in the ECS powering Stride, but I was unable to find some good documentation about how it works.
Most helpful was actually a forum post from 2018, but that also only discussed part of it.
So after hopping on discord and having a nice chat with some folks, I ended up with the impression "documentation about it is not great at the moment, so anything I find until I get it to work, I can just write down and it will be an improvement".
So I did that, wrote two markdown documents about it.
Then I read the contribution guidelines and the whole process.
So, again, sorry for not following the process there - but hey! Maybe you still want it, because we don't have docs about it yet. I'm gonna create a PR and link it here immediately after finishing writing this.
Notes
A) What added to my impression is a currently existing page about the subject has some outdated code - EntityManager.Entities does not exist in <IP_ADDRESS>8.
B) I added two pages. While one is just a technical description of what there is , the other one is a write-up about ECS in general, explaining the concept aimed at an audience that doesn't know i yet.
C) I also added a quick diagram to make the decision easier for inexperienced users. I just used diagrams.net, didn't know if there's another standard for these or something.

Here's the PR: https://github.com/stride3d/stride-docs/pull/135

This is an amazing addition! Entity processors were such a struggle without docs I was trying out Svelto but Ill give this another shot with this info.

Aww thank you, didn't think this would be helpful so soon! :D

Here is the result of your new docs :)
https://discord.com/channels/500285081265635328/709051146160963655/1154137116775813231
This is something that I will explore further from now on.

Can I close this?


Fitting

Which fitting engines should be supported. At the moment the contenders are:

lmfit
bumps

Currently lmfit and bumps have been implemented in the develop branch.
The next step will be to refactor the fitting selection interface. At the moment you have to:
f = Fitter.fitting_engine(line, interface.fit_func)
f_res = f.fit(x, y)
# Now lets change fitting engine
Fitter.set_fitting_engine('bumps')
ff = Fitter.fitting_engine(line, interface.fit_func)
f_res = f.fit(x, y)

This should behave like the interface i.e.:
f = Fitter()
f.initialize(line, interface.fit_func)
f_res = f.fit(x, y)
f.set_fitting_engine('bumps')
f_res = f.fit(x, y)


Add export functionality to bundle.

Documentation has been provided.
A sample export specification looks like this:
- action: "export"
  source: "{input}/taxonomy"
  target: "{output}/pleoTaxo.nq.gz"
  includes:
    - "*.ttl"
  compress: true
  definedBy: "all"
  context: "https://taxonomies.platts.com/pleo/pleoTaxo"

@NeilGraham Anything else, or are OK with it otherwise?


Module name is incorrect when the name as acronym word

My module has acronym word like PymServerClient.PagerOfGPDailySummary. The library at revision 377c923c5597e76445124cb6af749cdf3456b4b8 working correctly. But when bumping to the lastest main (11ed134aa3b8f6ebc469496ba79fe6c2d3585dd9 at this point), the module name renders to PymServerClient.PagerOfGpdailySummary.
I assume it is probably because of the word GP that produces incorrect results.

Hello there! I did make some changes to the way module names are handled in https://github.com/aj-foster/open-api-generator/commit/8052f69108694baac656185acc0003a32f32f8b2 (the commit after the one that worked for you), however I haven't figured out what went wrong yet. Could you share an example OpenAPI spec that generated the issue?
Thanks!

Same here, before 1.0.0-rc* modules names was reflecting openapi spec, now they're lowercased+camelized.
A minimal schema that exposes this issue can be:
components:
  schemas:
    TOTPCreate:
      additionalProperties: false
      description: |
        Object for a TOTP token config, with confirmation OTP.
      properties:
        otp:
          description: The OTP as obtained from the authenticator app/device
          type: string
        uri:
          description: The OTP Auth URI obtained from `TOTPRequest`
          type: string
        verification_code:
          description: The opaque signature obtained from `TOTPRequest`
          type: string
      required:
        - uri
        - otp
        - verification_code
      title: TOTPCreate
      type: object
info:
  title: Acme API
  version: '1'
openapi: 3.0.0
paths:
  /api/v1/me/totp:
    post:
      callbacks: {}
      description: |
        Saves a config obtained with `TOTPRequest`, along with a device generated
        OTP to confirm it's correctness.
      operationId: Controllers.ApiV1.TOTP.totp_save
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TOTPCreate'
        description: The TOTP config to save
        required: false
      responses:
        '201':
          description: TOTP request config saved
        '429':
          description: Too many requests, retry later
      summary: Saves a TOTP config
      tags: []
servers:
  - url: '{endpoint_url}'
    variables:
      endpoint_url:
        default: https://localhost:5443/

TOTPCreate is rendered as Totpcreate after library update.

I've tried playing a bit with the fun normalize_identifier/1 to allow sequences of uppercases like the following:
  def normalize_identifier(input) do
    input
    |> String.split(~r/(([^A-Za-z0-9]+)?([A-Z0-9]+(?![a-z0-9])))|(([^A-Za-z0-9]+)?([A-Z]+)?([a-z0-9]+)?)/, include_captures: true, trim: true)
    |> Enum.map_join("_", fn segment ->
      segment
      |> String.replace(~r/^[^A-Za-z]+/, "")
      |> String.replace(~r/[^A-Za-z0-9]+$/, "")
      |> maybe_downcase_segment()
    end)
  end

  defp maybe_downcase_segment(segment) do
    case String.upcase(segment)  do
      ^segment -> segment
      _ -> String.downcase(segment)
    end
  end

Which translates "PymServerClient.PagerOfGPDailySummary" in:
iex(1)> normalize_identifier("PymServerClient.PagerOfGPDailySummary")|>Macro.camelize()
"PymServerClientPagerOf_GPDailySummary"

and "TOTPRequest" in:
iex(1)> normalize_identifier("TOTPRequest")|>Macro.camelize()
"TOTPRequest"

But there're corner cases where uppers are at the end of the name:
iex(1)> normalize_identifier("RequestTOTP")|>Macro.camelize()
"Request_TOTP"

iex(2)> normalize_identifier("RequestTOTPCreate")|>Macro.camelize
"Request_TOTPCreate"

It's a bit funny, given the interaction with Macro.camelize()
So I don't have a real solution, except maybe to avoid the same normalization for all tokens? and use different approaches for different parts of the schema?

Thank you for the nice test case, and thank you for exploring some variations in the normalization. PR #43 has a possible solution, if you'd like to try it out. Let me know how it works for you.
A lot of information was being lost thanks to the String.downcase call in the normalization. Now, instead of always normalizing to lowercase snake_case, callers now have their choice of casing. The default is snake case for compatibility.

I forgot to reply to you. I'm sorry. 🙇
And thank you for a quick fix. Will try it in 1 or 2 days.

I had the same problem  after the update, and i can confirm that the linked PR creates names compatible with the old version in my case

The fix from #43 is now available in version 0.1.0. ❤


New ConnectedNeuron.Builder and Neuron::connect method introduced

Changes are done in order to simplify the API.
All tests are green (manually executed).

@StrangePan thank you for your review! I have addressed some of the comments in my latest commit!

Actually, I was right in the middle of writing a response to your comments when you published these changes, and it seems you've preemptively addressed what I was going to write :)
In summary, using an interface-based API gives users maximum flexibility, and providing extendable concrete classes are a bonus. The antithesis of this would be an API composed of final classes that cannot be extended, but that enable customization by providing explicit hooks using listeners and delegates.
I think your approach of making Neuron an interface while providing a default implementation for the connect method is a reasonable compromise. And since backwards connections seem fairly integral to the design of a Neuron, one could imagine implementations that would want to customize that behavior.

@StrangePan thank you! Now I definitely think that NOT DOING abstract class is the right move. Thank you very much for the feedback. Gong to merge the PR now.


Would you like the cargo-rpm crate?

The cargo-rpm crate is unmaintained: https://github.com/iqlusioninc/cargo-rpm/issues/96
If you'd like, we could give you the cargo-rpm crate name and you could potentially publish future releases of cargo-generate-rpm under that.

@tony-iqlusion , Thank you for the proposal. But my answer is no.
cargo-generate-rpm has different approach than cargo-rpm --- do without rpmbuild. I thought it was better not to use the cargo-rpm crate name for my app to avoid user misunderstanding and compatibility issues.


Update scala 2.13.0-M5 to 2.13.0-RC1

Build fails on #157

@analytically can you have a look? I'd be happy to make some changes, but I'm not sure what would be the best ones. :)

Seems like a regression in RC1?
both method error in trait Logger of type (x$1: String, x$2: Object*)Unit
[error] and  method error in trait Logger of type (x$1: String, x$2: Any)Unit

I think https://github.com/scala/scala/pull/7631 might be relevant here?

Do we get to a conclusion on how to proceed here? Is it a bug in Scala that will be fixed in RC2 or does scalalogging have to be updated?

I'd happily accept any PR that would fix scala-logging for 2.13.0-RC1, but IMO this is a regression.

if you (or anyone watching this ticket) thinks there is a bug in Scala, please open a ticket at https://github.com/scala/bug

https://github.com/scala/scala/pull/7680 seems also relevant

in order to get scala-logging green in the Scala community build, @adriaanm did a series of commits at https://github.com/scalacommunitybuild/scala-logging/commits/community-build-2.13
the relevant commit appears to be https://github.com/scalacommunitybuild/scala-logging/commit/650bed8a0bc99421d16e6c9059d3655aaee532e4
@Philippus does that give you what you need to update this PR for RC2...?

Adriaan's commit shows how to force the varargs version to be chosen. @dwijnand notes that ascribing : Any forces the other overload to be chosen:
scala 2.13.0-RC2> class Logger { def error(x: String, xs: AnyRef*) = 1; def error(x: String, x2: Any) = 2 }
defined class Logger

scala 2.13.0-RC2> (new Logger).error("a", "b")
                               ^
                  error: ambiguous reference to overloaded definition,
                  both method error in class Logger of type (x: String, x2: Any)Int
                  and  method error in class Logger of type (x: String, xs: AnyRef*)Int
                  match argument types (String,String)

scala 2.13.0-RC2> (new Logger).error("a", "b": Any)
res1: Int = 2

@Philippus if you run into any further trouble, scala/scala#7966 and scala/scala#8049 are also potentially relevant (thx @dwijnand)

In Java it works, and it uses the non-varargs (which is the same as type-ascribing with Any, and the opposite to what Scala 2.12 and Dotty do):
19:23:28 $ JAVA_HOME=$(/usr/libexec/java_home -v 11) jshell
|  Welcome to JShell -- Version 11.0.2
|  For an introduction type: /help intro

jshell> class Logger { int error(String x, String... xs) { return 1; }; int error(String x, Object x2) { return 2; } }
|  created class Logger

jshell> (new Logger()).error("a", "b")
$2 ==> 2

Actually, I think this was fixed in RC2 (see those PRs).  Trying to recreate in the shell using 2.13.0-RC2 it seems all fine:
Welcome to Scala 2.13.0-RC2 (OpenJDK GraalVM CE 19.0.0, Java 1.8.0_212).
Type in expressions for evaluation. Or try :help.

scala> final class Logger { def error(message: String, cause: Throwable) = "throwable"; def error(message: String, args: Any*) = "varargs" }
defined class Logger

scala> (new Logger).error("a", new Error)
res0: String = throwable

scala> (new Logger).error("a", "b")
res1: String = varargs

Quick other correction to another issue I “fixed” in that branch: the
string interpolation interception macro needs to look at the expandee
attachment (HT retronym) to see the original string written by the
programmer, since the s interpolator is now a macro. I fixed this pretty
crudely by providing a local version of stringcontext, just to get those
tests to pass...
On Thu, 23 May 2019 at 20:31, Dale Wijnand<EMAIL_ADDRESS>wrote:

Actually, I think this was fixed in RC2 (see those PRs). Trying to
recreate in the shell using 2.13.0-RC2 it seems all fine:
Welcome to Scala 2.13.0-RC2 (OpenJDK GraalVM CE 19.0.0, Java 1.8.0_212).Type in expressions for evaluation. Or try :help.
scala> final class Logger { def error(message: String, cause: Throwable) = "throwable"; def error(message: String, args: Any*) = "varargs" }
defined class Logger
scala> (new Logger).error("a", new Error)
res0: String = throwable
scala> (new Logger).error("a", "b")
res1: String = varargs
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/lightbend/scala-logging/pull/159?email_source=notifications&email_token=AAAWHS6376VLROY6QPLBYPLPW3PIZA5CNFSM4HEBD4TKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODWDDB4Y#issuecomment-495333619,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAWHS4LJN7KWSF7NRVNECDPW3PIZANCNFSM4HEBD4TA
.

Let's continue the discussion at #162, where I hope we'll have a green upgrade to RC2 (tests pass for me locally).


issue tracking for 2.1 submission code freeze

Performance parity:

[ ] Samsung, need to resolve https://github.com/mlcommons/mobile_app_open/issues/379, to be confirmed this week
[x] Qualcomm, looks good, @mohitmundhragithub
[x] MediaTeK, if shards_num could be set 4 as shown in https://github.com/mlcommons/mobile_app_open/issues/402 good
[x] Intel, not going to submit flutter this time. Let's skip checking for Intel for now.
[x] Google, good, @kcwu, @ptt2panda

features remained to be done:

[x] https://github.com/mlcommons/mobile_app_open/issues/390
[x] https://github.com/mlcommons/mobile_app_open/issues/389
[x] https://github.com/mlcommons/mobile_app_open/issues/320
[x] https://github.com/mlcommons/mobile_app_open/issues/373
[x] https://github.com/mlcommons/mobile_app_open/issues/348
[x] https://github.com/mlcommons/mobile_app_open/issues/324
[x] https://github.com/mlcommons/mobile_app_open/issues/241, what can we (non-qualcomm folks) help on this?
[x] https://github.com/mlcommons/mobile_app_open/issues/307

Let's wait for the closing of #379, then we can branch out a v2.1 for 2.1 submission.

Supposedly, we can create a branch from commits after dec8b434fb0 or efe21c2.
Let's check https://github.com/mlcommons/mobile_app_open/commits/master

@mohitmundhragithub to merge #425, then @anhappdev or @d-uzlov can help create a 2.1 submission branch.

@mkankana and @willc2010 v2.1 submission branch created


tsc failing for data-browser, cannot find node modules

For some reason, since last week, pnpm build fails on @Polleps machine. It works fine on mine and the CI.
We tried:

pnpm purge
remove node_modules
pnpm install
Check versions for pnpm and node

Ultimately, we removed the tsc command from the build script, since vite build can compile typescript files, too. However, this does not do typechecking, so we added the typecheck step in the CI.

Also fails in CI

Also fails in CI

Turned out to be a different issue


.bower.json contains illegal json (sometimes)

installing package with bower i get 2 bower.json files: bower.json and .bower.json.
the .bower.json file contains:
{
  "name": "jquery.serialscroll",
  "version": "1.3.1",
  "description": "Animated scrolling of series with jQuery",
  "homepage": "https://github.com/flesler/jquery.serialScroll",
  "main": [
    "./jquery.serialScroll.js",
    "./jquery.serialScroll.min.js"
  ],
  "dependencies": {
    "jquery": ">=1.8",
    "jquery.scrollTo": ">=2.1.0"
  },
  "keywords": [
    "slideshow",
    "sequence",
    "animated",
    "animation",
    "scrolling",
    "scroll",
    "prev",
    "next"
  ],
  "author": {
    "name": "Ariel Flesler",
    "web": "http://flesler.blogspot.com/"
  },
  "_release": "1.3.1",
  "_resolution": {
    "type": "version",
    "tag": "1.3.1",
    "commit": "eb3c573bee7f0fa60c46c31822f03c2479eb6b6e"
  },
  "_source": "git://github.com/flesler/jquery.serialScroll.git",
  "_target": "*",
  "_originalSource": "jquery.serialScroll"
}ll"
}

done with command install bower
and in json file:
"ignore": [
 "**/.*",
    "node_modules",
    "bower_components"
  ],
  "dependencies": {
    "bootstrap": ">=3.3.5",
    "bootstrap-touchspin": "~3.0.3",
    "font-awesome": "~4.4.0",
    "javascript-equal-height-responsive-rows": "*",
    "jquery": ">=2.1.4",
    "jquery.scrollTo": "~2.1.2",
    "jquery.serialscroll": "jquery.serialScroll#~1.3.1",
    "jquery-mousewheel": "~3.1.13",
    "jquery-parallax": "~1.1.3",
    "jquery-ui": "~1.11.4",
    "malihu-custom-scrollbar-plugin": "~3.1.3",
    "minimalect": "*",
    "moment": "~2.10.6",
    "imagesloaded": "~3.2.0"
  },
  "resolutions": {
    "jquery.scrollTo": "~2.1.2",
    "jquery": ">=1.9.0"
  }

I can reproduce it by runing bower install twice after eachother
cmd>bower install
bower                       EMALFORMED Failed to read C:\Git\nextgen-cartwise\Frontend\Source\Frontend\skin\bower_components\jquery.serialscroll\.bower.json

Additional error details:
Unexpected token l

@joelharkes Just out of curiosity and for learning, in the json file, does
jquery.serialscroll": "jquery.serialScroll#~1.3.1"
have to include the name of the package, or can it just be ~1.3.1 ?

@joelharkes - just wanted to follow up about this issue and if you have been able to resolve?

Yes i'm pretty use its not an issue of this plugin, i haven't had time to test just using ~1.3.1. il do that as soon as possible.

We're seeing this issue as well. The error message in the console after a prune and install:

konrad-mbp:X konrad$ bower install
...
bower install               jQuery#2.1.4
bower error                 Unexpected string

Stack trace:
SyntaxError: Unexpected string
    at Object.parse (native)
    at /usr/local/lib/node_modules/bower/lib/core/Manager.js:208:37
    at _fulfilled (/usr/local/lib/node_modules/bower/node_modules/q/q.js:834:54)
    at self.promiseDispatch.done (/usr/local/lib/node_modules/bower/node_modules/q/q.js:863:30)
    at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/bower/node_modules/q/q.js:796:13)
    at /usr/local/lib/node_modules/bower/node_modules/q/q.js:604:44
    at runSingle (/usr/local/lib/node_modules/bower/node_modules/q/q.js:137:13)
    at flush (/usr/local/lib/node_modules/bower/node_modules/q/q.js:125:13)
    at process._tickCallback (node.js:355:11)

Console trace:
Error
    at StandardRenderer.error (/usr/local/lib/node_modules/bower/lib/renderers/StandardRenderer.js:83:37)
    at Logger.<anonymous> (/usr/local/lib/node_modules/bower/bin/bower:116:30)
    at Logger.emit (events.js:107:17)
    at Logger.emit (/usr/local/lib/node_modules/bower/node_modules/bower-logger/lib/Logger.js:29:39)
    at /usr/local/lib/node_modules/bower/lib/commands/index.js:48:20
    at _rejected (/usr/local/lib/node_modules/bower/node_modules/q/q.js:844:24)
    at /usr/local/lib/node_modules/bower/node_modules/q/q.js:870:30
    at Promise.when (/usr/local/lib/node_modules/bower/node_modules/q/q.js:1122:31)
    at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/bower/node_modules/q/q.js:788:41)
    at /usr/local/lib/node_modules/bower/node_modules/q/q.js:604:44
System info:
Bower version: 1.7.2
Node version: 0.12.7
OS: Darwin 15.2.0 x64

konrad-mbp:X konrad$ bower install

bower EMALFORMED    Failed to read /Users/konrad/Dev/X/client/bower_components/jquery/.bower.json

Additional error details:
Unexpected string

The first install or update renders the .bower.json file, this is the result in this case:
{
  "name": "jquery",
  "version": "2.1.4",
  "main": "dist/jquery.js",
  "license": "MIT",
  "ignore": [
    "**/.*",
    "build",
    "dist/cdn",
    "speed",
    "test",
    "*.md",
    "AUTHORS.txt",
    "Gruntfile.js",
    "package.json"
  ],
  "devDependencies": {
    "sizzle": "2.1.1-jquery.2.1.2",
    "requirejs": "2.1.10",
    "qunit": "1.14.0",
    "sinon": "1.8.1"
  },
  "keywords": [
    "jquery",
    "javascript",
    "library"
  ],
  "homepage": "https://github.com/jquery/jquery",
  "_release": "2.1.4",
  "_resolution": {
    "type": "version",
    "tag": "2.1.4",
    "commit": "7751e69b615c6eca6f783a81e292a55725af6b85"
  },
  "_source": "git://github.com/jquery/jquery.git",
  "_target": "~2.1.4"
}">=1.6.3"
}

That line before the last is the culprit. Not sure where that 1.6.3 is coming from (perhaps .cache), jquery 2.1.4 is resolved in the install process (our project's json sets ~2.1.4 up as a dependency). To be clear, I don't think the problem has anything to do with jQuery at all.
I made sure bower.json does not contain anything other than ascii. It's utf-8 encoded and has LF linebreaks, just in case..
Fixing the .bower.json file and running bower install again gives me this:
bower install               jquery#2.1.4
bower skipped               jquery was not installed because there is already a non-bower directory with that name in the components directory (client/bower_components/jquery). You can force installation with --force.
bower install               jQuery#2.1.4

jquery#2.1.4 ../../.cache/bower/packages/8ccd8ff8cca80bc6237ebfb752ea634b/2.1.4

jQuery#2.1.4 client/bower_components/jQuery

Not sure if any of this helps, unfortunately we can't reliably reproduce the issue with anyone else in my team.
Also, really not sure if this doesn't just complicate things, but one other developer saw this only once and realized that the repo of jquery changed to the old repo instead of the new -dist repo while this error was present.

Can you share the bower.json from which you get that result — the one from the package that you run bower install on? I'm not sure i understand which steps you take to get this, and which bower.json is flawed in the end. Can you list all the steps?

Sure, here you go:
{
  "name": "px",
  "version": "0.0.1",
  "dependencies": {
    "angular": ">=1.4.*",
    "angular-animate": "~1.4.3",
    "angular-bootstrap": "~0.14.*",
    "angular-busy": "~4.1.3",
    "angular-cookies": ">=1.4.*",
    "angular-formly-templates-ennosol": "git+https://github.com/ennosol/angular-formly-templates-ennosol.git#master",
    "angular-leaflet-directive": "~0.9.*",
    "angular-loading-bar": "~0.8.0",
    "angular-moment": "~1.0.0",
    "angular-resource": ">=1.4.*",
    "angular-sanitize": ">=1.4.*",
    "angular-scroll": "~0.7.1",
    "angular-translate": "~2.7.2",
    "angular-translate-loader-static-files": "~2.7.2",
    "angular-translate-storage-cookie": "~2.7.2",
    "angular-translate-storage-local": "~2.7.2",
    "angular-ui-router": "~0.2.15",
    "angular-ui-switch": "~0.1.0",
    "angular-sortable-view": "git+https://github.com/kamilkp/angular-sortable-view#~0.0.13",
    "bootstrap": "=3.3.5",
    "components-modernizr": "~2.8.3",
    "es5-shim": "~3.0.1",
    "fastclick": "~1.0.6",
    "font-awesome": ">=4.1.0",
    "jquery": "~2.1.4",
    "json3": "~3.3.1",
    "lodash": "~2.4.1",
    "moment": "~2.10.6",
    "ngstorage": "~0.3.7",
    "ngSweetAlert": "angular-sweetalert#~1.1.0",
    "themify-icons": "~0.1.0",
    "toastr": "~2.1.2",
    "leaflet.awesome-markers": "git+https://github.com/ennosol/Leaflet.awesome-markers.git#2.0/develop",
    "leaflet.polyline-snakeanim": "git+https://github.com/IvanSanchez/Leaflet.Polyline.SnakeAnim#~0.1.0",
    "leaflet.encoded": "git+https://github.com/jieter/Leaflet.encoded#~0.0.7",
    "jquery-ui": "jquery.ui#~1.11.4",
    "leaflet": "~1.0",
    "Leaflet.markercluster": "Leaflet/Leaflet.markercluster#1.0.0-beta.2.0",
    "Leaflet.fullscreen": "Leaflet/Leaflet.fullscreen#~0.0.4",
    "Leaflet.label": "Leaflet/Leaflet.label#leaflet-master",
    "angular-visibility-change": "~0.1.0",
    "Leaflet.EasyButton": "~1.1.2",
    "Leaflet.singleclick": "~0.4.0",
    "leaflet-icon-pulse": "mapshakers/leaflet-icon-pulse#~0.1.0",
    "angular-simple-logger": "~0.1.4",
    "sprintf": "~1.0.3",
    "Leaflet.hotline": "iosphere/Leaflet.hotline#~0.2.0",
    "zoomcharts": "git+https://github.com/ennosol/zoomcharts#1.11.4",
    "perfect-scrollbar": "~0.6.1",
    "angular-sockjs": "~0.1.0",
    "sockjs": "sockjs/sockjs-client#~1.0.3",
    "bootstrap-datepicker": "~1.5.0"
  },
  "devDependencies": {
    "angular-mocks": ">=1.4.*",
    "angular-scenario": ">=1.4.*",
    "bardjs": "~0.1.4"
  },
  "overrides": {
    "zoomcharts": {
      "main": [
        "lib/zoomcharts.js"
      ]
    },
    "select2": {
      "main": [
        "dist/css/select2.css",
        "dist/js/select2.full.js"
      ]
    },
    "bootstrap-touchspin": {
      "main": [
        "dist/jquery.bootstrap-touchspin.css",
        "dist/jquery.bootstrap-touchspin.js"
      ]
    },
    "bootstrap": {
      "main": [
        "dist/css/bootstrap.css",
        "dist/js/bootstrap.js"
      ]
    },
    "Leaflet.fullscreen": {
      "main": [
        "dist/leaflet.fullscreen.css",
        "dist/Leaflet.fullscreen.js"
      ]
    },
    "leaflet.awesome-markers": {
      "main": [
        "dist/leaflet.awesome-markers.css",
        "dist/leaflet.awesome-markers.js",
        "images/markers-soft.png"
      ]
    },
    "leaflet-icon-pulse": {
      "main": [
        "src/L.Icon.Pulse.js",
        "src/L.Icon.Pulse.css"
      ]
    },
    "font-awesome": {
      "main": [
        "css/font-awesome.min.css"
      ]
    },
    "jquery-ui": {
      "main": [
        "themes/base/core.css",
        "themes/base/slider.css",
        "themes/base/theme.css",
        "ui/core.js",
        "ui/widget.js",
        "ui/mouse.js",
        "ui/slider.js"
      ]
    },
    "angular-sortable-view": {
      "main": [
        "src/angular-sortable-view.js"
      ]
    },
    "sprintf": {
      "main": [
        "dist/sprintf.min.js",
        "dist/angular-sprintf.min.js"
      ]
    },
    "Leaflet.hotline": {
      "main": [
        "dist/leaflet.hotline.js"
      ]
    },
    "moment": {
      "main": [
        "moment.js",
        "locale/hu.js"
      ]
    },
    "angular-cron-jobs": {
      "main": [
        "dist/angular-cron-jobs.js",
        "dist/angular-cron-jobs.min.css"
      ]
    }
  },
  "resolutions": {
    "angular": ">= 1.4.5",
    "angular-translate": "~2.7.2",
    "angular-translate-storage-cookie": "~2.7.2",
    "angular-cookies": ">=1.4.*",
    "moment": "~2.10.6",
    "fastclick": "~1.0.6",
    "angular-formly": "~6.23.2",
    "select2": "~4.0.0",
    "angular-bootstrap": "~0.13.*",
    "angular-animate": "~1.4.3",
    "leaflet": "~1.0"
  }
}

These are the preinstall build steps in package.json:
npm install -g bower grunt-cli && npm run vendor-clean && bower update -f
vendor-clean is npm prune && bower prune
The flawed .bower.json appears in the bower_components/jquery directory (starts with a dot, I imagine this is a build cache).

Thanks! :trophy:
I can replicate this, even without
npm install -g bower grunt-cli && npm run vendor-clean && bower update -f and
npm prune && bower prune
I'm a little disturbed that on first sight jquery is the only package causing this (having this issue). I'll try to reduce this and figure out what causes it.. meanwhile.. if you install jquery directly you get this (.bower.json):
{
  "name": "jquery",
  "version": "2.1.4",
  "main": "dist/jquery.js",
  "license": "MIT",
  "ignore": [
    "**/.*",
    "build",
    "dist/cdn",
    "speed",
    "test",
    "*.md",
    "AUTHORS.txt",
    "Gruntfile.js",
    "package.json"
  ],
  "devDependencies": {
    "sizzle": "2.1.1-jquery.2.1.2",
    "requirejs": "2.1.10",
    "qunit": "1.14.0",
    "sinon": "1.8.1"
  },
  "keywords": [
    "jquery",
    "javascript",
    "library"
  ],
  "homepage": "https://github.com/jquery/jquery-dist",
  "_release": "2.1.4",
  "_resolution": {
    "type": "version",
    "tag": "2.1.4",
    "commit": "7751e69b615c6eca6f783a81e292a55725af6b85"
  },
  "_source": "git://github.com/jquery/jquery-dist.git",
  "_target": "~2.1.4",
  "_originalSource": "jquery",
  "_direct": true
}

When required as a depency as in your case, this is the result:
{
  "name": "jquery",
  "version": "2.1.4",
  "main": "dist/jquery.js",
  "license": "MIT",
  "ignore": [
    "**/.*",
    "build",
    "dist/cdn",
    "speed",
    "test",
    "*.md",
    "AUTHORS.txt",
    "Gruntfile.js",
    "package.json"
  ],
  "devDependencies": {
    "sizzle": "2.1.1-jquery.2.1.2",
    "requirejs": "2.1.10",
    "qunit": "1.14.0",
    "sinon": "1.8.1"
  },
  "keywords": [
    "jquery",
    "javascript",
    "library"
  ],
  "homepage": "https://github.com/jquery/jquery",
  "_release": "2.1.4",
  "_resolution": {
    "type": "version",
    "tag": "2.1.4",
    "commit": "7751e69b615c6eca6f783a81e292a55725af6b85"
  },
  "_source": "git://github.com/jquery/jquery.git",
  "_target": "~2.1.4"
}"~2.1.4"
}

Notice how the -dist is missing? If we find out why, we can probably fix this...

Here's a super reduced test-case:

bower cache clean
bower install the following:

{
  "name": "px",
  "version": "0.0.1",
  "dependencies": {
    "jquery": "~2.1.4",
    "angular-ts-select2": "~1.0.0"
  }
}

If you follow the installation of jquery and jQuery through the output below, you notice that the right jquery is installed first, after which bower resolves the dependency (jQuery) that is listed in angular-ts-select2. They are also installed in that order.
bower install
bower not-cached    git://github.com/jquery/jquery-dist.git#~2.1.4
bower resolve       git://github.com/jquery/jquery-dist.git#~2.1.4
bower not-cached    git://github.com/tscheinecker/angular-ts-select2.git#~1.0.0
bower resolve       git://github.com/tscheinecker/angular-ts-select2.git#~1.0.0
bower download      https://github.com/tscheinecker/angular-ts-select2/archive/v1.0.0-alpha.20150603.1.tar.gz
bower download      https://github.com/jquery/jquery-dist/archive/2.1.4.tar.gz
bower extract       angular-ts-select2#~1.0.0 archive.tar.gz
bower resolved      git://github.com/tscheinecker/angular-ts-select2.git#1.0.0-alpha.20150603.1
bower not-cached    git://github.com/ivaynberg/select2.git#~4.0.0
bower resolve       git://github.com/ivaynberg/select2.git#~4.0.0
bower not-cached    git://github.com/jquery/jquery.git#~2.1.4
bower resolve       git://github.com/jquery/jquery.git#~2.1.4
bower not-cached    git://github.com/angular/bower-angular.git#1.2 - 1.4
bower resolve       git://github.com/angular/bower-angular.git#1.2 - 1.4
bower extract       jquery#~2.1.4 archive.tar.gz
bower resolved      git://github.com/jquery/jquery-dist.git#2.1.4
bower download      https://github.com/ivaynberg/select2/archive/4.0.1.tar.gz
bower download      https://github.com/angular/bower-angular/archive/v1.4.8.tar.gz
bower download      https://github.com/jquery/jquery/archive/2.1.4.tar.gz
bower extract       angular#1.2 - 1.4 archive.tar.gz
bower resolved      git://github.com/angular/bower-angular.git#1.4.8
bower extract       select2#~4.0.0 archive.tar.gz
bower extract       jQuery#~2.1.4 archive.tar.gz
bower resolved      git://github.com/jquery/jquery.git#2.1.4
bower invalid-meta  select2 is missing "ignore" entry in bower.json
bower resolved      git://github.com/ivaynberg/select2.git#4.0.1
bower install       angular-ts-select2#1.0.0-alpha.20150603.1
bower install       jquery#2.1.4
bower install       angular#1.4.8
bower install       jQuery#2.1.4
bower install       select2#4.0.1
bower error         Unexpected string

Stack trace:
SyntaxError: Unexpected string
    at Object.parse (native)
    at /usr/local/lib/node_modules/bower/lib/core/Manager.js:208:37
    at _fulfilled (/usr/local/lib/node_modules/bower/node_modules/q/q.js:834:54)
    at self.promiseDispatch.done (/usr/local/lib/node_modules/bower/node_modules/q/q.js:863:30)
    at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/bower/node_modules/q/q.js:796:13)
    at /usr/local/lib/node_modules/bower/node_modules/q/q.js:604:44
    at runSingle (/usr/local/lib/node_modules/bower/node_modules/q/q.js:137:13)
    at flush (/usr/local/lib/node_modules/bower/node_modules/q/q.js:125:13)
    at nextTickCallbackWith0Args (node.js:433:9)
    at process._tickCallback (node.js:362:13)

Console trace:
Error
    at StandardRenderer.error (/usr/local/lib/node_modules/bower/lib/renderers/StandardRenderer.js:83:37)
    at Logger.<anonymous> (/usr/local/lib/node_modules/bower/bin/bower:116:30)
    at emitOne (events.js:78:13)
    at Logger.emit (events.js:170:7)
    at Logger.emit (/usr/local/lib/node_modules/bower/node_modules/bower-logger/lib/Logger.js:29:39)
    at /usr/local/lib/node_modules/bower/lib/commands/index.js:48:20
    at _rejected (/usr/local/lib/node_modules/bower/node_modules/q/q.js:844:24)
    at /usr/local/lib/node_modules/bower/node_modules/q/q.js:870:30
    at Promise.when (/usr/local/lib/node_modules/bower/node_modules/q/q.js:1122:31)
    at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/bower/node_modules/q/q.js:788:41)
System info:
Bower version: 1.7.2
Node version: 5.2.0
OS: Darwin 14.5.0 x64

We also see that jQuery does not resolve to the jquery-dist repo, which actually contains the bower.json but simply to jquery/jquery, where no bower.json is present. Even though I'd love to just point the jQuery package to the right source in the Bower registry, I think we should try to find out what exactly is causing the invalid .bower.json (below) first:
...
   "_source": "git://github.com/jquery/jquery.git",
   "_target": "~2.1.4"
 }"~2.1.4"
}

Great job tracking it this far! Thanks a lot for sharing the simpler repro case. I'll let you know when I find something new.

I'm pretty sure I have just figured out why the first one fails too! it's not jquery vs jQuery but jquery.serialscroll vs. jquery.serialScroll in this case. The package jquery-parallax is requiring it in camel-case, while the original bower.json that we install is using it all lower-case.
[...]
/bower_components/jquery-parallax/bower.json:
    6      "jquery": "~1.8.3",
    7      "jquery.scrollTo": "~1.4.6",
    8:     "jquery.serialScroll": "*"
    9    },
   10    "ignore": [
[...]

This is also mirrored during installation (see ">>"):
bower javascript-equal-height-responsive-rows#*          install javascript-equal-height-responsive-rows#9e01fe3612
bower minimalect#*                                       install minimalect#d9c4d9680f
bower jquery.scrollTo#>=2.1.0                            install jquery.scrollTo#2.1.2
bower bootstrap-touchspin#~3.0.3                         install bootstrap-touchspin#3.0.3
>> bower jquery.serialscroll#~1.3.1                         install jquery.serialscroll#1.3.1
bower jquery#>=1.8                                       install jquery#2.2.0
bower imagesloaded#~3.2.0                                install imagesloaded#3.2.0
bower jquery-mousewheel#~3.1.13                          install jquery-mousewheel#3.1.13
bower eventie#~1.0.4                                     install eventie#1.0.6
bower eventEmitter#>=4.2 <5.0                            install eventEmitter#4.3.0
bower malihu-custom-scrollbar-plugin#~3.1.3              install malihu-custom-scrollbar-plugin#3.1.3
bower moment#~2.10.6                                     install moment#2.10.6
bower jquery-parallax#~1.1.3                             install jquery-parallax#1.1.3
>> bower jquery.serialScroll#*                              install jquery.serialScroll#1.3.1
bower jquery-ui#~1.11.4                                  install jquery-ui#1.11.4
bower font-awesome#~4.4.0                                install font-awesome#4.4.0
bower bootstrap#>=3.3.5                                  install bootstrap#3.3.6
bower                                                      error Unexpected end of input

So that solves the question why it's jquery in one case and serialscroll in the other case, which have corrupted .bower.jsons. One quirky thing remains: bower lookup jquery.serialscroll says the package doesn't even exist all lower-case. As a side-note all camel-case packages are not conforming with the spec, but I realize that we needed it for this.
The only thing I can think of right now to finally fix this is pointing all camel-case packages to the url of the lower-case packages (ignorantly assuming they are the right ones) or in case no lower-case package exists, make the camel-case lower-case. Thereafter reinstate the rule that only lower-case packages can be registered. I have no idea if this might still break builds for people! :bomb:

I'm getting this same error. After bower install, the contents of bower_components/jquery/.bower.json are munged (error on bolded line):
{
"name": "jQuery",
"homepage": "https://github.com/jquery/jquery",
"version": "2.2.0",
"_release": "2.2.0",
"_resolution": {
"type": "version",
"tag": "2.2.0",
"commit": "33b548c8e3d43b2ebdfb129fd8086a3b0c905919"
},
"_source": "git://github.com/jquery/jquery.git",
"_target": ">=1.7.0"
}irejs": "2.1.10",
"qunit": "1.14.0",
"sinon": "1.8.1"
},
"keywords": [
"jquery",
"javascript",
"library"
],
"homepage": "https://github.com/jquery/jquery-dist",
"_release": "2.1.4",
"_resolution": {
"type": "version",
"tag": "2.1.4",
"commit": "7751e69b615c6eca6f783a81e292a55725af6b85"
},
"_source": "git://github.com/jquery/jquery-dist.git",
"_target": ">= 1.9.0"
}

same as @kmcmichael-twist here !  Or workaround/patch? Currently I simply cannot init my project...:(

If you manually copy the full module from a separate install into your web
env, your build process should skip trying to download the bad module via
bower. That's what we did.
On Tue, Mar 8, 2016 at 12:40 AM, Dan Caragea<EMAIL_ADDRESS>wrote:

Any news on this? Or workaround/patch? Currently I simply cannot init my
project...:(
—
Reply to this email directly or view it on GitHub
https://github.com/bower/bower/issues/2067#issuecomment-193664324.

--
|<ipp McMichael
Senior Front End Software Engineer
<EMAIL_ADDRESS>

I was running into this issue with a bower.json file and a dependency on Proj4Leaflet. Renaming to proj4leaflet solved it for me.

I had a similar problem with a old project I have. I was getting an error with JQuery and I solved it changing my bower.json from "jQuery": "2.2.4" to "jquery": "2.2.4".
bower jquery#>=1.6.3 <3         install jquery#2.2.4
bower jQuery#2.2.4              install jQuery#2.2.4
bower                             error Unexpected token p in JSON at position 316
EMALFORMED Failed to read \bower_components\jquery\.bower.json
Stack trace:
SyntaxError: Unexpected token p in JSON at position 316

By the looks of the responses, you should check if your dependencies have capitals and remove them!
Im closing my issue, no longer had this problem and bower popularity seems in decline, since webpack2 and browserify makes separation no longer needed.


Use cdk init in Getting Started

Currently the project setup process in the documentation requires basically manually setting up a project from scratch. This could greatly be simplified by having users use the cdk init command to quickly bootstrap a project.

This was discussed and we explicitly opted for this to walk people through the entire process (to show there is no magic).

Fair enough, I personally feel it somewhat kneecaps the Getting Started process by making it longer than it needs to be.

We do mention cdk init at the beginning of the getting started topic.

Closing for now


Fix typo privatKey in multiple files

Fixes https://github.com/external-secrets/external-secrets/issues/3556

This is a breaking change. Just flagging that. :)

@moolen Do we want to address it then? Too bad that a typo fix causes a breaking change.

It might still be okay depending on usage and how old that thing is. Also, we can release it with a minor version. That's what versioning is for after all, I think.

When was the typo released? Not too long ago, right?
I'd make the change and add a big red warning in the release notes.
We never intended to release a typo

Okay, so now need to understand why the typo fix is failing in CI / lint and CI /check-diff...

Sorry for being late for the discussion. Thanks for pointing out that this is a breaking change, that is important to consider! I just want to point out that external-secrets is still on major version 0, which, according to semver, may introduce breaking changes on any new version. Just saying. :angel:


Add CSS style file

At the moment, the extension adds style elements to the DOM. It would be cleaner to be able to add style to a custom CSS file.
Question: how can a CSS file packaged as part of this extension file be added to the notebook custom file path?

Rather than put the css file in the custom file path, at least one of the jupyter_contrib_nbextensions shows how to take it from the package path and add a link to the notebook DOM (example):
It also shows how to pull local files in, where the local files define a JSON object inside a single, top level define() function call...
define([
    "require",
    "jquery",
    "base/js/namespace",
    "./snippets_submenu_python",
    "./snippets_submenu_markdown",
], function (requirejs, $, Jupyter, python, markdown) {

....
        // Add our css to the notebook's head
        $('<link/>', {
            rel: 'stylesheet',
            type:'text/css',
            href: requirejs.toUrl('./snippets_menu.css')
        }).appendTo('head');

Alternatively:
    var load_css = function() {
        var link = document.createElement("link");
        link.type = "text/css";
        link.rel = "stylesheet";
        link.href = requirejs.toUrl("./main.css");
        document.getElementsByTagName("head")[0].appendChild(link);
    };

The requirejs.toUrl() generates URLs relative to the module.


UIAlertView causes NSInvalidArgumentException (incompatible signatures)

I'm experiencing an intermittent bug when showing UIAlertView's through blockskit's shortcut bk_showAlertViewWithTitle:....  The crash:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Attempted to create block invocation with incompatible signatures'

If you comment out the lines 177-179 in A2BlockInvocation.m, then everything works fine.  It seems to be more prevalent in older generation phones (iphone 4/4s, iphone 5...).  Could this have something to do with how isSignature:compatibleWithSignature: works on 32 bit devices vs 64 bit devices?
As for whether or not the block signatures are actually incorrect... I've triple checked every single one and they're correct.

Any news on this side? The issue still exist

Just ran into this.

To give some colour. We only see this issue when running on iPad.


Adding files for homework-1

Add the proper commit statements

Good work on comments, required tasks and formatting.


Move getPkgs method to an internal package and exported

[ ] The purpose of this PR is explained in this or a referenced issue.
[ ] The PR does not update generated files.

These files are managed by the codegen framework at Azure/autorest.go.

[ ] The PR targets the latest branch.
[ ] Tests are included and/or updated for code changes.
[ ] Updates to CHANGELOG.md are included.
[ ] Apache v2 license headers are included in each file.

Can one of the admins verify this patch?


Upstream lemmas from Lukso engagement

Part of: https://github.com/runtimeverification/evm-semantics/issues/1588
~Blocked: https://github.com/runtimeverification/evm-semantics/pull/1675~
TODOS:

[ ] Create a separate module for Set and Bool lemmas (probably better to make a separate PR)
[ ] Simplify claims
[ ] Remove redundant claims
[ ] Split claims into different files

Subsumed by a sequence of other PRs endingi here: https://github.com/runtimeverification/evm-semantics/pull/1773


QR Code Install Freeze

On v2.2.0, when attempting to select the "QR Code Install" option, the device freezes entirely (before the camera even shows up) and needs to be hard reset by holding the power.

Fixed.

still not fixed...

Did you get v2.2.1?

Yes, it only works about 2/3 of the time

Working fine here. Check and make sure your camera works just fine elsewhere, as I myself have a somewhat faulty camera on my old 3DS.


Implement scheduled message count

A service bus with scheduled messages is not a real service bus 😉
I hope I finally nailed it in the first attempt, after spending time on writing the unit tests for the other stuff.

I've had a peek and this is looking good!  Are you finished on this PR now?

I believe so!


⚠ Samsung has degraded performance

In a7e105b, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2524 ms

Resolved: Samsung performance has improved in 06079a0.


Introduce new preview api-version 2022-05-01-preview for Microsoft.Kubernetes

MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Changelog
Add a changelog entry for this PR by answering the following questions:

What's the purpose of the update?

[ ] new service onboarding
[x] new API version
[ ] update existing version for new feature
[ ] update existing version to fix swagger quality issue in s360
[ ] Other, please clarify

When are you targeting to deploy the new service/feature to public regions? Please provide the date or, if the date is not yet available, the month.
When do you expect to publish the swagger? Please provide date or, the the date is not yet available, the month.
If updating an existing version, please select the specific language SDKs and CLIs that must be refreshed after the swagger is published.

[ ] SDK of .NET (need service team to ensure code readiness)
[ ] SDK of Python
[ ] SDK of Java
[ ] SDK of Js
[ ] SDK of Go
[ ] PowerShell
[ ] CLI
[ ] Terraform
[ ] No refresh required for updates in this PR

Contribution checklist:

[ ] I commit to follow the Breaking Change Policy of "no breaking changes"
[ ] I have reviewed the documentation for the workflow.
[ ] Validation tools were run on swagger spec(s) and errors have all been fixed in this PR. How to fix?

If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist

Applicability: :warning:
If your changes encompass only the following scenarios, you should SKIP this section, as these scenarios do not require ARM review.

Change to data plane APIs
Adding new properties
All removals

Otherwise your PR may be subject to ARM review requirements. Complete the following:

[ ] Check this box if any of the following appy to the PR so that the label "ARMReview" and "WaitForARMFeedback" will be added by bot to kick off ARM API Review.  Missing to check this box in the following scenario may result in delays to the ARM manifest review and deployment.

Adding a new service
Adding new API(s)
Adding a new API version
-[ ] To review changes efficiently, ensure you are using OpenAPIHub to initialize the PR for adding a new version. More details, refer to the wiki.

[ ] Ensure you've reviewed following guidelines including ARM resource provider contract and REST guidelines. Estimated time (4 hours). This is required before you can request review from ARM API Review board.

[ ] If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist
If any of the following scenarios apply to the PR, request approval from the Breaking Change Review Board as defined in the Breaking Change Policy.

[ ] Removing API(s) in a stable version
[ ] Removing properties in a stable version
[ ] Removing API version(s) in a stable version
[ ] Updating API in a stable or public preview version with Breaking Change Validation errors
[ ] Updating API(s) in public preview over 1 year (refer to Retirement of Previews)

Action: to initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Addition details on the process and office hours are on the Breaking change Wiki.
Please follow the link to find more details on PR review process.

@akashkeshari , one minor comment: Instead of updating api version in each example, should we have two diff files for Get (with GA api version & preview api version). As rest of functionality is not impacted with this swagger, should we refer GA api version for other operations rather than preview?

@akashkeshari , one minor comment: Instead of updating api version in each example, should we have two diff files for Get (with GA api version & preview api version). As rest of functionality is not impacted with this swagger, should we refer GA api version for other operations rather than preview?

All example files for a given api version are present under their respective api-version folder itself. So, there are already example files for both GA & preview api-version (under their respective directories)
Also, I believe that example files for a given api-version shows sample request/response for that api-version only. So, referring some other api-version doesn't make sense.

RPaaS RP APIReadinessCheck can be ignored.


add arithmetic and comparison kernels from DF + small modifications

Which issue does this PR close?

Closes #1200.
Closes #2766.
Rationale for this change

Per issues, these kernels belong in this project, not in DF. The goal is to get these into arrow-rs where they belong and then do further iteration to improve Decimal128 support.
What changes are included in this PR?

Copies the decimal arithmetic and comparison kernels
Small (but useful) changes to the decimal division so that it uses the num crate's BigInt to do division, instead of f64, which aren't suitable for decimal division.

Are there any user-facing changes?
addition of these kernels to the public API

Never mind, everything is working fine. I've moved all the DF decimal kernel code here and copied the tests over into the correct locations. Ready for review.

I think this is only part of https://github.com/apache/arrow-rs/issues/1200 as it doesn't hook up the kernels in the dyn kernels

I will review it tomorrow, please hold this pr.

As it is, I've only copied over what was in DataFusion, but I think that's not suitable for arrow-rs's public APIs. Specifically, the math takes rust primitives (i128) with no checks on precision or scalar or any indication what the precision or scalar might or should be for the scalar.
Also, as a user of arrow-rs, you'd expect to be able to use the same functions to do math on decimals as you do all other number types, but you can't, because they're fundamentally different types here.
Is there a way to make DecimalArray a PrimitiveArray?

Is there a way to make DecimalArray a PrimitiveArray?

Yes (see #2637), and this would definitely be the best path forward if it is tractable. I can try to find some time to have a play around with this. I have some ideas, but I'm loathe to subject someone else to my potentially half-baked ideas 😅

Is there a way to make DecimalArray a PrimitiveArray?

Yes (see #2637), and this would definitely be the best path forward if it is tractable. I can try to find some time over the weekend to have a play around with this. I have some ideas, but I'm loathe to subject someone else to my potentially half-baked ideas 😅

Do we need to hold this pr and implement them by the proposal in https://github.com/apache/arrow-rs/issues/2637?

My personal preference would to hold off on this if the consensus is to move forward with making DecimalArray a PrimitiveArray. However, this may not be ready in time for this weeks release, so if there is urgency to add this functionality I don't wish to block it.

No, there's no urgency in that way. I'll close this PR in favor of the more complete plan for decimal implementation in the other issue.


Track versioned type changes when a PR has renamed a file

The script to detect changed versioned types examines files of the same name in the base branch and the PR branch. If a file has been renamed, the script should compare types in the originally named file and the renamed file.

The way that we now track versioned type changes recognises this. Closing.


Bundling Python modules with external package

If I decide to bundle Python files in external Flutter package B and reference it from Flutter app A the app successfully loads Python runtime (goes past PythonFfi.instance.initialize()) yet it fails to load assets (and modules) defined in pubspec.yaml of B. The reason for that is due to need to use different paths to assets inside package - module loading is failing in discoverPythonModules() in python_ffi_cpython.dart.
What I suggest in order to enable scenarios with external packages is to introduce optional param in discoverPythonModules(), e.g.:
  @override
  Future<Set<PythonModuleDefinition>> discoverPythonModules(
      [String packagePath = "",]) async {
    try {
      final ByteData modulesJsonRaw = await PlatformAssetBundle()
          .load("${packagePath}python-modules/modules.json");
      return _decodePythonModules(
        utf8.decode(modulesJsonRaw.buffer.asUint8List()),
      ).toSet();
      // ignore: avoid_catching_errors
    } on FlutterError catch (e) {
      debugPrint("Failed to load python modules: $e");
      return <PythonModuleDefinition>{};
    }
  }

and also have it in python_ffi_base.dart to be forwarded down to python_ffi_cpython.dart
 FutureOr<void> initialize([String packagePath = ""]) async =>
      await PythonFfiDelegate.instance.initialize(packagePath);

This way I could initialize python_ffi like that:
Future<void> init() async {
  await PythonFfi.instance.initialize('packages/dns_engine/');
}

Could you please have a look at the issue? Or there might be a better way to implement my scenarios without changing anything.

IMO, if you decide to go the way with optional param, there's no need to pass in raw path snippet, only package name should work, e.g.:
  Future<Set<PythonModuleDefinition>> discoverPythonModules(
      [String packageName = "",]) async {
    try {
      final ByteData modulesJsonRaw = await PlatformAssetBundle()
          .load("${packageName.isNotEmpty ? 'packages/'+packageName+'/' : ''}python-modules/modules.json");
...

@maxim-saplin have a look at the implementation in the branch issue/10
You would initialize the plugin via
await PythonFfi.instance.initialize(package: "dns_engine");

Does this fit your needs?

Looks good, thanks! Will test tomorrow

Tested, works, no issue so far. Thanks for the fix!


More examples for where filtering in Document API

From several sources I've had the request to extend the documentation for filtering on the Document API. Especially filtering on multiple fields and filtering on deep nested JSON structures.

What is available here will probably be affected by https://github.com/stargate/stargate/issues/1063 and https://github.com/stargate/stargate/issues/828 in the positive sense, i.e. expanding the scope of what is available.

I will paste here some examples which are not yet covered by the documentation, so that @polandll can move this forward:

multiple conditions on the same field - where={ "product.price": { "$gt": 100, "$lt": 1000}}
path segments, use , to match two or more paths - where={ "product.price,discountPrice": { "$gt": 100}} - this will match any product having price or discountPrice greater that 100
array elements matching - where={ "product.reviews.[0].status": { "$eq": "APPROVED"}} - finds any product where first review has status approved
array globs (wildcards) - where={ "product.reviews.[*].status": { "$eq": "APPROVED"}} - finds any product where any review has status approved
path globs (wildcards) - where={ "product.reviews.[*].*": { "$eq": "APPROVED"}} - finds any product where any review has any field with value approved
mix all of those above is possible as well:  where={ "*.test,reviews.[*].rating": { "$gt": 4}} - matches document that on the second level has test or review with rating above 4

@polandll I am here for any question.

Also need to update the document yaml file with new predicates.

Document v2 API:
$eq, $ne, $in, $nin, $gt, $lt, $gte, $lte, $exists.
Related to #134.

I will paste here some examples which are not yet covered by the documentation, so that @polandll can move this forward:

multiple conditions on the same field - where={ "product.price": { "$gt": 100, "$lt": 1000}}
path segments, use , to match two or more paths - where={ "product.price,discountPrice": { "$gt": 100}} - this will match any product having price or discountPrice greater that 100
array elements matching - where={ "product.reviews.[0].status": { "$eq": "APPROVED"}} - finds any product where first review has status approved
array globs (wildcards) - where={ "product.reviews.[*].status": { "$eq": "APPROVED"}} - finds any product where any review has status approved
path globs (wildcards) - where={ "product.reviews.[*].*": { "$eq": "APPROVED"}} - finds any product where any review has any field with value approved
mix all of those above is possible as well:  where={ "*.tests,reviews.[*].rating": { "$gt": 4}} - matches document that on the second level has test or review with rating above 4

@polandll I am here for any question.

Does the wild character at all work?
Below is my document and I am trying where={"alpha.[*]":{"$eq":"xyz"}} but it does not return aything
{
    "id": "1234",
    "vowels": "aeu",
    "alpha":[
        "xyz",
        "efgh"
    ],
    "new": [
        {"name":"nam1"},
        {"name":"nam2"}
    ]
}

I will paste here some examples which are not yet covered by the documentation, so that @polandll can move this forward:

multiple conditions on the same field - where={ "product.price": { "$gt": 100, "$lt": 1000}}
path segments, use , to match two or more paths - where={ "product.price,discountPrice": { "$gt": 100}} - this will match any product having price or discountPrice greater that 100
array elements matching - where={ "product.reviews.[0].status": { "$eq": "APPROVED"}} - finds any product where first review has status approved
array globs (wildcards) - where={ "product.reviews.[*].status": { "$eq": "APPROVED"}} - finds any product where any review has status approved
path globs (wildcards) - where={ "product.reviews.[*].*": { "$eq": "APPROVED"}} - finds any product where any review has any field with value approved
mix all of those above is possible as well:  where={ "*.tests,reviews.[*].rating": { "$gt": 4}} - matches document that on the second level has test or review with rating above 4

@polandll I am here for any question.

Does the wild character at all work?
Below is my document and I am trying where={"alpha.[*]":{"$eq":"xyz"}} but it does not return aything
{
    "id": "1234",
    "vowels": "aeu",
    "alpha":[
        "xyz",
        "efgh"
    ],
    "new": [
        {"name":"nam1"},
        {"name":"nam2"}
    ]
}

@debdeep-das At the moment wild-cards can not be used at the leaf name, meaning that can not be last in the search path:

something.[*].field - does work
something.[*] - does not work

Unfortunately my comment that you referenced has a non-working example where={ "product.reviews.[*].*": { "$eq": "APPROVED"}}. However, this is something we can easily support and we already have a ticket for this: https://github.com/stargate/stargate/issues/1247

https://github.com/stargate/docs/pull/217


doc: Documentation issue in 'samples/fuel_gauge/max17048/README'

Unknown unit of time to empty parameter
Interfaced MAX17048 sensor with nRF52832 dev kit, got four ouputs

time to empty 128
time to full 0
charge 10%
Voltage 3690
But i don't know the units of time to empty

<< You may also want to update the automatically generated issue title above. >>
Environment

Page: samples/fuel_gauge/max17048/README
Version: main
SHA-1:<PHONE_NUMBER>8e988e77b4fc3673ca75b8af4224a3

Please just refer to the API documentation. It's supposed to be expressed in minutes
https://docs.zephyrproject.org/latest/hardware/peripherals/fuel_gauge.html#c.fuel_gauge_prop_type.FUEL_GAUGE_RUNTIME_TO_EMPTY

BTW, it would be most welcome if you're interested in submitting a pull request to update the sample so that the units are included in the console output.

Please just refer to the API documentation. It's supposed to be expressed in minutes https://docs.zephyrproject.org/latest/hardware/peripherals/fuel_gauge.html#c.fuel_gauge_prop_type.FUEL_GAUGE_RUNTIME_TO_EMPTY

I just read the documentation, time to discharge unit is resolved but now the doc shows that FUEL_GAUGE_VOLTAGE is shown in micro Volts, the problem is the battery i connected has a rating of 3.6V but the output shows 3690 uV which means 3.69 mV. So am i getting something wrong here? :(

Please just refer to the API documentation. It's supposed to be expressed in minutes https://docs.zephyrproject.org/latest/hardware/peripherals/fuel_gauge.html#c.fuel_gauge_prop_type.FUEL_GAUGE_RUNTIME_TO_EMPTY

I just read the documentation, time to discharge unit is resolved but now the doc shows that FUEL_GAUGE_VOLTAGE is shown in micro Volts, the problem is the battery i connected has a rating of 3.6V but the output shows 3690 uV which means 3.69 mV. So am i getting something wrong here? :(

If understand this datasheet correctly, it looks like that falls well within error for measurement.

I think there has been a misunderstanding, i said my battery was 3.6V but the output shows 3.69mV according to the documentation. So i just wanted to clear that up.
Also no problem, Family comes before everything, take your time this can wait.

My apologies for the misunderstanding.
Looking at 32b27384a68f250a1 it looks like you're completely correct that that MAX17048 was missed during a conversion to micro-volts. I'm honestly shocked I missed that conversion. Thank you for catching this.
That is a breaking change for current users, but it's something that should've occurred a while ago with a simple short fix. I need to setup my Chromebook I have with me for Zephyr development (should be pretty quick) but if you want this resolved faster you're more than welcome to push a PR to change here. Current was never implemented so that does not need to be adjusted.
Either way, a PR for this should be pushed this week. Let me know if you want to do it, otherwise I'll go ahead and do it. Afterwards you can cherry-pick it to your Zephyr for or update to top-of-tree.

I am going to put a PR now, let me know if any further changes are required. I tested the changes and got 7 digit output across voltage. To convert to Voltage just need to divide by 1e6.

I apologize for making the same PR twice, i am new to git and github and previous CI made me confused so i just made the changes and created a new PR.

I apologize for making the same PR twice, i am new to git and github and previous CI made me confused so i just made the changes and created a new PR.

No worries! I appreciate you making the PR!


Update deployment.toml to mark 1.2 mainnet verifiers as routable

Timelock controller execute transactions have not cleared, and so the 1.2 verifiers are live on mainnets.

Converting to draft since I added from changes to CI that needs to be considered.


High Memory Usage in Azure IoT Edge LTS with Custom Modules

Describe the bug
I am running Azure IoT Edge LTS <IP_ADDRESS>33 with two custom modules. The custom modules collect data over TCP from simulators and send messages upstream to an IoT Hub in Azure. After running for some minutes or hours without issues, the message transmission suddenly stops.
Inspecting the system logs (journalctl --system) shows a container runtime error and a watchdog checking the runtime status but not receiving a response:
Mar 30 15:04:12 ELX210922-EFLOW aziot-edged[1243]: 2023-03-30T15:04:12Z [WARN] - container runtime error
Mar 30 15:04:12 ELX210922-EFLOW aziot-edged[1243]: Caused by:
Mar 30 15:04:12 ELX210922-EFLOW aziot-edged[1243]:     deadline has elapsed
Mar 30 15:05:06 ELX210922-EFLOW aziot-edged[1243]: 2023-03-30T15:04:13Z [INFO] - Auth for edgeHub failed: runtime operation error: top module "edgeHub"
Mar 30 15:05:06 ELX210922-EFLOW aziot-edged[1243]: 2023-03-30T15:04:13Z [INFO] - --> 403 {"content-type": "application/json"}
Mar 30 15:05:06 ELX210922-EFLOW aziot-edged[1243]: 2023-03-30T15:04:22Z [INFO] - --> 500 {"content-type": "application/json"}
Mar 30 15:05:06 ELX210922-EFLOW aziot-edged[1243]: 2023-03-30T15:04:25Z [INFO] - <-- POST /modules/%24edgeHub/genid/638152555084779677/encrypt?api-version=2020-07-07 {"accept": "application/json", "host": "workload.sock:80", "connection": "close", "content-type": "application/json", "content-length": "574"}
Following this, there is no log output until the system seems to run out of memory about 1.5 hours later:
Mar 30 16:35:48 ELX210922-EFLOW systemd[1]: systemd-journald.service: State 'stop-watchdog' timed out. Killing.
Mar 30 16:35:48 ELX210922-EFLOW systemd[1]: systemd-journald.service: Killing process 577 (systemd-journal) with signal SIGKILL.
Mar 30 16:35:48 ELX210922-EFLOW kernel: systemd-resolve invoked oom-killer: gfp_mask=0x1100cca(GFP_HIGHUSER_MOVABLE), order=0, oom_score_adj=0
During this time, the vmmem process on Windows reaches its maximum CPU usage, and the VM becomes extremely sluggish or unresponsive. The only way to restore the system is by killing the vmwp process. This issue has occurred multiple times under the same conditions.
To Reproduce
Steps to reproduce the behavior:

Set up a Windows machine with Azure IoT Edge installed, and deploy an EFLOW VM. Provision the VM to connect to the IoT Hub.
Deploy two custom modules that collect data over TCP from simulators and send messages upstream to an IoT Hub in Azure.
Monitor the message transmission and wait for it to stop suddenly.
Observe the high CPU usage by the vmmem process on Windows and the sluggishness or unresponsiveness of the EFLOW VM.
Kill the vmwp process to restore the system.
After restoring the system, inspect the system logs using journalctl --system within the EFLOW VM and observe the container runtime error and deadline elapsed message. Continue reviewing the logs to find the out-of-memory event and the 'stop-watchdog' timed out message.

Expected behavior
The custom modules should consistently collect data over TCP from the simulators and send messages upstream to the IoT Hub without interruptions. The EFLOW VM should remain stable, with no high CPU usage by the vmmem process on Windows or sluggishness. The system should not encounter out-of-memory events, and there should be no need to kill the vmwp process to restore the system.
Windows Host OS (please complete the following information):

Edition: Microsoft Windows 10 Enterprise LTSC
Version: Version	10.0.17763 Build 17763
Virtual Machine: None

Additional context
Attached logs from the system, the relevant parts are from after 2023-03-30T14:30:00Z UTC, where I have removed the "HEALTHCHECK" statement from the dockerfile for my custom modules, which is what I originally thought might cause the issue since it after some time of execution was getting an error:
Mar 29 15:28:45 ELX210922-EFLOW dockerd[17107]: time="2023-03-29T15:28:45.192132862Z" level=error msg="stream copy error: reading from a closed fifo"
logs.zip

Hi @rabergerik,
Thanks for reaching out.  I suspect that the issue could be related to two different things

Memory leak - Could you please check that there's no memory leak in your modules? You can connect to the EFLOW VM and then use the sudo docker stats command to check memory, IO, and CPU usage.

Logs - Could you please check your logs usage?

Finally, if possible, try to increase both the memory and storage of the EFLOW VM. Maybe you're in a corner case, and by increasing both parameters you get your VM running correctly.
Thanks,
Francisco

Hi @rabergerik,
It seems to me that you're using a 1GB EFLOW VM. In the past, we've seen that when using "almost over the limit" memory assignment, the memory paging swapping system will start doing a lot of swaps and hence there's a memory CPU spike. I'd recommend assigning ~300/400MB more to the VM.
Thanks
Francsico

@fcabrera23 Thank you, yes you’re right. I doubled the memory on Friday, on your suggestion, and it has been running smoothly since then. Thanks again for your time.


upgrade to v0.1.2

Don't bother doing this. Trying to keep individual generated API libraries up to date is a losing proposition, as the APIs can have minor updates at any time. It would be better to delete the entire tree and replace it with a single file of instructions on how to generate the API surface.


An option allows user to control how to use topics in connection sampler

The option allows user to specify one topic for each connection, or all of connections share the same topic.

User can use the JMeter variable to use different topic name, close the issue.


chore: disable dev server host check

Description
Can we disable the host check for online IDE's like Amazon Cloud9?

@pedronauck  Reading this article about disableHostCheck
https://medium.com/webpack/webpack-dev-server-middleware-security-issues-1489d950874a
Should we instead allow changing the public prop on the dev server config? The below example has an arg prop called "devPublic" that you set in the command line.
const devServerConfig = (hooks, args) => {
    const srcPath = path.resolve(root, args.src);
    const publicDir = path.resolve(root, args.public);
    const nonExistentDir = path.resolve(__dirname, 'non-existent');
    return {
        ...(args.devPublic ? {public: args.devPublic} : {}),
        publicPath: '/',

Example Usage:
docz dev --host=<IP_ADDRESS> --port=8080 --devPublic=website.io:8080

docz dev --host=<IP_ADDRESS> --port=8080 --devPublic=<IP_ADDRESS>:8080


examples/client interface

Description of change
Provides command line interface (CLI) examples to showcase the new client interface
Links to any relevant issues
None
Type of change

[x] Enhancement (a non-breaking change which adds functionality)

How the change has been tested
No checks have been provided.
Change checklist

[x] I have followed the contribution guidelines for this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation

Would you mind adding client_new also to .github/workflows/format.yml and .github/workflows/format.yml? I noticed that the (old) example CI in #320 currently does not compile, which should have been caught by our CI.

@elenaf9 yes, add the missing ci parts ( didn't i already do that :thinking: ?) The examples should compile.


Refs #31546, Refs #34118 -- Corrected CommandTests.test_requires_system_checks_specific().

System checks are never called without skip_checks=False. Moreover, called_once_with() is not a proper assertion and raise AttributeError on Python 3.12:
ERROR: test_requires_system_checks_specific (user_commands.tests.CommandTests.test_requires_system_checks_specific)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/django/tests/user_commands/tests.py", line 203, in test_requires_system_checks_specific
    mocked_check.called_once_with(tags=[Tags.staticfiles, Tags.models])
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/unittest/mock.py", line 657, in __getattr__
    raise AttributeError(
AttributeError: 'called_once_with' is not a valid assertion. Use a spec for the mock if 'called_once_with' is meant to be an attribute.. Did you mean: 'assert_called_once_with'?

Thanks for reviews :+1:


chore: promote gow-new-1 to version 0.0.7

this commit will trigger a pipeline to generate the actual kubernetes resources to perform the promotion which will create a second commit on this Pull Request before it can merge

gow-new-1
Changes in version 0.0.7
Chores

release 0.0.7 (jenkins-x-bot)
add variables (jenkins-x-bot)

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To complete the pull request process, please assign
You can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@hazemTa: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

verify
be5f910ee7e5e54c8e8fc778259e1d12d509ddce
link
/test verify

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the jenkins-x/lighthouse repository. I understand the commands that are listed here.

@hazemTa: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

verify
be5f910ee7e5e54c8e8fc778259e1d12d509ddce
link
/test verify

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the jenkins-x/lighthouse repository. I understand the commands that are listed here.


Take margin top into account for slidable view

First, thanks for the awesome lib!
How?
It'd be nice if the slidable view can be aware of its margin top so that we can achieve the following effect.

There're many different ways to make it work but the simplest we found is to specify layout_marginTop for the slidable view with whatever dimen we expect:
<!-- SLIDING LAYOUT -->
<LinearLayout
    android:layout_marginTop="?actionBarSize"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:clickable="true"
    android:focusable="false"
    android:id="@+id/dragView">

Currently the slidable view always matches its parent (SlidingUpPanelLayout) height.

Hey , Amazing Lib.
It'd be nice if the slidable view can also be aware of its margin left and right as its now aware of margin top.


feat: implement redirection logic for new /fair page

https://artsyproduct.atlassian.net/browse/FX-2291

Sets up feature flagging to enable redirection from the old profile page to the new /fair page
Allows us to force certain running fairs to skip redirection and retain the old page, per contract

Here's a summary of the redirect logic, from the spec:

Alright I've fixed the Profile vs Fair stuff in https://github.com/artsy/force/pull/6373/commits/3b9a1836be544245cba3128a1b2742375b487455 if you want to take another look.

Thanks for all the review. Most recent comments addressed as well. I'm going to give this a #squashongreen ✨


Add optional metadata form in ERC creation

This PR should resolve #146.
With this pull request a fourth form page for the ERC creation is added. On this form page you can edit the DOI, the languages of the paper(ISO 639-1 codes) and the keywords.
Full optional metadata page:

They are also shown on the metadata overview on the ERC site:

Checks
I have included a few checks for the metadata.

The DOI is checked for validity:

The keywords should always be at least two characters long.

The codes must be from the ISO Standard.

The languages must be unique.

If any of the checks are to much or a more general problem arises please let me know.

@NJaku01 please go ahead with the merge, ideally you can follow up with the mentioned tests right afterwards.

@nuest I tested the reset. I fixed some minor errors; the fixes are in #204. After @Fmazin reviewed these changes, I would merge them and merge the tests afterwards.


Object store builder blocks on IO when building

Describe the bug
Cloud based (tested for GCS) store builder blocks on file IO synchronously in .build. This happens by:
object_store -> reqwest::ClientBuild::build -> rustls::load_native_cert
To Reproduce
use object_store::gcp::GoogleCloudStorageBuilder;

fn main() {
    for _ in 0..100 {
        let start = std::time::Instant::now();
        let _gcs = GoogleCloudStorageBuilder::from_env().with_bucket_name("some-bucket").build().unwrap();
        println!("built in: {:?}", start.elapsed());
    }
}

Expected behavior
calling build should return a future and not block
Additional context
I'll create a ticket in reqwest as well, but maybe we could capture the client build in tokio::spawn_blocking for the time being?

See flame graph showing std::fs in the stack

upon further testing this is cause by the feature rustls-tls-native-roots. default-tls does not have this behavior

issue created in reqwest https://github.com/seanmonstar/reqwest/issues/2437

FWIW the various object store implementations are designed to be created once and then reused, otherwise things like connection pooling, etc... won't work correctly and you will pay for non-trivial setup costs such as loading certificates

I def lack the context on what we need native roots maybe that's something we could change

There is some further context on this specific issue - https://github.com/apache/arrow-rs/issues/4870
TLDR you can opt-in to using webpki roots, or native-tls depending on your preferences.

our code makes a bit hard to do DI style constructions

I'd strongly encourage you to try, polars started reporting very peculiar issues a while back (https://github.com/pola-rs/polars/issues/14384) that was ended up being related to it spinning up hundreds of separate clients. In the end they used a global cache for this and the issues went away - https://github.com/pola-rs/polars/pull/14598

I'm going to close this, as reading the linked upstream ticket I am not sure there is anything planned in this repository


Missing "Web API Connect Endpoints" support

We should add support for these endpoints -> https://developer.spotify.com/web-api/web-api-connect-endpoint-reference/

This is exactly what I need

I would love to have this endpoint either.

There is an open PR regarding this (#121). It would be awesome to merge this, I'm also waiting for it.

Closing since these are already implemented.


OCPBUGS-31644: Rebase etcd 3.5.13 openshift 4.15

This PR rebases etcd 3.5.13 into openshift-4.15.
This PR has been created by this workflow

git rebase --rebase-merges --fork-point v3.5.12 v3.5.13 ( rebasing the changes from upstream 3.5.12 --> 3.5.13 )
git cherry-pick 7f9d400290fa51a9db62e44aceab2c7f26b5a3b7 to cherrypick the downstream changes (commit)
git cherry-pick 6026dab5dd823bcc25fcd8f05e2f0523447abe31 to cherrypick the downstream changes (commit)

After rebasing, running make locally produce
SUCCESS: etcd_build (GOARCH=amd64)
./bin/etcd --version
etcd Version: 3.5.13
Git SHA: 66b848b16
Go Version: go1.21.1
Go OS/Arch: darwin/amd64
./bin/etcdctl version
etcdctl version: 3.5.13
API version: 3.5
./bin/etcdutl version
etcdutl version: 3.5.13
API version: 3.5

cc @tjungblu @hasbro17 @dusk125 @soltysh @deads2k

/payload 4.15 nightly blocking

/payload 4.15 nightly informing

/lgtm

/label cherry-pick-approved


Placeholder text for Issues "Objective" not populating

Requirements

[ ] placeholder text populates
[ ] placeholder text can be overwritten

@LisaMoore1 What should the placeholder text be?


Event and Team page titles incorrect

Event and Team pages are dynamically pulling page titles from the page content.
Steps to reproduce the behavior:

Go to /events or /team
Click on an event or team member
See the page title pulled from the body content, not the h1

Expected behavior
Page titles are the same as h1
Screenshots

Additional info
Page titles also do not update when navigating away from one of these pages.

thanks for reporting — note for anyone who wants to fix this, check out the <SEO> component that's on these page templates


Cron improvements

Copy of https://github.com/neutron-org/neutron-sdk/pull/161

Test run: https://github.com/neutron-org/neutron-tests/actions/runs/10739802155


Is there a way to display a "merged"-tag in the branches overview

Hi everyone,
maybe you can help me out of a huge list of branches in my git-repo:
Since branches are not deleted in the remote branch, my list of origin-branches is flooded with old, inactive branches. Is there a way to see if a branch is already merged/fully merged into another branch and is therefore (most likely) not in active dev state?
Thanks in advance :)

There isn't a way to see this currently -- but it sounds like a good idea.


ImportPipelineArgs.ImportData is not cleared during import retry

Description

jss deploy items command errors out on the server-side if there are some unresolvable id references (ImportPipelineArgs.UnresolvableIdReferenceItemRetryList.Count  > 0) due specifically after the re-try import is triggered (message from CLI):

Retrying import job due to 24 initially unresolvable ID references.

At the end of this process the following exception will occur:
Exception thrown while importing JSS app
Exception: System.InvalidOperationException
Message: The ID {86D96BD8-34F4-5B25-99BC-C67B932254D0} has been used more than once during import. This likely means two imported items have the same id value, or two items of the same type (e.g. templates) share the same name. Details: template ABC Rendering Parameters, template ABC Rendering Parameters
Source: Sitecore.JavaScriptServices.AppServices
   at Sitecore.JavaScriptServices.AppServices.Data.IdManager.AssertIdIsUnused(ID id, String idUsageDescription)
   at Sitecore.JavaScriptServices.AppServices.Pipelines.Import.ProcessTemplates.CreateTemplate(TemplateDef templateDef, Item parent, Item multilistRoot, AppConfiguration app, IdManager idManager)
   at Sitecore.JavaScriptServices.AppServices.Pipelines.Import.ProcessTemplates.<CreateTemplates>d__11.MoveNext()
   at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   at jssextensions.Pipelines.Import.ProcessTemplates.Process(ImportPipelineArgs args)
   at (Object , Object )
   at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args)
   at Sitecore.Pipelines.DefaultCorePipelineManager.Run(String pipelineName, PipelineArgs args, String pipelineDomain, Boolean failIfNotExists)
   at Sitecore.Pipelines.DefaultCorePipelineManager.Run(String pipelineName, PipelineArgs args, String pipelineDomain)
   at Sitecore.JavaScriptServices.AppServices.Pipelines.Import.ImportPipeline.Import(ImportPipelineArgs args)
   at Sitecore.JavaScriptServices.AppServices.ImportService.ImportJob.ProcessRetries(ImportPipelineArgs args)
   at Sitecore.JavaScriptServices.AppServices.ImportService.ImportJob.StartImportInternal()

This is due to the ImportPipelineArgs.ImportData.* properties not being cleared before re-try is initiated. Other pipeline arg state fields are cleared but not ImportData, which during the re-try gets duplicate templates in thanks to Sitecore.JavaScriptServices.AppServices.Pipelines.Import.Deserialize pipeline processor.
Expected behavior

Re-try operation succeeds without errors.
Steps To Reproduce

Provided above.
Possible Fix

Clear the values for all the array properties inside args.ImportData object before issuing re-try of the import pipeline in sideImportJob.ProcessRetries() method.
Your Environment

Sitecore Version: 9.3
JSS Version: 13.0.2 (latest)
Browser Name and version: Netscape :)
Operating System and version (desktop or mobile): Windows ME :)

@alexshyba I shown it to team. Added in backlog to review

@alexshyba Could you please provide us items, templates structure, can't reproduce the issue?

@alexshyba Any chance of getting an import from you which reproduces the issue?

Unable to repro and no reply


CI/CD Should be automated

Once #3 is completed, an automated publish pipeline should be created.

fixed