compiling and running without segfault

From issue 8:
It would be helpful to add buffer read support besides file reading. I am implementing a file streamer/player at the moment and want to read id3 data directly from the stream.

There is no library available (i know of) that reads id3 labels from a buffer rather than from a file.
I added methods for being able to use buffers instead of files. The functionality is not broken as all the functions still do the same as they did before. I added new functions for the new functionality.
Please check out the code and let me know what you think of it.

push.
did you find time to review the code already?
best regards and a happy new year.

Was this Pull Request ever tested, by anybody?!?! It totally doesn't work and breaks the app in critical ways!~ See Issue #12, "It just doesn't read tags!".


Enhanced Open Source Importance Description why-open-source.md

Added vivid descriptions, subpoints, and tables to the Markdown content.
Enhanced the content to provide a more comprehensive explanation of the importance of open source in the technology industry.
Implemented tables to organize the information for improved readability and clarity.

PR Type: docs update

Affiliation: N/A

Ticket: N/A

Checklist:

[x] I've read Contributing Guidelines
[x] I agree to follow the Code of Conduct

Any appropriate enhancement suggestions are welcome🙌😁

I LOVE this, thank you @Aryan-Bhargav8 :)
You've made great points and nicely written and formatted


typo: Double word "a"

@nschonni : Thanks for your contribution! The author, @rayne-wiselman, has been notified to review your proposed change.

Thanks! #sign-off


Replace  element contents instead of inserting after

Issue based on this HackerNews comment by @chris-morgan: https://news.ycombinator.com/item?id=37048556

<script type="text/typogram">

This should use <pre> instead, e.g. <pre class="typogram">. It’s content, not scripting, and if the JavaScript isn’t run (for whatever reason—JS is less reliable than people often think, especially third-party JS, even on environments that don’t try to block it) you’d like the diagram to still be visible in some form.

My suggestion would be to use a custom data attributes (i.e. data-typogram) instead, but it might just be personal preference.

Retaining the <pre> would also be a great improvement for selecting text—the current arrangement of “place single-character <text> elements” is almost useless for copy and paste (losing spaces and line breaks), which is the main reason I can imagine wanting such a thing.

It would also be more semantically correct. Crawlers would be able to pick up on the preformatted text and use it for e.g. better search results.

Another benefit of this is it would eliminate layout shift when the JS loads, thus improving the CLS metric.
It would also work in RSS feeds.

FYI: I decided to refactor the code, including the proposed changes in the current issues. If there is still interest repo and example.


Remove setFactory() side-effect and add resetDriver()

Invoking Loop::setFactory() removes the active Driver instance as a side-effect. This PR removes this side-effect and requires a new DriverFactory instance be passed to Loop::setFactory() (instead of being nullable).
To remove the current Driver instance and force a new one to be created, a Loop::resetDriver() method is added. This method cannot be invoked while the loop is running.

Why did you remove the nullability?

@kelunik The nullability seemed pointless… why would you explicitly remove the factory without setting another?

Because tests or whatever.

Testing maybe… so I'll put it back.

Closing, as project discontinued for now.


planning: Cortex Hardware API

Goal

We should have a very clear Eng Spec for Cortex Hardware API for Sprint 23

Key Functionality

Hardware Detection

Cortex can list all available hardware

Hardware Activation

Cortex has a clear CLI and API to select active hardware
Cortex can activate specific hardware (e.g. CPU-only, or specific GPU)

Hardware -> Engines

Engines initialize using activated Hardware
List of active hardware is passed down to the engine (e.g. llama.cpp or TensorRT-LLM)
How does this interact with ngl settings?

Hardware Usage Detection

Cortex can detect free RAM or VRAM

Hardware Fallback

Fallbacks (e.g. if GPU inference fails due to drivers not installed, run inference on CPU?)
https://github.com/janhq/cortex.cpp/issues/805

Tasklist

[ ] Design API (e.g. GET /hardware)
[ ] Design CLI (e.g. cortex hardware list?)

Functionality

[ ] Hardware Detection
[ ] Hardware Activation
[ ] Hardware Usage Detection (e.g. RAM, VRAM)

Cortex & Jan Integration

[ ] Is it possible for us to have a consistent hardware list across engines?
[ ] Update Spec with architecture https://github.com/janhq/cortex.so/issues/193

Previous Issues

[ ] https://github.com/janhq/cortex.cpp/issues/1142
[ ] janhq/jan#3762
[x] https://github.com/janhq/cortex.cpp/issues/1191#issue-2518761802
[x] https://github.com/janhq/jan/issues/3012

Appendix
UX Goal
Cortex.cpp's Hardware API should enable us to do this in Jan

@louis-jan I'm assigning this to you in Sprint 20, as this has a significant CLI and API design component. We can discuss later in the week if you want/can take on the implementation of it - could be a good way to ensure you have deep understanding of our C++ codebase

@louis-jan @nguyenhoangthuan99 I am going to move this to Sprint 21, as I think you guys should land the Model Folder and model.yaml first.

The hardware detection serves two main purposes:

Installing the correct version of the engine.
Running a model that fits the available resources.

To achieve these goals and to make debugging easier, as well as to help users choose the appropriate model, the hardware API/CLI should provide the following information:

Operating System (OS)
Number of CPU threads
Amount of free RAM
Presence of AVX instructions (a set of CPU instructions that can accelerate certain computations)
GPU information, including:

GPU ID
GPU name
GPU architecture
GPU driver version
CUDA driver version (for NVIDIA GPUs)
Compute capability (for NVIDIA GPUs)
Free VRAM (video memory)

example return body:
{
  "os": "windows",
  "arch": "amd64",
  "suitable_avx": "avx2",
  "free_memory": 8192,
  "gpu_info": [
    {
      "id": "0",
      "name": "NVIDIA GeForce RTX 3090",
      "arch": "ampere",
      "driver_version": "552.12",
      "cuda_driver_version": "12.4",
      "compute_cap": "8.6",
      "free_vram": 8192
    }
  ]
}

Note: The commenter mentions that getting the free VRAM information from C++ is challenging and requires further investigation (current approach is parse from output of nvidia-smi command).
This information would allow the system to make informed decisions about which engine version to install and which models can run efficiently on the user's hardware. It also provides valuable data for debugging purposes.

From Jan, we expect to display comprehensive hardware information, including CPU, GPU, RAM, OS, and connected monitors (as issues like projector connections have been known to impact performance).
Structure
To make it easier for user support, the hardware information should be grouped for quick lookup (users support), a mix of flattened and grouped structures can be visually overwhelming.
E.g. the supporter have to scroll to the bottom of the file to see os

❌ ✅

{
  "arch":  "",
  "free_memory": "",
  "gpus": [
   {},
   {},
   {}
  ],
  "os":""
}

{
  "device": {
    "arch":  "",
    "free_memory": "",
    "os":""
  }
  "gpus": [
   {},
   {},
   {}
  ],
}

{
  "cpu": {
    "arch":  "x64",
    "cores": "4",
    "model": "Intel Core i9 12900K"
  },
 "os": {
    "version":  "10.2",
    "name": "Windows 10 Pro"
  },
 "power": {
     "battery_life": 80,
     "charging_status": "charged",
     "is_power_saving": false
 },
 "ram": {
    "total":  "16",
    "available": "12",
    "type": "DDR4" // better model name?
 },
  "storage": {
      "total": 512,
      "available": 256,
      "type": "SSD" // better model name?
  },
  "gpus": [
   {},
   {},
   {}
  ],
  "monitors": [
  ]
}

Consistent from system to system
Different devices but the same output format, such as GPU Driver. Should not have different response body structure per GPU family.
E.g.

❌ ✅

"graphics": [
   {
      "id": "0",
      "name": "NVIDIA GeForce RTX 3090",
      "driver_version": "552.12",
      "cuda_driver_version": "12.4",
      "compute_cap": "8.6",
      "free_vram": 8192
   },
  {
      "id": "1",
      "name": "AMD Radeon RX 6800 XT",
      "driver_version": "5.0.2?",
      "cuda_driver_version": "?",
      "compute_cap": "?",
      "free_vram": 8192
   },
]

"graphics": [
   {
      "id": "0",
      "name": "NVIDIA GeForce RTX 3090",
      "version": "12.4",
      "additional_information": { "driver_version": "552.12", "compute_cap": "8.6" },
      "free_vram": 8192,
      "total_vram": 8192
   },
   {
      "id": "1",
      "name": "AMD Radeon RX 6800 XT",
      "version": "6.1",
      "free_vram": 8192,
      "total_vram": 8192
      "additional_information":  { "rocm_git_revision": "0d0a7a10c1a3" },
   },
]

Try to gather anything could affect the performance?

Connected monitors?
RAM model / speed?
Power Saving mode?

Cortex Hardware Management Specifications
1. Hardware Detection
Task 1.1: Implement hardware detection function

Create a function detect_hardware() that returns a JSON object with the following structure:{
  "cpu": {
    "arch": "string",
    "cores": "string",
    "model": "string",
    "instructions": ["string"]
  },
  "os": {
    "version": "string",
    "name": "string"
  },
  "ram": {
    "total": "string",
    "available": "string",
    "type": "string"
  },
  "storage": {
    "total": number,
    "available": number,
    "type": "string"
  },
  "gpus": [
    {
      "model": "string",
      "vram": "string",
      "driver_version": "string"
    }
  ],
  "power": {
    "battery_life": number,
    "charging_status": "string",
    "is_power_saving": boolean
  },
  "monitors": [
    {
      "resolution": "string",
      "refresh_rate": number,
      "resolution":"string
    }
  ]
}

Add a new command to the Cortex CLI: cortex hardware list
Add a API to list hardware GET /hardware

Task 1.2: Implement platform-specific detection

Develop separate modules for Windows, Linux, and macOS to gather hardware information
Use appropriate system calls and libraries

2. Hardware Activation
Cortex is stateless, so it's mandatory to save activated hardware on DB to reuse it.
Task 2.1: Design database schema

Create a Hardware table in cortex.db with the following schema:CREATE TABLE Hardware (
  id INTEGER PRIMARY KEY,
  type TEXT NOT NULL,
  name TEXT NOT NULL,
  is_active BOOLEAN DEFAULT 0,
  properties TEXT, # properties of hardware as json dumped string
  UNIQUE(type, name)
);

Task 2.2: Implement CLI for hardware activation

Add a new command to the Cortex CLI: cortex hardware activate <type> <name>
Implement logic to update the is_active field in the database

Task 2.3: Create API for hardware activation

Implement a RESTful API endpoint: POST /api/v1/hardware/activate
Accept JSON payload with type and name fields
Update database and return activation status

Task 2.4: Implement hardware-specific activation

Create separate modules for CPU and GPU activation
Implement logic to handle CPU-only or specific GPU activation

3. Hardware -> Engines Integration
Task 3.1: Modify engine initialization

Update engine initialization code to accept a list of active hardware
Implement a function to query active hardware from the database
If no activated hardwares use the default setting like current logic.

Task 3.2: Implement hardware passing to engines

query from database for engines using hardware -> can reuse cortex ps for running model

Task 3.3: Handle ngl settings

Implement logic to automatically set ngl to 0 when running on CPU-only
Create a model compatibility API to determine appropriate ngl settings for different hardware configurations

4. Hardware Usage Detection
Task 4.1: Implement RAM and VRAM detection

Create functions to detect free RAM and VRAM
Use platform-specific methods (e.g., Windows API, /proc/meminfo on Linux, sysctl on macOS)

Task 4.2: Implement GPU-specific detection

Create a module for NVIDIA GPU detection using nvidia-smi
Implement a placeholder module for AMD GPU detection using rocm-smi
Research and implement Vulkan-based VRAM detection as a fallback method

5. Hardware Fallback
Task 5.1: Implement fallback logic

Create a HardwareFallbackManager class to handle fallback scenarios
Implement logic to fall back to CPU if GPU inference fails
Implement detailed error logging for hardware-related failures
Create clear, user-friendly error messages for terminal output

Task 5.2: Implement RAM check for CPU fallback

Add a check for available RAM before falling back to CPU
Implement appropriate error handling and user notification if insufficient RAM is available

Additional Tasks
Task 6.1: Documentation

Create comprehensive documentation for the new hardware management features
Include examples and use cases in the documentation

Task 6.2: Testing

Develop unit tests for each new function and class
Create integration tests to ensure proper interaction between hardware detection, activation, and engine initialization

@nguyenhoangthuan99 This is well drafted. I have a few clarifications
1. Hardware Detection

I agree with this direction
Out of curiosity, why are we detecting monitors? (how is this relevant?)

2. Hardware Activation
We should specify that Cortex by default activates all hardware compute units, as part of setup/installation.
Will we need to define Hardware as a individual compute unit (e.g. compute + RAM?)

CPUs (+ RAM)
GPUs (+ VRAM)

There are some open questions on my side:

Can the CPU + RAM ever be deactivated?

3. Hardware -> Engines Integration
We may need to specify the logic if there are multiple active GPUs

e.g. which GPU has priority (e.g. Nvidia preferred, biggest capacity)
We should pick a smart default, as it will greatly improve user experience

1. Hardware Detection
We need to gather comprehensive hardware information for debugging, including CPU, GPU, RAM, OS, and connected monitors (as issues like projector connections have been known to impact performance).
As Louis mentioned earlier, when using GPUs to render high-resolution content, high-frequency monitors can also affect GPU performance. Monitors are an additional hardware component that could impact performance, so we should notify users about this.
2. Hardware Activation
In my opinion, we should only allow activation of GPUs (or NPUs in the future when Cortex supports them). CPUs and RAM are always used to save and process buffers, even if we offload everything to the GPU.
3. Hardware -> Engines Integration
This part should fall back to the Model Compatibility API. Choosing which hardware to run depends mostly on the model, not just the engines. The best scenario, I think, would be to have a threshold for available VRAM (e.g., 3GB, 4GB, etc., depending on which model to run). Among activated hardware, we should choose the ones that have enough available VRAM. If more than one GPU is suitable, prefer NVIDIA GPUs.
Can cortex run and cortex model start take in hardware params?
I believe we have to implement this and provide an API for it. This is an important feature that makes Cortex more dynamic, eliminating the need to manually set environment variables. This API should, like hardware activation, only allow running with GPU (and NPU). However, it will require users to set hardware of the same type in a list (e.g., only NVIDIA GPUs).
Model Compatibility
Model compatibility will depend on activated hardware. Here are some ideas:
If users don't specify which hardware to use, we can choose hardware by:

Ensuring the model can offload at least 30% of NGLs (Neural Graph Layers)
Running the model on the most powerful hardware: NVIDIA > AMD > (NPU) > CPU. If criterion 1 cannot be satisfied, fall back to the next available option. CPU will be the last option.

If users specify hardware:
Calculate NGLs and context length to fit that hardware and return recommendations.

Marking as complete. Implementation epic: #1568


Cache expiration recommendations

It is easy to implement cache expiration on top of fastcache by caching values with marshaled deadlines and verifying deadlines after reading these values from the cache.

While I completely agree with this statement, this only handles "cache hit" expiration. How would you recommend implementing a scheduler, that cleans up the cache once in a while?
The main issue is that I don't see a way to "iterate over all cache keys", neither a way to "delete all by value" (e.g. by expiration) in order to implement this.
Currently, it seems that the only possible way to achieve this is by creating an additional data structure (e.g. thread-safe map[string]int with tokenKey -> expirationVal or reversed, map[int][]string with expirationKey -> []tokenVal) in order to have some sort of iteration over keys / expirations.
However, this adds extra complexity (has to be kept in sync, so basically holding a cache for another cache) and memory (duplicating the keys), especially in cases with large keys (I'm using ~1000 char JWTs as keys, no need for value in this scenario, just expiration, which is usually quite big, e.g up to 24 hours).
@valyala Looking forward to hear you take on this, I would really like to use fastcache in our products.

There is much simpler approach - to maintain two caches and swap them periodically while resetting the oldest one. This approach is used by VictoriaMetrics - see https://github.com/VictoriaMetrics/VictoriaMetrics/blob/7d73623c6989a27a297358453a963d75c4ceedc1/lib/workingsetcache/cache.go

I pretty much went for Ristretto, due to its broad feature set.
However, I think it would be nice to have a way to iterate over cached keys. This would enable various flows, but not sure how it fits on fastcache's roadmap. Would it make sense to open a Feature request?
Thanks!

I think it would be nice to have a way to iterate over cached keys. This would enable various flows, but not sure how this fits on fastcache's roadmap. Would it make sense to open a Feature request?

@bogdanciuca , there is a pull request for this - see https://github.com/VictoriaMetrics/fastcache/pull/3

I see it has not been merged because of performance issues and you previously recommended forking. Is there no other solution to have this functionality in fastcache?

There were no clear needs for visiting all the cache entries since the #3 has been proposed, so it is unlikely it will be merged soon.
Could you share practical use cases for this solution? Probably there are better solutions for some of them.

I'll revisit our use cases and share some.

@valyala So I ended up dropping ristretto due to slow sets and switched to bigcache (need for TTL, even though it's not customisable per entry, still a good tradeoff).
So now I have a Cache interface, implemented by 2 cache types, one based on fastcache and the other based on bigcache. I'm using fastcache for persistent data types and bigcache for data types that require a TTL (which varies per data type, e.g. 1min, 5min, 24h).
So I guess my point here is that I could've used just fastcache, if there would've been a TTL feature, which is quite a must for caches. Any suggestions?


[Uninstalling MI][macos] Doc should be corrected

Description:
Document: https://ei.docs.wso2.com/en/latest/micro-integrator/setup/installation/install_in_vm/
The command to uninstall in macOS should be updated as follow.
sudo bash /Library/WSO2/EnterpriseIntegrator/7.0.1/uninstall.sh

Fixed.
Since the current version is 7.0.2, the following URL was used: sudo bash /Library/WSO2/EnterpriseIntegrator/7.0.2/uninstall.sh
[1] https://github.com/wso2/docs-ei/pull/1474/files


ExpiryPolicy combining expiry after modification and after access

A good question popped up in Stack Overflow:
http://stackoverflow.com/questions/37329076/how-to-configure-apache-ignite-cache-with-multiple-expiry-policies
As I understand it, there is no way to combine two expiry concepts. Whenever a ExpiryPolicy method returns a non null duration the previous expiry duration will be reset. The way it is designed there is only a single expiry duration.
This is non obvious for the user and many people will fall into this.
Should we add some clarification?
What is the background of the current design?
It seems to me that often people want to mix TTL and TTI, and it is actually rare that people want TTI alone. Is TTI only really useful? Thoughts?

Probably some clarification is useful. Need a little bit more input here.


Examples of connecting js-ipld to a local IPFS node?

Hi, thanks for this library!  I am trying to get started with IPLD, basic reading and writing to the network....  Is there a code sample that shows how to connect to a local node, write data, and read data?  Also, is there a way to set up IPLD schemas to constrain the shape of the objects being written?

Hi @jeffkhull. The JavaScript implementation of IPLD encountered a lot of changes over the past year and we are moving towards smaller building blocks that concentrate on the core of IPLD, e.g. codecs. The "new hot stuff" is currently here: https://github.com/multiformats/js-multiformats
You would then use those building blocks and assemble them as you need. In your case it could be something like you use js-multiformats to encode your data and then use the IPFS Block API to actually store it in IPFS.
In regards to IPLD Schema validation, your best bet is https://github.com/rvagg/js-ipld-schema-validator, though I don't know how up to date it is (it worked for me last time I used it though).
I currently work on getting js-ipfs-unixfs to use the new js-multiformats stuff, so for you it might be helpful at looking at the code changes (especially the tests) I've done here: https://github.com/ipfs/js-ipfs-unixfs/pull/116

Hey @vmx , thanks for the above info.  I have been researching and trying out various libraries for a "simple" way to interact with IPFS using ipld schemas, and so far a combination of ipfs-http-client and ipld-schema seems to do the trick, at least for immutable data.
The next challenge I need to figure out is how to allow "entities" in the linked data graph to be mutable.  So that people can edit entity content like wikipedia, and add links to other entities, I think I need immutability.  However, I have no idea how to do this.  I see "mutable filesystem (MFS)" on the IPFS docs pages, but I'm not sure if this is the right solution or not.  As you are of course much more familiar with these technologies than I am, I was wondering if you might point me in the right direction for libraries I can use to mutate nodes in a linked data graph, yet preserve links to other data?

@jeffkhull you can decode the blocks, manipulate the decoded data manually (directly in JS) and then encode and store them again.
Though, is what you are asking for about also updating blocks that depend of each other? Let's say you have a link from block A to block B. Now you manipulate block B, let's call the manipulated one C. Of course the CID of B and C is different. Do you now want block A to automatically point to C?

Hey @vmx, yes exactly, A would need to then automatically point to C.  I was just reading about IPNS... would using IPNS to resolve entities be the answer?


Issue #57 | Fix for saving the correct IP address of customers

Summary.
Implement a custom Plug (ChatApiWeb.IPAddressPlug) in the request pipeline to extract the value of the  x-forwarded-for header (when present) when Phoenix is running behind a reverse proxy (like is the case with Cloudflare, Heroku etc).
This implementation supports both IPv4 and IPv6 IP addresses. I looked into the solution at https://www.cogini.com/blog/getting-the-client-public-ip-address-in-phoenix/ but refrained from using too much logic from there as it (1) wasn't the most idiomatic Elixir code and (2) only seemed to work with IPv4 addresses.
Given this Plug runs on every request, extra consideration was made for performance and security (i.e. guarding against possible ForkBomb attacks with large x-forwarded-for values).
Tests accompany this PR covering both "happy" and "unhappy" code paths. The implementation has been tested both locally and on a PR environment in Heroku:

Ticket Link.
Fixes: https://github.com/papercups-io/papercups/issues/57

@reichert621 I'd be keen to hear your thoughts on this approach

thanks so much for the quick turnaround on this @henrymori, looks great! (one of your commits also reminded me that we need to sort out the setup with asdf this week 😅)
hope you'll contribute more in the future!

@reichert621 My pleasure! Was definitely fun to work on this PR :) I'd also be happy to help with asdf, CI setup and a proposal for geocoding (which I'm also happy to tackle!). I'll follow up with separate GH issues 👍

that would be amazing! we already had someone submit a PR for the asdf setup a few weeks ago: https://github.com/papercups-io/papercups/pull/82 feel free to review it! (we ended up moving our dev setup docs into our wiki, so I was planning on just copying over whatever I can from that PR into our wiki or something like that)


1.2.0 release build is missing

Dear @sibson,
There is not the 1.2.0 release build, it is normal?

https://github.com/sibson/vncdotool/releases
https://github.com/sibson/vncdotool/tags

Thanks in advance.

thanks for pointing out.  pypi is the authoritative source and github releases aren't automated so I forgot.  I've created one now but not sure I will continue doing so in future.

@sibson: In this case, you can remove all releases from here (and keep only tags):

https://github.com/sibson/vncdotool/releases


[MM-18579] add transition to about, team members, settings modal closing

Summary
Add animatin transition  when hiding the following modals:

about
team settings
manage team members

Ticket Link
MM-18579

Creating a new SpinWick test server using Mattermost Cloud.

Mattermost test server created! :tada:
Access here: https://mattermost-webapp-pr-3929.test.mattermost.cloud

Account Type
Username
Password

Admin
sysadmin
Sys@dmin123

User
user-1
User-1@123

@Willyfrog Checked out the deployed server and looks good to me. Could you add a test for team_settings_modal? That looks to be the only one without one, unless there's a reason why not to.

no, the only reason is that I only modified the failing ones, but having an extra one is not a bad idea. Thanks!

New commit detected. SpinWick will upgrade if the updated docker image is available.

Mattermost test server updated with git commit 8e4a0bba22d0e70c4eb0be0f850ecf4eb63185f5.
Access here: https://mattermost-webapp-pr-3929.test.mattermost.cloud

Test server destroyed


Add a line break before note about help in REPL

This moves the line about :help when you start a REPL to its own line, as it hasn't been visible for everyone (as noted in https://forums.swift.org/t/repl-ergonomics/14347/10).

@swift-ci Please test

GitHub seems to be diffing this against the wrong commit — going to try again


Pitching and bearing programmatically

Is there any way to add pitching or bearing to the map programmatically?

I'm trying to achieve this too!

+1

https://github.com/react-community/react-native-maps/blob/master/docs/mapview.md#methods
animateToBearing animateToViewingAngle


iOS PATCH method removes body

I'm using fetch-blob "fetch" polyfill.
When executing the following code in iOS, my server receives empty req.body:
fetch('http://myServer.com/test', {method: 'PATCH', body: {test: 1234}});
when I use POST, it's working fine.
versions
react-native: 0.42.3
react-native-fetch-blob: 0.10.4

false alarm. it was react-native-debugger.

https://github.com/jhen0409/react-native-debugger/issues/60 I confirmed it not related to debug mode, should reopen this?

I'm opening. Thx!

The PR already merged 👍  you can now install the package from branch issue-306.


"Found new dockercfg" secret false positive

This could be false positive if this was the secret restored from the backup.
https://github.com/openshift/openshift-velero-plugin/blob/c934b2dae2706b5bf8b66bc0b46ac20341287efb/velero-plugins/pod/restore.go#L172-L176
It could be the secret with the right name but for a wrong serviceAccount UID.
Example scenario:
kind: ServiceAccount
apiVersion: v1
metadata:
  name: default
  namespace: mongo-persistent
  uid: 527ee6d5-64f1-47fb-8746-1465db437f2b
  resourceVersion: '25284909'
  creationTimestamp: '2023-03-17T22:01:06Z'
secrets:
  - name: default-dockercfg-8s22k
imagePullSecrets:
  - name: default-dockercfg-8s22k

This namespace have two secrets
kind: Secret
apiVersion: v1
metadata:
  name: default-dockercfg-8s22k
  namespace: mongo-persistent
  uid: ac1efa1b-9f48-43c9-a48d-fe74fa5e049a
  resourceVersion: '25284906'
  creationTimestamp: '2023-03-17T22:01:06Z'
  annotations:
    kubernetes.io/service-account.name: default
    kubernetes.io/service-account.uid: 527ee6d5-64f1-47fb-8746-1465db437f2b
  ownerReferences:
    - apiVersion: v1
      kind: Secret
      name: default-token-ssbq8
      uid: 6b78a234-9ad1-4322-b7a4-8f8f6edc6de2
      controller: true
      blockOwnerDeletion: false

and
kind: Secret
apiVersion: v1
metadata:
  name: default-dockercfg-wnhzz
  namespace: mongo-persistent
  uid: 7c564686-1795-409c-b31c-cb0791c837d3
  resourceVersion: '25284956'
  creationTimestamp: '2023-03-17T22:01:06Z'
  labels:
    velero.io/backup-name: mongo-restic-e2e-e60359d6-c50e-11ed-9130-1acc26a6847f
    velero.io/restore-name: mongo-restic-e2e-e6035e7c-c50e-11ed-9130-1acc26a6847f
  annotations:
    kubernetes.io/service-account.name: default
    kubernetes.io/service-account.uid: c9219594-7956-4967-9234-4caaab2db8be

Only the first secret would actually work for the serviceaccount named default in the namespace mongo-persistent as it has the correct uid annotation.
    kubernetes.io/service-account.uid: 527ee6d5-64f1-47fb-8746-1465db437f2b
Closing this issue may close https://github.com/openshift/oadp-operator/issues/925

TLDR we need to check each secret in the secretList has matching UID as the expected service accounts that will use them.
https://github.com/openshift/openshift-velero-plugin/blob/4d55378a6c7d9f0df9aeba1a108af86b2816d46e/velero-plugins/common/util.go#L121-L132


File Uploading From User Stopped Working on Slack

Bot Info

SDK Platform: Node.js
SDK Version: Bot Service (Bot Channels Registration)
Active Channels: Slack
Deployment Environment: Azure Bot Service

Issue Description
Our production version file uploading suddenly stopped accepting file on Slack.  This is a critical issue on our production server used by live users.
It was working just file, but it suddenly does not accept files from users anymore.  The "attachments" parameter is now just an empty array.  We can tell it is a bug because if no file is uploaded, the "attachments" variable would be null, when we upload a file from Slack, attachments will be an empty array.
We are using Node.js
Code Example
// This is part of our code that check for attachment, it would print:
// ! Hash Attachments: []
// ! No File
// This show us that attachments is not null but is an empty array
static hasAttachment(req) {
    console.error("!! Checking for attachments");
    if (!util_1.isNullOrUndefined(req.body) && !util_1.isNullOrUndefined(req.body.attachments)) {
        console.error("!! Has Attachments: "+JSON.stringify(req.body));
        if (req.body.attachments.length > 0) {
            console.error("! Has File");
            return true;
        }
        else {
            console.error("! No File");
            return false;
        }
    }
    else{
        console.error("! No File");
        return false;
    }
}

Reproduction Steps

Log on Slack Bot
upload a File
No File is uploaded

Expected Behavior
The uploaded file information to be in the "attachments" field
Actual Results
No file upload information in the attachments field.

Hi @byu-apttus-com, I'm looking into this issue and will reach back to you shortly with questions.

Sounds good, thank you.
APTTUS | Bill (Yongke Yu)
From: Steven Kanberg<EMAIL_ADDRESS>Sent: Thursday, August 2, 2018 10:28 AM
To: Microsoft/BotBuilder<EMAIL_ADDRESS>Cc: Bill Yu<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [Microsoft/BotBuilder] File Uploading From User Stopped Working on Slack (#4909)
Hi @byu-apttus-comhttps://github.com/byu-apttus-com, I'm looking into this issue and will reach back to you shortly with questions.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/Microsoft/BotBuilder/issues/4909#issuecomment-410005414, or mute the threadhttps://github.com/notifications/unsubscribe-auth/An3teCJBfcjZzxqGH6g7UR41CLvyaWThks5uMzaJgaJpZM4Vkxrk.

Hi Stevkan
I also opened a premier support ticket from Microsoft, here is the ticket number:<PHONE_NUMBER>73522.

It looks like a fix is being applied via your support ticket. I will monitor this issue for the time being and close once I see it is completed.

Closing as resolved.


Test connection multiplexing across multiple servers and clients

Specification
We need to create tests that create an arbitrary number of connections across an arbitrary number of servers and clients.
The ultimate goal is to test that connection multiplexing and that connections function properly when run concurrently.
All the tests should be sending at least 1 stream of random data
Additional context

Related #1

Tasks

[x] 1. Multiple clients connecting to a single server.
[x] 2.
[ ] 3. Clients sharing socket with server.
[ ] 4. Random assortment of clients and servers communicating with each other.

QUICSocket.registerClient is a function that isn't implemented yet. What is it for? Do we need to track what clients are using the socket? I suppose we'd need it if stopping the socket cleans up anything using it such as the server and clients.
Thoughts @CMCDragonkai ?

Yes you need to be able to keep track of clients too. You have to track all clients and servers of a given socket...

Lifecycle rules too.

So far for any tests on the connection level were I need to test a connection to a server I've been putting them in the QUICClient.test.ts test file. This file is getting pretty large, I may want to split it up into files that test certain aspects. Such as the server/client concurrency testing.

You can separate it with QUICClient.X.test.ts. Where X are the different variants.

Destroying a connection might be hanging if no streams were created. It might be test specific, I'll need to dig into this.

Found a bug. In certain scenarios client streams are not fulling cleaning up when they are meant to be ended. This is similar to the previous one I fixed where streams are not listed as readable or writable after they have finished. This means we are not checking them after the last state change. Previously this was fixed by adding streams to a short list to be checked when destroying.
The problem here however is that we're not entering the destroying state, we're waiting for the readable side to end during normal operation. So the previous fix to the logic doesn't apply here.
I think given this we need to check all active streams indiscriminately. This means an O(n) loop every time we receive data on a connection. This is frustratingly not ideal from a performance perspective but it's still linear time so not the end of the world.

Notably, the examples don't maintain state for the streams. but it does for the connections. Every time the socket receives a packet, it handles the packet and processes any events on the streams, readable and writable.
After processing all incoming packets, it process all clients for outgoing packets, then checks all clients again if they have closed so it can clean them up.
I think that means the only solution here is to check every active stream for a state change after we process a recv for that connection. but we still need to check the readable list for new streams.
The available methods here for processing events are fine for the example since it processes reads and write statelessly. if the stream has ended then we're just not processing them as part of the readable or writable list.
Ultimately the solution here is to process the readable list so we can create state for new streams. We can then iterate over all the existing streams checking if they're writable and process any state changes.
There is an unknown here. If the stream has ended with a shutdown before any data was sent to create remote state. Is that stream considered readable? Would state for it be created? Do we care if it isn't?
Anyway, changes to be made include...

for a recv call for a connection, we need to iterate over all the readables to create state for the streams, process any recv stream data.
after that we need to iterate over over all existing connections processing the isWritable(), check the status of the readable and writable state and trigger any state change for the QUICStream.
I need to double check some expected logic. What does the stream state look like for a stream that was destroyed before any data was sent. That would look like a STREAM_RESET event for the readable. Would that stream be readable at all? would we create state for it? would there be anything to process?

I'm just confused now. I've made changes so that after every receive and send event we check the state for every existing stream. So we shouldn't be missing any state changes now.
I can see one side sending the fin frame in all cases. But some times for no reason I can tell, the receiving side never sees this finish frame? weather this happens at all can be very random.
Assuming all packets are being properly sent and processed then I have no idea why this is still happening.

I'm going to take a step back from this for a little bit and focus on some of the other issues. Some solutions may come while I mull it over.

This sounds pretty similar to my problem.
https://github.com/cloudflare/quiche/issues/740

Posted an upstream issue https://github.com/cloudflare/quiche/issues/1507

Things to try:

Log out isFinished and error message for the stream. Indicate clearly that the stream is not finishing.
try to serialise the streams starting and ending in stages and isolate if its a concurrency problem.

Here's some ideas as to how to debug this.
We need to use stream_finished to confirm to us whether the stream is in fact finished or not. Here's an example:
      // THIS WILL BE TRUE IF fin or RESET_STREAM
      // Either graceful or errored
      console.log(
        'STREAM RECV GRACEFUL OR ERROR',
        this.streamId,
        this.conn.streamFinished(this.streamId)
      );

We should do this after calling this.conn.streamRecv(this.streamId, buf);.
This just confirms to us even if we get an exception, whether the stream is really finished.
Next thing is to do a more controlled test.
Setup your 2 servers with many clients. Maybe reduce this to lots of clients to 1 server.
 Then sequentially start closing the streams. On each step, check if the stream is finished on the other side. Then also consider doing it in batches, like 2 by 2, 3 by 3, 50 by 50...  so on.
We need to ensure that it's not our code that's causing the problem.

1 client with a lot of streams to 1 server.
Many clients with each 1 stream to the 1 server.
Many clients with multiple streams to 1 server.

Choose only 1 side to close the stream. Just close it on the client side. Reduce the amount of randomness.
@tegefaulkes your current theory is that when the client closes the stream, instead of the server receiving a fin, it ends just up throwing an exception as Done. This is what we want to prove. To do this we must reduce randomness, and just sequentially or batching up the closes on the client until we see a problem.
If client side doesn't resolve in this problem, then do it on the server side.

Found a new oddity. When the problem happens, we're not receiving ALL of the messages but only when the problem happens. Running tests with low congestion does not have this problem.
this is VERY odd. a quiche stream is meant to maintain data integrity. So is the problem happening between the quiche stream and our QUICStream? But this partially explains the problem. If we're loosing random messages then we're randomly loosing our finish message.
I'll dig into this further and post my other observations in a moment.

Make sure you're testing with 64 bytes and 64 bytes. There's no equivalence on the number of stream writes and stream reads. Use buffer comparison instead.

Notes:

For 1 stream with large amount of messages: I could not trigger the problem
For many streams, 1 message:

100 streams, all streams clean up but client fails to clean up?
The client connection is pretty consistently not cleaning up at about 100 streams.
200 streams and the server connection doesn't clean up.

20 streams, 20 messages ea:

Seems to work fine.

40 streams, 20 messages EA:

Looks like i'm triggering it.

We're not actually receiving all messages? How does that work?
We're not actually testing that all data sent is all data received. Not thoroughly.
Confirmed, we're missing bytes on the receiving end, need to check which ones now.

The missing bytes are always at the end of the messages sent.
I was expecting the message with the fin frame to be empty. but during congestion this is not the case, the final packet can contain part of the message. This is a simple fix, I just wasn't writing the  message with the fin frame to the stream.
That may be part of the problem but it doesn't explain the streams not cleaning up. I'm still digging.

Ok, things are fixed up so that I can see all of the data is being sent and receive.
In one example with the stream closing problem I can see the following.

fin frame is being sent for the stream
the stream receives all 100 expected bytes but not the fin frame.
Other streams have the fin frame sent, processed and stream cleaned up all after the one bad stream. This implies the packet with the frame is sent before these and processed.
During this time there are plenty attempts to read the bad stream, this should've processed the fin frame or stream error in this time.

So after fixing the missing data, we're back to the original problem.

If I send some data along with the fin frame, in this case !END!, I can't seem to trigger the problem even after doubling the number of streams. I can't really say for certain that this is a fix though.
You mentioned https://github.com/cloudflare/quiche/commit/cc98af06cb1240fb1b1be3557166ca443b1d8653 where they patched the quiche code to allow 0 buffer fin frames to be sent.
It's possible they missed an edge case where they're not sending or processing a fin frame. I think I can verify this pretty easily if I can modify the quiche source code with some debug outputs.
If including data within the fin frame does prevent the problem, then that is a stop gap solution where we provide an finish message and remove it on the receiving side.

I'm reasonably sure that adding data to the finish message is a stop-gap fix for this. That means I can move forward with fixing the tests and resolving this issue.
There is still an underlying problem that needs to be investigated. A reproducible example found and an issue posted upstream.
For the sake of book keeping I'll complete this issue and create a new issue for tracking and working on the remaining problem.

Did you post upstream?

Also use a single null byte if you need to do that.

Give me a reproducible rust example to post upstream before closing this issue. We can use the temporary fix for now but upstream issue should be posted.

I haven't posted upstream yet, I need to create a rust example first.
I'll make it a null byte.
I will split out the problem into a new issue. This one is still technically for concurrency testing and can be finished with the temp fix.

Almost ready to merge changes. Just need to clean up commit history.
After that I'll create a new issue for tracking the fin frame/stream clean up problem and start of the reproducible rust example and the upstream issue.

New issue created at #20 for tracking the remaining problem

Merged this into master now, resolving.
I'll start on the remaining problem #20 now.


Operator that executes after subscribe

It would be great if we have an operator that executes after subscribe. Having subscribe as the last function to be executed among all operators produces some restrictions :
Exemple :

foo is a function in class A that calls subscribe.
classes that inherits from this class need to define some specific post processing logic after foo  subscribe is executed.

Having such an operators allows doing this (which is not possible right now) :
Class A{

    foo(){
     this.http.subscribe(res=>{
        // do something
     })
    }
}

Class Aa extends A{
    constructor() { super(); }
    foo(){
       super.foo().wantedOperator(param=>{
       // do something after subscribe is executed
    })
    }
}

Since subscribe is executed immediately, all you'd need to do is compose some code right after:
class Aa extends A {
  foo() {
    super.foo();
    // subscribe is done being called at this point, execute whatever you like here.
  }
}

this will not wait for foo to finish since it's async

If foo is async it has no place in subscribe and should be placed inside a mergeMap or one of the other operators that can handle async calls.


/usrr/bi/python exited with code 1

Hi sorry to bother you so much but i have no luck with nvim-starter-kit and this is on ubuntu
nothing goes right pip is not working inside the nvim like pip install neovim, pip install isort etc
give me an error,  something else if would be nice to make user lua would be much ease to add plugins without breaking the system. else would you mind to make nvim-starter-kit for mac?

Hi, what version of Neovim are you using?  Also, did you follow all of the instructions in the original starter kit video?  Did you run :checkhealth and fix any errors you found?  Did you update the python location to python3?  If pip install is not working then there are bigger problems beyond Neovim.  Do you have python3 and pip added to your PATH?
Neovim is not an IDE out of the box.  To get it to be an IDE takes a decent amount of configuration and troubleshooting but for me that is the fun part.
I noticed you have a bunch of other open issues.  Have any of those been resolved?  If so please close them.

i appreciate your help . it was a pleasure.


Added LMDB

Fixes #385.
See also #442.

Hi @willyd, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
The agreement was validated by Microsoft and real humans are currently evaluating your PR.
TTYL, MSBOT;

I applied the requested changes, rebased on master and squashed to one commit. Ready for review.

Looks good. Thanks!

The lmdb port is currently putting both lmdb.h and midl.h directly in the installed/include directory. Putting lmdb.h there is fine since that's clearly in lmdb's namespace, but maybe not for midl.h. Seems to me that determining the owner of midl.h is confusing at best and a collision problem at worst.


[task] - Add the data generator to the docker-compose file

Description of the task
Add the data generator to the docker-compose file

Closing as already merged


Android: return from task with Exception that was thrown during file picking

This PR passes any Exception during file picking to the user; the sample code in README.md documents this. Before that, the caller only got a null FileData object without knowing what happened; now the proper exception is thrown. Most of the time, the problem is that the user didn't add the proper permissions or didn't ask the user for the permission (e.g. Android 6.0). Now the error is transparent to the user.

I also added changes for iOS to the PR, so that exception are passed to the caller that awaits the PickFile() call. With this change users get potential errors and can look at them, and exceptions don't get eaten by Android's or iOS' UI thread.


Compile error - identifier undeclared

I’m having a compile issue in el2_dec_tlu_ctl.sv due to identifiers that are used before their declaration. One example:
Error-[IND] Identifier not declared
caliptra-rtl/src/riscv_core/veer_el2/rtl/dec/el2_dec_tlu_ctl.sv, 998
  Identifier 'CYCLEL' has not been declared yet. If this error is not
  expected, please check if you have set `default_nettype to none.

Possible fix: move the localparams to the top of the file:
d82d5b9d25104aad1a30d3a935aa70a5b918248e


Fix panic when turning off use_cache

The main problem with the old code was that all of the cache RefCells
were held for too long because of the huge scope of the fuzzy
function. The problem was already solved by just wrapping some of the
code with an extra scope { + }. However I chose to refactor a bit
and split the old function into 3 new ones:

simple_match - was already there
sophisticated_match - basically the else case of simple_match
fuzzy_inner - a function just for the control flow of the other
function. This also handles the cache invalidation

This should supersede the pull request https://github.com/lotabout/fuzzy-matcher/pull/20

Hi, could you please push an empty commit to trigger the CI ?

@LoricAndre Doesn't really seem to work

@RobWalt could you please fix the tests before we can review this ?

Then wait for a bit, we have some work on skim itself then we'll work on updating this repo and making sure everything looks alright, then you can rebase and we'll merge this
Sorry

No worries! Thanks for taking the time to review the pull request!


Ask for rename file on save (for new files)

New files (ex: Untitled-1) are saved in the filesystem without asking for the name. One can then right-click in the explorer to rename the file. This issue would improve this flow by automatically trigger the rename action on save (only for new files - on the first save).

This can be implemented by adding a new flag (ex: new, unsaved, virtual) to the editor that would allow the save action to know that the file don't exists and should/will be created.
CC @sehyod

Related: https://github.com/refstudio/refstudio/issues/405
I think we might want to adopt auto-save...will file an issue


stdenv: use command that doesn't exit non-zero

Motivation for this change
This is a PR in the series of stdenv shell improvements.
This current PR replaces a command that exits with a non-zero code on failure with one that does not.
The code is in my opinion a test semantic rather than an "exit on failure" one.
This change serves in enabling strict err exit at some point.
In the previous commit @zimbatm pointed that the semantics are a little different.
If the $hookName is a directory the semantics change. In my experience this cannot be possible, however this is something that will need to be verified with the hydra tests.
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Relase notes)

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

[ ] Fits CONTRIBUTING.md.

I'm not sure what the failure is on the tests. Maybe it's just a transient thing.

The failures appears to be
2021-07-23T12:31:38.5744656Z Errors while running CTest
2021-07-23T12:31:38.5770383Z make: *** [Makefile:126: test] Error 8
2021-07-23T12:31:38.6593610Z builder for '/nix/store/s5dm9vhx44sz965ccwb4q8xan8s5mzn2-aws-c-common-0.6.8.drv' failed with exit code 2
2021-07-23T12:31:38.6630851Z cannot build derivation '/nix/store/59b8wi04ai4apbk638qblxhm9b9xyl6p-aws-sdk-cpp-1.8.121.drv': 1 dependencies couldn't be built
2021-07-23T12:31:41.2115195Z building '/nix/store/w064yafzhw0apwpflf1lwwbr9al0nad3-brotli-1.0.9.drv'...
2021-07-23T12:31:41.2213371Z building '/nix/store/0qj5iqdxyi64xwgiwgf3ypz4r0z3yz29-nlohmann_json-3.9.1.drv'...
2021-07-23T12:31:41.2305852Z cannot build derivation '/nix/store/9xiy2hdxhqiiibb0y21wxb6qg1p6acrs-nix-2.3.14.drv': 1 dependencies couldn't be built
2021-07-23T12:31:41.2312217Z cannot build derivation '/nix/store/n5z2lgm8zv0q97vz7b1z6gmhrvnp2583-nixpkgs-release-checks.drv': 1 dependencies couldn't be built
2021-07-23T12:31:41.2413350Z error: build of '/nix/store/n5z2lgm8zv0q97vz7b1z6gmhrvnp2583-nixpkgs-release-checks.drv' failed
2021-07-23T12:31:41.2455710Z ##[error]Process completed with exit code 100.
2021-07-23T12:31:41.2572093Z Post job cleanup.
2021-07-23T12:31:41.5772807Z [command]/usr/bin/git version
2021-07-23T12:31:41.5865508Z git version 2.32.0
2021-07-23T12:31:41.5919795Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2021-07-23T12:31:41.5968411Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :
2021-07-23T12:31:41.6467729Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2021-07-23T12:31:41.6498723Z http.https://github.com/.extraheader
2021-07-23T12:31:41.6515394Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
2021-07-23T12:31:41.6556814Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :
2021-07-23T12:31:41.7077396Z Cleaning up orphan processes


Add SOLT token.

This is my first experiment with Solana token minting. Hope it works.Thank you.
"chainId": 101,
"address": "Cpevux1D4BzNyRS4FKx65Hhnj7KuLbixcJSs9ERTzh4A",
"symbol": "SOLT",
"name": "SolTorum",
"decimals": 9,
"logoURI": "https://imgur.com/a/o4EkOSA",
"tags": [
"Fantoken"

[x] I will not ping the Discord about this pull request.

Please provide the following information for your token.
Please include change to the src/tokens/solana.tokenlist.json file in the PR
At minimum each entry should have

Token Address:
Token Name:
Token Symbol:
Logo
Link to the official homepage of token:
Coingecko ID if available (https://www.coingecko.com/api/documentations/v3#/coins/get_coins__id_):

No website or links to the project


test: add end-to-end test for Kotlin-based step

#1417  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @krzema12 and the rest of your teammates on  Graphite

Merge activity

Apr 24, 5:57 PM EDT: @krzema12 started a stack merge that includes this pull request via Graphite.


Exception has thrown on the Query/Include when entity model has two different result columns of the same type

When model has two different result columns of the same type, NPoco is not able to generate the corresponding SQL command properly.
For example, Person entity has following columns:
public int HomeAddressId { get; set; }
public int WorkAddressId { get; set; }
which should have corresponding result columns of the same type:
[ResultColumn]
public Address HomeAddress { get; set; }
[ResultColumn]
public Address WorkAddress { get; set; }
When executing a query and trying to include a results for the two properties, an exception is thrown.
The SQL join command uses the same table alias for both of the  properties.
example of the join command:
_db.Query<Person>() .Include(x => x.HomeAddress, (person, homeAddress) => person.HomeAddressId == homeAddress.Id) .Include(x => x.WorkAddress, (person, workAddress) => person.WorkAddressId == workAddress.Id);

Hi
This is a known limitation unfortunately.
V3 will get around this but its still in alpha.
You are most welcome to try it out, and if you need further info leave a question here and checkout https://github.com/schotime/NPoco/wiki/Version-3
Cheers

Hi,
Thank you on the info.
We shall do workaround with current version and will wait for the V3 release.
Kind Regards,
Jovica

V3 released ;)


Config persistence across restarts

First of all, thank you for a great tool! Exactly what I was looking for
Is your feature request related to a problem? Please describe.
If I restart / lose my container, the configuration of all my instances is gone.
That's why I'd like to persist all my configs in a volume. Is there a way of doing so or the config is not stored on the file system?
Describe the solution you'd like
A path to mount into a docker container to store the configuration files in there

@smnbbrv Hi,
Thanks for your love!
The meilisearch-ui store all instances' config data inside your browser (localStorage) now, so the instance config data will be reserved if you are using the same url (domain+port) to access meilisearch-ui.


add sync::OnceExt and sync::OnceLockExt traits

Related to #4513, #4671
It turns out that within our test suite the racy behaviour of GILOnceCell is already problematic on GIL-enabled builds, and is just waiting for additional GIL switches to bait out problems 😬. In particular in test_declarative_module we have a race which might attempt to create a module twice; we explicitly forbid this because we don't support subinterpreters.
This PR introduces pyo3::sync::OnceExt, which adds helper methods to std::sync::Once which avoid deadlocking with the GIL by releasing if necessary before blocking.
This solves the issue with test_declarative_module by using the Once to guarantee we only ever create the module once.
I think we should document this in the FAQ and freethreading guides, and probably this is good justification for getting #4513 and maybe also some OnceCellExt traits into 0.23. cc @ngoldbaum, I guess this would delay the release by a few days.

I guess this would delay the release by a few days

That's OK. Single-initialization comes up a lot so we should take our time and get it right.
I also want to add a section to the guide about how to use threads from both Python and rust and how free-threading changes things. I may expand the existing parallelism docs if needed.

I looked at including OnceLockExt in this PR as well and I got a fair bit of the way through that (see https://github.com/ngoldbaum/pyo3/commit/f0eb7e07f2aa3598e6f18a8a26703fd32d9a1df3, feel free to pull that and use it if you want) but realized we don't have a way to conditionally compile based on the rust compiler version, so maybe we need to bump the MSRV? Or is there a way to account for the fact that the MSRV doesn't have OnceLock?

but realized we don't have a way to conditionally compile based on the rust compiler version

We do? https://github.com/PyO3/pyo3/blob/main/pyo3-build-config/src/lib.rs#L138

Sorry, missed that! Thanks for the link.

We do?

I think I did it right, but clippy complains that I'm using features that aren't in the MSRV. OK to ignore that or did I mess something up?

We do?

I think I did it right, but clippy complains that I'm using features that aren't in the MSRV. OK to ignore that or did I mess something up?

That's annoying. You can set it to allow here: https://github.com/PyO3/pyo3/blob/main/Cargo.toml#L153

I just locally ignored it, I still think that clippy lint is useful and it doesn't look like we use features that aren't in the MSRV very often.

Thanks, this looks great to me! I simplified the Guard type a little (think the option no longer needed), and corrected a couple docs typos. Will merge!

The new tests that use threads need to be skipped on emscripten.


AKS OSSKU supports Windows options

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

Note
Refer to preview PR: #18706
Changelog
Add a changelog entry for this PR by answering the following questions:

What's the purpose of the update?

[ ] new service onboarding
[ ] new API version
[x] 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.
2022 September.
When do you expect to publish the swagger? Please provide date or, the the date is not yet available, the month.
As soon as possible.
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
[x] CLI
[ ] Terraform
[ ] No refresh required for updates in this PR

Contribution checklist:

[x] I commit to follow the Breaking Change Policy of "no breaking changes"
[x] I have reviewed the documentation for the workflow.
[x] 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.

[x] 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.

Could you help to review this PR? Thank you @AbelHu @FumingZhang

See previous PR #18706 in preview API 2022-04-02-preview.

Could you help to review this PR? Thank you @palma21 @matthchr

@leni-msft Could you help to merge this PR? Thank you.


checksum algorithm on presigned url ignored

Type: Bug
Component:
"S3"
Describe the bug
I'm trying to create PUT presigned url` in order to send them to the client and client makes the upload to my S3 bucket.
My S3 is configured to send PutObejct events to an SQS. Then, I need to get the checksum of uploaded file in order to store the checksum into my database.
I'm trying to create a put presigned_url with this code:
public URL generatePushResourceLocation(DocumentId documentId, String contentMD5) {
	ObjectMetadata objectMetadata = ObjectMetadata.builder().checksumAlgorithm(ChecksumAlgorithm.SHA256).build();
	URL signedPutURL = s3Template.createSignedPutURL(this.bucket, key, Duration.ofMinutes(10), objectMetadata, null);

	return signedPutURL;
}

The generated url sample is like:

http://localstack.localhost:8000/espaidoc/9a6f8254-502b-4a44-b82a-5fb16022e8fd?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20240308T120347Z&X-Amz-SignedHeaders=host%3Bx-amz-sdk-checksum-algorithm&X-Amz-Expires=60&X-Amz-Credential=test%2F20240308%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=1df5154810a2b11136c9425333c139ac0a1c4d6537de2d372e74645be7ab22c3

As you can see, a x-amz-sdk-checksum-algorithm parameter is appended, but it's empty.
When I make the PUT using generated presigned url everything seems to work, but when I'm trying to get object attributes, I'm not getting any ChecksumSHA256:
$ aws s3api get-object-attributes --bucket $BUCKET_NAME --key $KEY --object-attributes "ObjectSize" "Checksum" | yq .
{
  "LastModified": "2024-03-08T12:05:24+00:00",
  "ObjectSize": 2333
}

I'm trying to simulate this behavior using cli:
$ aws s3api put-object --bucket $BUCKET_NAME --key $KEY --body pom.xml --checksum-algorithm SHA256 | yq .
{
  "ETag": "\"44a7a97ddff52b27557a39cb2983ae62\"",
  "ChecksumSHA256": "ZR6CNpjrGvQWPPkaHiAeTWm2La1ZZIHLjtrFaPjnaPc=",
  "ServerSideEncryption": "AES256"
}

Also, I'm able to get object attributes like:
$ aws s3api get-object-attributes --bucket $BUCKET_NAME --key $KEY --object-attributes "ObjectSize" "Checksum" | yq .
{
  "LastModified": "2024-03-08T12:01:16+00:00",
  "Checksum": {
    "ChecksumSHA256": "ZR6CNpjrGvQWPPkaHiAeTWm2La1ZZIHLjtrFaPjnaPc="
  },
  "ObjectSize": 2097
}

Isn't it able to set a checksum algorithm on presigned PUT url?

This is how AWS SDK behaves, but what i have missed is that x-amz-sdk-checksum-algorithm with proper value gets added to signedHeaders of PresignedPutObjectRequest, that we do not return from the S3Template. So this is indeed a problem, but there's at the moment no clear solution. I'd recommend to fallback to using directly SDK until it is fixed.


emptyTag doesn't behave as expected.

this is said in the docs:
emptyTag (default: ''): what will the value of empty nodes be. In case you want to use an empty object as a default value, it is better to provide a factory function () => ({}) instead. Without this function a plain object would become a shared reference across all occurrences with unwanted behavior.
      emptyTag: () => new Array(1, 2, 2, 2, 2),
      explicitRoot: true,
      explicitArray: false,
      mergeAttrs: true,
      preserveChildrenOrder: true,
      attrValueProcessors: [customParser],
      validator: () => {},
      includeWhiteChars: true,
    })```

The code above or any other function with a return of object, makes my converted tags disappear from the final JSON.
My node version is Node.js v16.15.0.

@Leonidas-from-XIV

The problem was typescript and i solved by ignoring it.
    const parser = new xml2js.Parser({
      //!!!! WARNING Non cancellare il ts-ignore qui sotto!!!!
      // @ts-ignore: Unreachable code error
      emptyTag: _emptyTag(),
      explicitRoot: false,
      explicitArray: false,
      mergeAttrs: true,
      preserveChildrenOrder: true,
      attrValueProcessors: [customParser],
      includeWhiteChars: true,
    })

where:
function _emptyTag() {
  return new Array()
}

The problem was caused by the fact that in the exporting file of the library:
export interface ParserOptions {
    attrkey?: string | undefined;
    charkey?: string | undefined;
    explicitCharkey?: boolean | undefined;
    trim?: boolean | undefined;
    normalizeTags?: boolean | undefined;
    normalize?: boolean | undefined;
    explicitRoot?: boolean | undefined;
    emptyTag?: (() => any) | string
    explicitArray?: boolean | undefined;
    ignoreAttrs?: boolean | undefined;
    mergeAttrs?: boolean | undefined;
    validator?: Function | undefined;
    xmlns?: boolean | undefined;
    explicitChildren?: boolean | undefined;
    childkey?: string | undefined;
    preserveChildrenOrder?: boolean | undefined;
    charsAsChildren?: boolean | undefined;
    includeWhiteChars?: boolean | undefined;
    async?: boolean | undefined;
    strict?: boolean | undefined;
    attrNameProcessors?: Array<(name: string) => any> | undefined;
    attrValueProcessors?: Array<(value: string, name: string) => any> | undefined;
    tagNameProcessors?: Array<(name: string) => any> | undefined;
    valueProcessors?: Array<(value: string, name: string) => any> | undefined;
    chunkSize?: number | undefined;
}

emptyTag is typed in this way:
    emptyTag?: (() => any) | string

but when using the function without calling it with parentheses it doesn't work as the library is not processing it. so the type ()=>any seems to be wrong.


doc | document mistake in Example Configuration.

Description

There is a document mistake in Example Configuration.
logbook:
  include:
    - /api/**
    - /actuator/**
  exclude:
    - /actuator/health
    - /api/admin/**
  filter.enabled: true
  secure-filter.enabled: true
  format.style: http
  strategy: body-only-if-status-at-least
  minimum-status: 400
  obfuscate:
    headers:
      - Authorization
      - X-Secret
    parameters:
      - access_token
      - password
    # Here is the mistake.
    write:
      chunk-size: 1000

Expected Behavior

logbook:
  obfuscate:
    headers:
      - Authorization
      - X-Secret
    parameters:
      - access_token
      - password
    # Here is the mistake.
  write:
    chunk-size: 1000

Fixed in #928. Thanks for reporting 📣

Fixed in #928. Thanks for reporting 📣


[Book] Examples for lock_free and task_local

#[lock_free] and #[task_local] need examples to clarify their usage https://rtic.rs/dev/book/en/by-example/resources.html#lock-free-resource-access-of-mutable-resources

after PRs #498 & #500 lock_free is covered in the book and the migration guide. An example is included in this repo's examples directory and it's covered in the book.
#[task_local] was removed before alpha.3 but task.locals are covered in the resources section of the book. Closing this issue as done.


Unhelpful error message if you omit --sdkdir when using sdk: and Pub

Pubspec.yaml:
dependencies:
  unittest:
    sdk: unittest
When run with:
pub install
Will generate:
~/tmp/pubsdk > pub install
Entry null is not a supported type.
It should say instead:
You specified that unittest is in the SDK, but you did not specify where to find the SDK. Use --sdkdir to specify the directory of the SDK and please try again.

This issue has been moved to dart-lang/pub#53.


Missing list of possible Properties for a connection

[Enter feedback here]

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

ID: 94c2c4be-f5ec-2ba5-95bd-3ed46cf7a4fb
Version Independent ID: fbbd166a-9b4c-900b-5600-8398242120d4
Content: ConnectionManager reference
Content Source: docs/linux/connectionmanager-reference.md
Product: visual-cpp
Technology: cpp-linux
GitHub Login: @TylerMSFT
Microsoft Alias: twhitney

@dmenendez-gruposantander  Can you clarify the scenario for the list of properties? list --properties provides the lists of properties for a connection, but these properties cannot be changed. However, there are some modifiable properties such as username, IsDefault, and shell.

I think I tried to use list --properties with no connections present.
I thought it might be helpful to have the list of properties explicitly listed in the documentation, so that you don't need to 1) add a connection and 2) list --properties, to get the list of properties.
To be honest, this was so long ago that I don't remember what I was trying to do, sorry for that.

Hi @dmenendez-gruposantander , I've added a list of common properties to the document, along with some examples of how to set them. Thank you for the suggestion. The doc updates should be live by end of day 3/16/2022


Added image downloader

Added feature for downloading images that are links.
Downloaded images are stored in an "images" folder.
Also added a simple progress bar for showing image download progress.

Thanks for the PR! I'll try to review it this week.


Custom map printing: printf() for maps

This ticket is to support custom ways to print maps. Perhaps by enhancing either print() or printf() or both.
Consider this one-liner, and how the output has extra new lines now and then:
# ./src/bpftrace -e 'tracepoint:sched:sched_process_fork { @ = count(); }
    interval:s:1 { printf("pids/sec: "); print(@); clear(@); }'
Attaching 2 probes...
pids/sec:
pids/sec:
pids/sec: @: 1

pids/sec:
pids/sec: @: 425

pids/sec: @: 1105

pids/sec: @: 1105

pids/sec: @: 746

pids/sec:
pids/sec:
pids/sec: @: 2

pids/sec:
pids/sec:
^C

The extra newlines are due to std::endl's in BPFtrace::print_map(), and its behavior when the map is unpopulated. There's also the "@" which is unnecessary to print in this case.
I might fix the newlines in a separate PR, but I can't remove the "@" or do other customizations. The following are suggestions for custom map printing.
Zero keys
Perhaps if the map has zero keys, it can be treated as the following types in printf():
A) integer == integer
B) string == string
C) count(), min(), max(), avg() == integer
(A) and (B) already work. Look:
# ./src/bpftrace -e 'BEGIN { @ = 42; } interval:s:1 { printf("pids/sec: %d\n", @); }'
Attaching 2 probes...
pids/sec: 42
pids/sec: 42
[...]
# ./src/bpftrace -e 'BEGIN { @ = "hi there"; } interval:s:1 { printf("pids/sec: %s\n", @); }'
Attaching 2 probes...
pids/sec: hi there
pids/sec: hi there
[...]

But (C) does not:
# bpftrace -e 'tracepoint:sched:sched_process_fork { @ = count(); }
    interval:s:1 { printf("pids/sec: %d\n", @); clear(@); }'
printf: %d specifier expects a value of type integer (count supplied)

I'd explore making this work. If a Type::count,min,max,avg map has zero keys, it can be printed as an integer in printf().
Note that multiple maps should also work, as they currently do for (A) and (B):
# ./src/bpftrace -e 'BEGIN { @a = 42; @b = "hi there"; }
    interval:s:1 { printf("test: %d %s\n", @a, @b); }'
Attaching 2 probes...
test: 42 hi there
test: 42 hi there

One or more keys
This may be supported in an additional PR. Since we're formatting the output, I'm tempted to make printf() work, and leave print() for printing things without extra formatting (or to print things with a default formatting).
Imagine this working (this is a mock up):
# bpftrace -e 'kprobe:do_nanosleep { @[pid, comm] = count(); }
END { printf("%6s %12s %s\n", "PID", "COMM", "SLEEPS"); printf("%6d %12s %d\n", @); }'
...
   PID        COMM SLEEPS
    81        sshd 5
   181        bash 15
   361         tar 162

Because @ was a multi-key map, it uses the format string for each key in the map. So bpftrace effectively expands @ to be key1, key2, integer:
printf("%6d %12s %d\n", @)
   ^ becomes:
printf("%6d %12s %d\n", key1, key2, integer);
   ^ for each key

The zero keys behavior I described would be desirable in other cases, such as, doing comparisons with count() maps. Eg:
# ./src/bpftrace -e 'kprobe:lookup_fast { @refs = count(); }
    interval:s:1 { printf("%d\n", @refs > 0 ? 1 : 0); }'
Type mismatch for '>': comparing 'count' with 'integer'

I would also use it for convenient formating in the END built-in probe.
# bpftrace -e 'tracepoint:syscalls:sys_enter_read { @ = count(); } END { printf("Count: %d", @); delete(@); }'

I have just realized that what we really need is a conversion to scalars because we might need to do some arithmetics before printing; Imagine you have a @max_latency = max($latency) collected in some probes and now, in END, interval or yet another probe, you want to printf("Maximum: %llu us\n", @max_latency / 1000. In many cases you may want to keep the values in default nanoseconds but print them in microseconds or milliseconds.

As an exercise to explore bpftrace, I translated one of my favorite systemtap scripts.  This turns out to be quick and easy.  The only noticeable difference is when printing the result map.  In my case sorting doesn't matter so much, but it would be friendlier to format an address key as hex.  Otherwise a good first experience, and far smoother than my introduction to systemtap was!
fyi. I'm working with bpftrace 0.8+git60-gccac69c2239b-2 from Debian 10 with Linux 5.10.0-0.bpo.4-amd64.


Client: Generated validator does not reference field

models/flat_pricing_component.go:774: m.priceExplanation undefined (type *FlatPricingComponent has no field or method priceExplanation, but does have PriceExplanation)
type FlatPricingComponent struct {
...
	priceExplanationField []string
...
}

Validator method is missing the Field at the end of the field it's referencing:
func (m *FlatPricingComponent) validatePriceExplanation(formats strfmt.Registry) error {

	for i := 0; i < len(m.PriceExplanation()); i++ {

		if err := validate.Required("priceExplanation"+"."+strconv.Itoa(i), "body", string(m.priceExplanation[i])); err != nil {
			return err
		}

	}

	return nil
}

fixed by 82666990b023f668ea6d7f4bfb3ffbcb7c95d3ac


Update dev dependencies

The failure is because of https://github.com/DefinitelyTyped/DefinitelyTyped/pull/64614, can be safely ignored


How to get App Catalog Site URL from a SPFx Web Part

From a SPFx Web Part, is there a way to get the tenant's app catalog site URL programmatically?
Category

[x] Question
[ ] Bug
[] Enhancement

Expected or Desired Behavior
Need a way to find the App Catalog site of the tenant programmatically from a Web Part.
Observed Behavior
Steps to Reproduce
Submission Guidelines
Thanks for your contribution! Sharing is caring.

This issue was moved to SharePoint/sp-dev-docs#2355

As this is a generic question, moving it to the right repository.


Support returning multiple validation errors

Today, validation ends on the first validation error encountered.
This asks that all validation errors be aggregated in some kind of collection, so all validation errors (or at least, as many as possible or that makes sense) are returned.
This can be behind a generation flag so both behaviors can be generated. Generating both at once (so both ways are available at runtime) should probably not be a goal.

Maybe we could add a second trait AllValidator or something with a validate_all method.

@fenollp It shouldn't be too hard to implement. Do you want to give it a go?


Supports hashes with numeric keys.

Resolves #1

@tim I'm not sure what's going on with travis, I'm seeing errors about spec not being a method on nil class but that seems to be more about Rspec than any code I modified.


Added docstrings to several undocumented functions

Documented various functions that we found particularly lacking of docstrings.

wow, thank you so much @fluencydoc , merging it right away!


Latest release does not work in Visual Studio 2015 (Community Edition)

These are the relevant lines from the Log:
  <entry>
    <record>470</record>
    <time>2017/03/20 09:33:29.121</time>
    <type>Information</type>
    <source>VisualStudio</source>
    <description>Begin package load [NShader]</description>
    <guid>{DD9B8CDE-96A0-4442-BF6F-083A7F43D453}</guid>
  </entry>
  <entry>
    <record>471</record>
    <time>2017/03/20 09:33:29.136</time>
    <type>Error</type>
    <source>VisualStudio</source>
    <description>CreateInstance failed for package [NShader]Source: 'mscorlib' Description: Could not load file or assembly 'Microsoft.VisualStudio.Shell.15.0, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.VisualStudio.Shell.15.0, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
File name: 'Microsoft.VisualStudio.Shell.15.0, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
   at System.Reflection.RuntimeAssembly.GetType(RuntimeAssembly assembly, String name, Boolean throwOnError, Boolean ignoreCase, ObjectHandleOnStack type)
   at System.Reflection.RuntimeAssembly.GetType(String name, Boolean throwOnError, Boolean ignoreCase)
   at System.Activator.CreateInstanceFromInternal(String assemblyFile, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityInfo)
   at System.AppDomain.CreateInstanceFrom(String assemblyFile, String typeName)

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].
</description>
    <guid>{DD9B8CDE-96A0-4442-BF6F-083A7F43D453}</guid>

80004005 - E_FAIL

    <errorinfo></errorinfo>
  </entry>

Version 2.1 works fine though, so I guess something broke when you added VS2017 support.

Ah bugger! Thanks very much, I'll look into that!

I'm having trouble with Visual Studio 2017. Where were these logs pulled from? I'll check my instance and try to figure out if I have a similar error.

Visual Studio actually opened a little prompt and pointed me to the location of that log file. I can't check it right now but it was somewhere in my user's AppData folder.

Ok, seems to be something like C:\Users<username>\AppData\Roaming\Microsoft\VisualStudio<version>\ActivityLog.xml

@Xirema What sort of troubles were you having? One thing I noticed with the VS2017 version was that the colour settings didn't appear in Tools -> Options until a shader file was opened. It seems in VS2017 extensions don't initialise until a file type they are registered for is opened.

@samizzo I don't get any error messages, but my .glsl files don't show any coloring. I tried closing and reopening the files, to no change.

Does the extension show up in Help->About in the "Installed products" box?

Okay, I resolved the issue by updating to the latest version of VS2017. I was an update behind, and the colors are showing up now.

Oh weird! Ok thanks for letting me know.

I just installed NShader in 2017 and had the same problem as Xirema. I got it to work by disabling NShader, restarting Visual Studio, re-enabling Visual Studio and then restarting again.

Thanks for the info @Ludophonic. I created a new issue (issue #13) for the 2017 problem since this report was originally about 2015.
If anyone else has any info about the VS 2017 bug please post it in issue #13.

@dthul I've fixed up the VS2015 issue. NShader was referencing all sorts of VSSDK DLLs from different VS versions, and when I upgrade to VS2017 it referenced the VS2017 versions. So when it loaded on a machine that never had VS2017 installed it would fail.
I've fixed it to now use NuGet to get the VS2013 VSSDK DLLs when building instead of using whatever version of VS you're building in. This way it will use the VS2013 VSSDK interfaces which 2015 and 2017 are also compatible with.
I tested this in an VM so I'm pretty sure everything should be working now. Let me know how it goes. There's a new release available.

Looks like it works. Thanks!

Great thanks!


Setting ApplicationMessageID Overwrites ApplicationMessageType

Hello 👋
it looks like the following methods are not behaving as expected:
https://github.com/SolaceProducts/pubsubplus-go-client/blob/acba067eefbadce3c4896baa879d0acde8d47590/internal/ccsmp/ccsmp_message.go#L245-L261
The ApplicationMessageType is being set/retrieved instead of the applicationMessageID
i.e.
solClient_msg_setApplicationMsgType and solClient_msg_getApplicationMsgType
instead of:
solClient_msg_setApplicationMessageId and solClient_msg_getApplicationMessageId

Hi Kenan,
Thank you for the raising this issue. We will be addressing it with the next release of the API!

Thanks for opening this issue @kenanelgaouny. We appreciate you helping us improve the Go client! I just wanted to let you know that we have a developer community forum over at https://solace.community if you have any questions or even want to share what you create. Basically any sort of conversation you wouldn't usually have via a github issue ;)
Thanks again


Feature/211

The examples/http/client/requirements.txt and examples/http/server/requirements.txt files incorrectly reference "../..". This should be updated to "../../..".

These changes have been picked up by other PRs


Adds tfkvstore pallet

Signed-off-by: Ashraf Fouda<EMAIL_ADDRESS>

Looks good but please use the same dependencies in Cargo.toml  as in the other pallets.

Also rename the directory to pallet-tkfvstore


[BIOMAGE-1045] Issues with launching metadata

Background
Link to issue
https://biomage.atlassian.net/browse/BIOMAGE-1045
Link to staging deployment URL
TBD
Links to any Pull Requests related to this
N/A
Anything else the reviewers should know about the changes here
N/A
Changes
Code changes
Fixed the issue where newly created metadata or added samples prevented GEM2S from starting.
Definition of DONE
Your changes will be ready for merging after each of the steps below have been completed:
Testing

[x] Unit tests written
[x] Tested locally with Inframock (with latest production data downloaded with biomage experiment pull)
[ ] Deployed to staging

To set up easy local testing with inframock, follow the instructions here: https://github.com/biomage-ltd/inframock
To deploy to the staging environment, follow the instructions here: https://github.com/biomage-ltd/biomage-utils
Documentation updates
Is all relevant documentation updated to reflect the proposed changes in this PR?

[x] Relevant Github READMEs updated
[x] Relevant wiki pages created/updated

Approvers

[ ] Approved by a member of the core engineering team
[ ] (UX changes) Approved by vickymorrison (this is her username, tag her if you need approval)

Just before merging:

[ ] After the PR is approved, the unstage script in here: https://github.com/biomage-ltd/biomage-utils is executed. This script cleans up your deployment to staging

Optional

[ ] Photo of a cute animal attached to this PR

the code looks good to me. Can you set up a staging deployment to test in staging?

Yes, one should be available at:
https://ui-marcellp-ui298.scp-staging.biomage.net/


Improve EditorToolBar UX for iOS

Don't hide toolbar when de-activating soft keyboard, move it around based on logic in frontend.
This solution can be read about here: sticky-header-ios-keyboard-fix.
I have still found a few edge cases from my phone so it is not perfect 100% of times but might at least be a good start towards fixing this. Mainly my concern is that it kind of flickers when you hit save, I guess it jumps with scroll restoration.
Mitigates the problem mentioned in issue: #1

Aww this is such a difficult thing to get right. I have failed with many attempts myself. I tested your version on iPhone and while in some cases the toolbar re-appears in the correct location, in other cases it disappears or gets moved to the middle or bottom of the screen. It's great to have a starting point, but we're not quite there yet. Happy to review new takes on this if you have ideas. Would really be keen to have this solved at some point. Ideally it would stick there with a stable position without the need for any transitions.

Yea it is a heck of an issue and a lot harder then it seemed at first. What makes it hard for iOS is that there is no event triggered with the soft keyboard transition. If one could find and fire that event this problem would be trivial. I will do some more research, this was the first solution that came to mind :)

We are in the middle of the war native apps vs progressive web apps. :) There's no reason why the mobile browser should shift the fixed elements out of the viewport by default. And if there are valid arguments for doing that (can't see them), we should have a way to control this behavior. Hopefully this changes some time soon, so progressive web apps are straight-forward to do.
Anyways... I was just using Notes on the iPhone and maybe this pattern might also be interesting for us: No formatting tools by default until you enter a "Formatting mode" where instead of the keyboard there are formatting controls.

Needs a different implementation for mobile, but maybe this gives us more control for a smooth experience.
@nilskj would be up for meeting in person to discuss ideas and their feasibility? :)

Oh that is interesting, another thing I found is that you can long press on the text itself and access a little menu with formatting options. I can only see Bold, Underline and Italic options there though. Let's discuss this further on :)


Reorganize tree

All core library files are moved to src/, including the binding.
All website files are moved to website/.

I think you forgot to change package.json's main property

@Qti3e Thanks, Fixed.


Adding composer into description and fix syntax.

Excellent patch, and thank you for proactively adding yourself to the contributors list :)
Merging and granting you commit access per policy! Thanks again!


[Bug] only replay-protected (EIP-155) transactions allowed over RPC

Component
network, json-rpc, provider, pubsub
What version of Alloy are you on?
rev = "8cb0307"
Operating System
Linux
Describe the bug
Hello,
I have tried to run the deploy_from_contract.rs example, but instead of using Anvil, I have tried to deploy it on ethereum sepolia testnet

Code to reproduce
use std::env;

use alloy_primitives::U256;
use alloy_provider::{network::EthereumSigner, Provider, ProviderBuilder};
use alloy_signer_wallet::LocalWallet;
use alloy_sol_types::sol;
use dotenv::dotenv;
use eyre::Result;

sol! {
    #[allow(missing_docs)]
    // solc v0.8.24; solc a.sol --via-ir --optimize --bin
    #[sol(rpc, bytecode="608080604052346100155760d2908161001a8239f35b5f80fdfe60808060405260043610156011575f80fd5b5f3560e01c9081633fb5c1cb1460865781638381f58a14606f575063d09de08a146039575f80fd5b34606b575f366003190112606b575f545f1981146057576001015f55005b634e487b7160e01b5f52601160045260245ffd5b5f80fd5b34606b575f366003190112606b576020905f548152f35b34606b576020366003190112606b576004355f5500fea2646970667358221220bdecd3c1dd631eb40587cafcd6e8297479db76db6a328e18ad1ea5b340852e3864736f6c63430008180033")]
    contract Counter {
        uint256 public number;

        function setNumber(uint256 newNumber) public {
            number = newNumber;
        }

        function increment() public {
            number++;
        }
    }
}

#[tokio::main]
async fn main() -> Result<()> {
    dotenv().ok();
    let signer: LocalWallet = env::var("WALLET")
        .expect("Missing 'WALLET' environment variable")
        .parse()?;
    let rpc_url = env::var("HTTP_RPC")
        .expect("Missing HTTP_RPC environment variable")
        .parse()?;
    let provider = ProviderBuilder::new()
        .signer(EthereumSigner::from(signer.clone()))
        .on_http(rpc_url)?;

    let base_fee = provider.get_gas_price().await?;

    let contract_builder = Counter::deploy_builder(&provider);
    let estimate = contract_builder.estimate_gas().await?;
    // Crashes here with error: Error: server returned an error response: error code -32000: only replay-protected (EIP-155) transactions allowed over RPC
    let contract_address = contract_builder
        .gas(estimate)
        .gas_price(base_fee)
        .nonce(
            provider
                .get_transaction_count(signer.address(), None)
                .await?,
        )
        .deploy()
        .await?;

       // other interactions from the example but the code crashes above

Cargo.toml

[package]
name = "send-trx-minimal"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
dotenv = "0.6"
eyre = "0.6"
tokio = { version = "1.37", features = ["full"] }

alloy-primitives = "0.7.0"
alloy-sol-types = { version = "0.7.0", features = ["json"] }

alloy-provider = { git = "https://github.com/alloy-rs/alloy.git", rev = "8cb0307" }
alloy-transport-http = { git = "https://github.com/alloy-rs/alloy.git", rev = "8cb0307" }
alloy-contract = { git = "https://github.com/alloy-rs/alloy.git", rev = "8cb0307" }
alloy-signer-wallet = { git = "https://github.com/alloy-rs/alloy.git", rev = "8cb0307" }

According to this post we need to specify the chain-id field, but I can't specify the chain-id in the CallBuilder

Thanks for flagging, we're missing important setters on CallBuilder: https://github.com/alloy-rs/alloy/issues/534

According to this post we need to specify the chain-id field, but I can't specify the chain-id in the CallBuilder

this will be handled automatically with the new filler API, see docs and https://github.com/alloy-rs/examples/pull/50

believe this is closed by #726 and by the fillers


Self-serve GUI for the SEA billing report generation process

Describe the issue
This is to create a GUI to have PO's self-serve from a Dashboard in the AWS Console GUI
The current solution is comprised of two distinct steps:

Run a Terraform command manually to generate a list of all SEA workload accounts that includes the account ID's, account owner name and email (aka metadata) as a json document. This was delivered through ticket#662.
Pass the json document to an AWS step function to retrieve the billing data for the accounts and generate HTML outputs for tenants, This was delivered through ticket#677

Which Sprint Goal is this issue related to?
Goal 2
The 'Milestone' description (created in ZenHub) should clearly list Sprint Goals. This section should indicate which 'goal' this issue is related to.
Additional context

short solution is to write a bash script
longer solution is to do the first step as a lambda function

Definition of done

Billing report is self-sufficient and does not need a precursor to generate the json document for it

Not going to pursue this at this moment


Fix tests in iOS

Seems like JS tests are still failing:
> Task :firebase-auth:jsNodeTest
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':firebase-auth:allTests'.
> Task :firebase-auth:jsTest
> There were failing tests. See the report at: file:///Users/runner/runners/2.262.1/work/firebase-kotlin-sdk/firebase-kotlin-sdk/firebase-auth/build/reports/tests/allTests/index.html


docs: use env file in README to reduce maintenance costs

Description

It is a bit troublesome to replace all values when upgrading versions like #248.
Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[x] I've confirmed the contribution guidelines.
[x] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

I'll close this for now. If I feel it's necessary in the future, I'll reopen it.


Runtime exceptions on Flutter 1.22.0

PortalEntry causes some exceptions and it shows no overlaying widgets when using Flutter 1.22.0.
Stacktraces
Trying flutter_portal with example code  https://github.com/rrousselGit/flutter_portal/blob/master/example/lib/date_picker.dart
════════ Exception caught by widgets library ═══════════════════════════════════════════════════════
'package:flutter/src/widgets/framework.dart': Failed assertion: line 6131 pos 12: 'slot == null': is not true.
The relevant error-causing widget was:
  PortalEntry file:///Users/kikuchy/tmp/flutter_portal/example/lib/date_picker.dart:24:12
════════════════════════════════════════════════════════════════════════════════════════════════════

slot looks like IndexedSlot of CompositedTransformTarget at here https://github.com/rrousselGit/flutter_portal/blob/master/lib/src/portal.dart#L178
And using https://github.com/rrousselGit/flutter_portal/blob/master/example/lib/date_picker.dart , there are one more exception.
════════ Exception caught by widgets library ═══════════════════════════════════════════════════════
'package:flutter/src/widgets/framework.dart': Failed assertion: line 6131 pos 12: 'slot == null': is not true.
The relevant error-causing widget was:
  LayoutBuilder file:///Users/kikuchy/tmp/flutter_portal/lib/src/portal.dart:183:18
════════════════════════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════════════════════════
'package:flutter/src/widgets/layout_builder.dart': Failed assertion: line 161 pos 12: 'slot == null': is not true.
The relevant error-causing widget was:
  LayoutBuilder file:///Users/kikuchy/tmp/flutter_portal/lib/src/portal.dart:183:18
════════════════════════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════════════════════════
RenderBox was not laid out: _RenderLayoutBuilder#71d45 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 1785 pos 12: 'hasSize'
The relevant error-causing widget was:
  Stack file:///Users/kikuchy/tmp/flutter_portal/lib/src/portal.dart:176:12
════════════════════════════════════════════════════════════════════════════════════════════════════

Result of Flutter doctor
➜  example git:(master) ✗ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 1.22.0, on Mac OS X 10.15.6 19G2021, locale ja-JP)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
[✓] Xcode - develop for iOS and macOS (Xcode 12.0)
[✓] Android Studio (version 4.0)
[✓] IntelliJ IDEA Ultimate Edition (version 2020.2.2)
[✓] IntelliJ IDEA Community Edition (version 2019.2.3)
[!] VS Code (version 1.49.2)
    ✗ Flutter extension not installed; install from
      https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
[✓] Connected device (1 available)

! Doctor found issues in 1 category.

same issue here

Fixed in 0.2.0


[VCQ][DevDiv_VSO][VSCode][Source|Ambiguity: confusing sentence]

MS PM
Daniel Ye

MOR PM
Jan Baltus (Moravia IT)

String Resource ID
0; "src/vs/workbench/contrib/preferences/browser/preferences.contribution.settings.focusSettingControl"

Source String
Focus setting control

Subtenant
VSCode

Source Control Link

Filename
vscode-workbench\vs_workbench_contrib_preferences.xlf

Question
Does this segment refer to "control of Focus setting"?

Additional details

Core Team Response

"Focus" is the verb. "Focus the control for the current setting"