chore: rename ClientKeeper interface functions

Description

I thought this is more consistent with the other functions in the interface. See my comment here. Happy to close the PR if people think it's ok as is.
closes: #XXXX

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[x] Targeted PR against the correct branch (see CONTRIBUTING.md).
[ ] Linked to GitHub issue with discussion and accepted design, OR link to spec that describes this work.
[ ] Code follows the module structure standards and Go style guide.
[ ] Wrote unit and integration tests.
[ ] Updated relevant documentation (docs/).
[ ] Added relevant godoc comments.
[ ] Provide a conventional commit message to follow the repository standards.
[ ] Include a descriptive changelog entry when appropriate. This may be left to the discretion of the PR reviewers. (e.g. chores should be omitted from changelog)
[ ] Re-reviewed Files changed in the GitHub PR explorer.
[ ] Review SonarCloud Report in the comment section below once CI passes.

Summary by CodeRabbit

Refactor

Renamed functions related to client height and timestamp retrieval across various modules for better specificity and alignment with functionality.
Updated function calls in test suites and interfaces to reflect the new, more descriptive names.

I don't feel v strongly about this either way, as i don't think it adds clarity as both functions are being called on the ClientKeeper so one would naturally understand they are for the client... but I wouldn't block this merge.


[ Profile Details ] Picture isn't displayed correctly

When we had clicked in an avatar the room details appear on the right and the picture isn't displayed correctly.

Already present in 2.3.7


LuaJIT miscompilation

The code below freezes with Ziglua's LuaJIT. The C++ translation of my example works correctly. I reckon this may be a problem with how LuaJIT is compiled by Ziglua? The culprit seems to be a JIT-compiled version of the JLOOP opcode.
main.lua:
-- Interestingly enough, this is the minimal number of X's that causes the hang-up.
local xs = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
for i = 1, #xs do end

main.zig:
pub fn main() !void {
  var gpa = @import("std").heap.GeneralPurposeAllocator(.{}){};
  defer _ = gpa.deinit();

  var vm = try @import("ziglua").Lua.init(&gpa.allocator());
  defer vm.deinit();
  vm.openLibs();

  try vm.doFile("main.lua");
}

build.zig:
const std = @import("std");

pub fn build(b: *std.Build) void {
  const target = b.standardTargetOptions(.{});
  const optimize = b.standardOptimizeOption(.{});
  const exe = b.addExecutable(.{
    .name = "ziglua-bug",
    .root_source_file = b.path("main.zig"),
    .target = target,
    .optimize = optimize,
  });
  exe.root_module.addImport("ziglua", b.dependency("ziglua", .{
    .lang = .luajit,
    .target = target,
    .optimize = optimize,
  }).module("ziglua"));
  b.installArtifact(exe);
}

build.zig.zon:
.{
  .name = "ziglua-bug",
  .version = "0.0.0",
  .dependencies = .{
    .ziglua = .{
      .url = "https://github.com/natecraddock/ziglua/archive/7479680.tar.gz",
      .hash = "122094a86e7171946ec9dc47ea22c4782511c26ae555a7e79e315ae857ccce15cfa5",
    },
  },
  .paths = .{
    "build.zig",
    "build.zig.zon",
    "main.zig",
  },
}

Hey there! LuaJIT support is still WIP because the build process is very complex and I haven't had time to dedicate to that. Sorry about that.
I am open to contributions though!
See https://github.com/natecraddock/ziglua/issues/19 for tracking luajit support


docs: updated readme to indicate archive status

Signed-off-by: Jim White<EMAIL_ADDRESS>PR Checklist
Please check if your PR fulfills the following requirements:

[ ] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

If your build fails due to your commit message not passing the build checks, please review the guidelines here: https://github.com/edgexfoundry/developer-scripts/blob/master/.github/Contributing.md.
What is the current behavior?

Issue Number:
What is the new behavior?
Does this PR introduce a breaking change?

[ ] Yes
[x ] No

Specific Instructions
Are there any specific instructions or things that should be known prior to reviewing?
Other information

recheck

@jpwhitemn The "smoke tests" step of the verify job is triggering (which it doesn't seem to have done in the successful master builds), and then seems to be timing out. Since this is being archived anyway, would you like me to go ahead and push the change through with the failing build?

@MightyNerdEric - Eric that would be great to push it through.  We are working on the TAF smoke test issue, but in this case it would not apply/matter.  Thanks,

recheck


Donation button?

Provide a possibility to make a donation for project development.

I appreciate the idea.  I'm not really looking for money as I already feel bad I don't do much with this project.  I'd really rather have pull requests :)


Number of laps

Return number of laps of an activity

Number of laps is seen in TCXActivity.laps property (from 0.4.0 onwards), which is a list (len(laps) == number_of_laps).


Allow developer set ephemeral-storage request on grafana instance

Is your feature request related to a problem? Please describe.
Today it's only possible to set memory and cpu requests/limits for grafana, I would also want to be able to define ephemeral-storage.
https://github.com/grafana-operator/grafana-operator/blob/8225cdce62a507b2d0d32cb63bb0099fa8680123/controllers/model/grafanaDeployment.go#L52-L66
(If applicable)If your feature request solves a bug please provide a link to the community issue
N/A
Describe the solution you'd like
Instead of specifying what resources the user can request we could provide the entire requests object and thus getting ephemeral-storage with us. It would also make this solution future-proof, if the kubernetes community come up with some other resource to request/limit then we could just update the library and it should be included.
Describe alternatives you've considered
We could also set a sizeLimit in our emptyDir definitions but that would force us as maintainer to know alot about the different disk requirements that grafana might have together with our users requirements.
      emptyDir:
        sizeLimit: 10Mi

Additional context
https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#setting-requests-and-limits-for-local-ephemeral-storage
Existing solutions
N/A

#613 fixes this

This will be solved in version 5, so I close this


python3Packages.watchdog: use older version on x86_64-darwin to fix build

Motivation for this change
A working version is better than nothing
Things done

Built on platform(s)

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

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 156597 run on aarch64-darwin 1

WFM macos 10.15. We're going to have a bunch of depending packages now complaining about the version, e.g.
builder for '/nix/store/1him75hyhydrnmlwjxh0v5p6vxcb0177-python3.9-mkdocs-1.2.3.drv' failed with exit code 1; last 10 log lines:
  Requirement already satisfied: pyyaml-env-tag>=0.1 in /nix/store/9gh17mjpgp46qkrcqzvwwbjan8qprggp-python3.9-pyyaml-env-tag-0.1/lib/python3.9/site-packages (from mkdocs==1.2.3) (0.1)
  Requirement already satisfied: Jinja2>=2.10.1 in /nix/store/2m453hbm95242b7w0b04xb5hhxkshpi3-python3.9-Jinja2-3.0.3/lib/python3.9/site-packages (from mkdocs==1.2.3) (3.0.3)
  Requirement already satisfied: packaging>=20.5 in /nix/store/rhpwj5hvjb16slfaidm71hsl3cqwpj9v-python3.9-packaging-21.3/lib/python3.9/site-packages (from mkdocs==1.2.3) (21.3)
  Requirement already satisfied: ghp-import>=1.0 in /nix/store/xr685nfi92p2w95dk4q4yijr6ma5wdxd-python3.9-ghp-import-2.0.2/lib/python3.9/site-packages (from mkdocs==1.2.3) (2.0.2)
  Requirement already satisfied: PyYAML>=3.10 in /nix/store/pl0jwsmdba74bnzrsznjzi6lixlapq9b-python3.9-PyYAML-6.0/lib/python3.9/site-packages (from mkdocs==1.2.3) (6.0)
  Requirement already satisfied: Markdown>=3.2.1 in /nix/store/kjiisq3bipw1ikprd4ai4syn8cnylxzp-python3.9-markdown-3.3.6/lib/python3.9/site-packages (from mkdocs==1.2.3) (3.3.6)
  Requirement already satisfied: click>=3.3 in /nix/store/jwdirr37msj0jjcxvgzf61gxxk5ij9i4-python3.9-click-8.0.3/lib/python3.9/site-packages (from mkdocs==1.2.3) (8.0.3)
  Requirement already satisfied: importlib-metadata>=3.10 in /nix/store/ixf9r5yjb7s34j1ms4j216v76lfszr5h-python3.9-importlib-metadata-4.10.0/lib/python3.9/site-packages (from mkdocs==1.2.3) (4.10.0)
  ERROR: Could not find a version that satisfies the requirement watchdog>=2.0 (from mkdocs) (from versions: none)
  ERROR: No matching distribution found for watchdog>=2.0

but I guess it's better than nothing (for now)


Fix schema.ts

Please consider the following request.
If the administrator account in PostgreSQL is not named 'postgres' and the password is not 'root', an error occurs when calling the execute(...) function.
This case was taken into account when calling execute in the main function (line 34), but it was not handled in the third call (line 54). Therefore, I have corrected the code as in the first call.
Problem Situation

docker-compose.yml

version: "3"

services:
  postgres:
    image: postgres:latest
    container_name: postgres
    restart: always
    ports:
      - ${postgres_container_port}:5432
    environment:
      postgres_database: ${postgres_database}
      postgres_user: ${postgres_user}
      postgres_password: ${postgres_password}
      TZ: Asia/Seoul
    volumes:
      - data:/var/lib/postgresql/data
    init: true
    tty: true

  pgadmin:
    container_name: pgadmin
    image: dpage/pgadmin4
    restart: always
    volumes:
      - admin:/var/lib/pgadmin
    ports:
      - ${PGADMIN_HOST_PORT}:${PGADMIN_CONTAINER_PORT}
    environment:
      pgadmin_default_email: ${pgadmin_default_email}
      pgadmin_default_password: ${pgadmin_default_password}
      TZ: Asia/Seoul
    init: true

volumes:
  data: {}

.env

POSTGRES_HOST=postgres
POSTGRES_DATABASE=postgres
POSTGRES_USER=test
postgres_password=4242
POSTGRES_HOST_PORT=4242
postgres_container_port=5432

PGADMIN_HOST_PORT=8080
pgadmin_container_port=80
<EMAIL_ADDRESS>pgadmin_default_password=4242

I have configured the docker-compose file as above and made modifications to DB_ACCOUNT, DB_NAME, etc. as described in the README.md file. Then, I executed the following commands in sequence:
$> npm i
$> npm build
$> npm schema test 4242

After execution, I encountered the following error:
error: password authentication failed for user "postgres"
    at Parser.parseErrorMessage (/Users/hyeonsok/Dev/myback/backend/node_modules/pg-protocol/src/parser.ts:369:69)
    at Parser.handlePacket (/Users/hyeonsok/Dev/myback/backend/node_modules/pg-protocol/src/parser.ts:188:21)
    at Parser.parse (/Users/hyeonsok/Dev/myback/backend/node_modules/pg-protocol/src/parser.ts:103:30)
    at Socket.<anonymous> (/Users/hyeonsok/Dev/myback/backend/node_modules/pg-protocol/src/index.ts:7:48)
    at Socket.emit (node:events:511:28)
    at addChunk (node:internal/streams/readable:332:12)
    at readableAddChunk (node:internal/streams/readable:305:9)
    at Socket.Readable.push (node:internal/streams/readable:242:10)
    at TCP.onStreamRead (node:internal/stream_base_commons:190:23) {
  length: 104,
  severity: 'FATAL',
  code: '28P01',
  detail: undefined,
  hint: undefined,
  position: undefined,
  internalPosition: undefined,
  internalQuery: undefined,
  where: undefined,
  schema: undefined,
  table: undefined,
  column: undefined,
  dataType: undefined,
  constraint: undefined,
  file: 'auth.c',
  line

: '326',
  routine: 'auth_failed'
}

The issue seems to be caused by passing 'postgres' as the username in the above code snippet in schema.ts (lines 13-18).
Could you please review it?
Thank you.

Thanks for pointing that out. As you said, using the "??" symbol is definitely a better option.

There is one more thing I would like to correct.
It looks like the admin database name needs to be 'postgres' in PostgreSQL for the current code to work without modification.
npm execute schema [ROOT_USERNAME ?? postgres ] [USER_SECRET ?? root]

I'd like to ask your opinion on adding an argument for the name to that command, modifying it to something like this
$> npm run schema [ROOT_USERNAME ?? 'postgres'] [ROOT_SECRET ?? 'root' ] [DEFAULT_DB_NAME ?? 'postgres' ] [DB_HOST ?? '<IP_ADDRESS>']
### OR
$> npm run setup [ROOT_USERNAME ?? 'postgres'] [ROOT_SECRET ?? 'root' ] [DEFAULT_DB_NAME ?? 'postgres' ] [DB_HOST ?? '<IP_ADDRESS>']

The README.md file (line 150) mentions the npm run setup command, but it doesn't exist in the package.json. I checked the .github/workflow/build.yml and found that the schema command initializes the database.
Considering this, I think you might want to consider renaming the schema command to 'setup' or adding a 'setup' command that can take more arguments.
To summarize

no modifications.
modify the schema command to accept additional arguments.
do 2. and rename the schema command to setup.
add the setup command and make the schema command accept additional arguments.

If your comment falls into one of the 2-4 categories and you don't mind modifying it, I'll commit it and ask you to review it again.

I think that it would better to reconstruct arguments like below:
npm run schema -- --host HOST --username USERNAME --password --PASSWORD

If you send a PR about that, I'll accept. If not, I'll remake it until Wednesday.

README.md (line 110) The description of the npm schema command looks like it needs to be fixed, so you might as well do it yourself.
For commander.options(...), I didn't know whether [...] or <...> was appropriate, so I arbitrarily set it. You can check it out and modify it to what you originally intended.

Sorry for delaying, but may changed as you wish especially about .env file.


Themed guidance stacking on write plan page

Under the following conditions, the themed guidance is stacked on the write plan page. It's a low priority bug since this does not occur on a majority of templates:

when a question does not include guidance (this tab is then selected by default in guidance panel), and a user has made Org guidance selection(s), the write plan page loads w/o an Org tab selected so themed guidance is stacked for multiple Orgs (screenshot 1)
if i select an Org tab i see the appropriate themed guidance for each Org in its own tab (screenshot 2)
solution is to select the first tab by default when the write plan page loads, regardless of the source of the guidance (integral to template or themed Org guidance)

Worth checking if the display changes in #1409 fixes this issue

this is likely tied to the accessibility work that added an HTML <fieldset> around the checkboxes/radio buttons. Probably just need to add a class to the fieldset or tweak the scss file

this is working as expected now. closing issue.


Add fetch & Promise Polyfill to V3

zera uses fetch to get the grid.json files from the server. Since fetch wont work in old browsers we need to add a polyfill.
We added a polyfill for the v4 version but we forgot to add the polyfill in the v3 (used by builder).
At the moment @ivanmalagon fixed this situation adding the polyfill in builder but the bug is still here.

I think it would be nice to add the polyfill in carto-zera. Then this package will be fully-compatible with old browsers.

@ivan should we remove the polyfill from builder?

Wrong @ivan


Missing newValueUsing: method on GtGQLUnion

When running a graphql query, if any of the values are Union's then GT will pop open a debugger.
This is because newValueUsing: gets ran on the object. Missing the method.
The other methods that the sister class return the GtGQLValue class. Currently GtGQLValueUnion is missing, however I believe this class is easy to make (The stub code in GtGQLValueEnumeration has all that is required in this instance to work well).

minimal reproducible example:
This example requires:

a gh token
permissions for read org, and read projects

The issue is on the nodes section
githubAccessKeyFile := FileLocator home / '.emacs.d' / 'gh-key.txt'.
githubAccessKey := githubAccessKeyFile contents trimBoth.

aContext := GtGQLContext new
		url: 'https://api.github.com/graphql';
		bearerToken: githubAccessKey;
		buildSchema.

anOperation := 'query WhatsCooking($board: Int!){
	organization(login: "anoma") {
		projectV2 (number: $board) {
			public
			id
			title
			fields(first: 5) {
				totalCount
				nodes {
					__typename
					... on ProjectV2Field {
						name
					} } } } } }'.

anInput := '{ "board": 1}'.

res := aContext client
	query: (GtGQLQuery new
			operation: anOperation;
			input: anInput).

res report.


[FEAT] Image download mirror

We need the ability to disable file downloads, for cost/bot abuse considerations, as well the ability to download images from a mirrored domain that presumably we would host at the library.

Leverages fin changes here.


Unify/simplify the behavior of per-locale and non-per-locale files by moving per-locale generation to Segment class

This PR unifies/simplifies the behavior of per-locale and non-per-locale files.
Specifically, splitting files per-locale generation is done in the Segment class .save! method, which is the final step before writing the file. (Previously, "per-locale" and "non-per-locale" files followed very different logic paths which diverged early in the processing chain.)
One positive effect of this change is that the "fallbacks" feature now works for both per-locale and non-per-locale files.
Important: There are two breaking changes in this PR, hence I recommend a minor version bump.

Per-locale files should now have only/exclude scopes which begin with '*', which is the same as non-per-locale files.

Since this PR fixes the issue that fallbacks were ignored for non-per-locale files, users may see some behavior change. for this. This is unavoidable as it's essentially a bug that this wasn't done before.

Lastly, please note that I had to add fallbacks: false to many of the test fixtures to ensure behavior consistency.

All comments have been addressed.

For your breaking changes:

For (2), it's fine, it was a bug
For (1), It's not clear to me for what you are talking about.
Please clarify it (or write README and add CHANGELOG entry directly :P

Old format. Note that the %{locale} one doesn't begin with '*'
- file: '/my_dir/not_per_locale.js'
  only:
    - '*.foo.*'
    - '*.bar.*'

- file: '/my_dir/my_%{locale}.js'
  only:
    - 'foo.*'
    - 'bar.*'

New format:
- file: '/my_dir/not_per_locale.js'   # same
  only:
    - '*.foo.*'
    - '*.bar.*'

- file: '/my_dir/my_%{locale}.js'   # now has *
  only:
    - '*.foo.*'
    - '*.bar.*'

OK, I think that's more consistent and sensible.
Please update README and CHANGELOG so I can merge this.
Thanks :D

Updated README and CHANGELOG

Common mistake: you have added the changelog entry for a released version o_0

Fixed

For the except option the *.something.* format is not supported as is for the only option. It only supports key names. So when errors is specified for the except option, all of the following segments will be excluded: errors, app.errors, app.view.errors. It seems to have always been like this. Please adjust comments in CHANGELOG/README or change the functionality (the latter I would prefer).

@michieldewit Please open another issue :)

I created a pull request for this: #325

Will review it next week <3


Getting a traceback when generating helptext

I'm getting the following error message when running logdetective --help :

Traceback (most recent call last):
File "/usr/bin/logdetective", line 5, in
from logdetective.logdetective import main
File "/usr/lib/python3.12/site-packages/logdetective/logdetective.py", line 6, in
from logdetective.utils import process_log, initialize_model, retrieve_log_content, format_snippets
File "/usr/lib/python3.12/site-packages/logdetective/utils.py", line 7, in
from llama_cpp import Llama
File "/usr/lib64/python3.12/site-packages/llama_cpp/init.py", line 1, in
from .llama_cpp import *
File "/usr/lib64/python3.12/site-packages/llama_cpp/llama_cpp.py", line 1434, in
@ctypes_function(
^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.12/site-packages/llama_cpp/llama_cpp.py", line 122, in decorator
func = getattr(lib, name)
^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.12/ctypes/init.py", line 392, in getattr
func = self.getitem(name)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.12/ctypes/init.py", line 397, in getitem
func = self._FuncPtr((name_or_ordinal, self))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: /usr/lib64/libllama.so: undefined symbol: llama_model_apply_lora_from_file

System: Fedora 40
Hardware: ThinkPad T14

Finally figured it out, thanks everyone for help!
https://src.fedoraproject.org/rpms/python-llama-cpp-python/pull-request/9#request_diff
Will merge, build and do a bodhi update soon.
Smoke-tested in a f40 container and all worked well:
[root@1f5dc2461be6 src]# logdetective --help
usage: logdetective [-h] [-M MODEL] [-F FILENAME_SUFFIX] [-S SUMMARIZER] [-N N_LINES] [-C N_CLUSTERS] [-v] [-q] file

positional arguments:
  file                  The URL or path to the log file to be analyzed.

options:
  -h, --help            show this help message and exit
  -M MODEL, --model MODEL
                        The path or Hugging Face name of the language model for analysis.
  -F FILENAME_SUFFIX, --filename_suffix FILENAME_SUFFIX
                        Suffix of the model file name to be retrieved from Hugging Face. Makes sense only if the model is specified with Hugging Face name.
  -S SUMMARIZER, --summarizer SUMMARIZER
                        Choose between LLM and Drain template miner as the log summarizer. LLM must be specified as path to a model, URL or local file.
  -N N_LINES, --n_lines N_LINES
                        The number of lines per chunk for LLM analysis. This only makes sense when you are summarizing with LLM.
  -C N_CLUSTERS, --n_clusters N_CLUSTERS
                        Number of clusters for Drain to organize log chunks into. This only makes sense when you are summarizing with Drain
  -v, --verbose
  -q, --quiet

  Installing       : llama-cpp-b3561-1.fc40.x86_64
  Installing       : python3-llama-cpp-python-0.2.87-1.fc40.x86_64
  Installing       : python3-logdetective-0.2.5-1.fc40.noarch


cpuset: fall back to cpuset.cpus on older kernels

cpuset.effective_cpus is better because it does not include cpus which
we cannot use.  But it is not available on older kernels.  In that
case fall back to using cpuset.cpus and hoping for the best.
Closes #1929
Signed-off-by: Serge Hallyn<EMAIL_ADDRESS>

d'oh - pushed the wrong branch.


HDDS-7320. Enable Container SchemaV3 by default.

https://issues.apache.org/jira/browse/HDDS-7320

Thanks @ChenSammi working for this.  SchemaV3 is a very important feature that we wanted to turn on by default in the release of 1.3.  Hi @errose28, would you take another look?

Thanks @ChenSammi for the patch and thanks @errose28 @ayushtkn for the review. Let's merge this.

Thanks @errose28 , @ayushtkn , @captainzmc for the code review.


Reverting whitespace change

    Whitespace change here. Can you revert?

Originally posted by @vrajat in https://github.com/yugabyte/debezium-connector-yugabytedb/pull/85#discussion_r1028802867

Closing since the addressing commit has been merged.


win+v cannot work!

Microsoft PowerToys version
"latest"
Running as admin

[X] Yes

Area(s) with issue?
Keyboard Manager
Steps to reproduce
when i use keyboard manager ,i find that the win+v cannot work.
As  can be seen from the picture  , i  replace   caslock   to    ctrl   and  replace  ctrl  ro  caslock  .

✔ Expected Behavior
when i use  win+v and  put the  " enter " , it  can  show the copied content
❌ Actual Behavior
but  when i use  win+v and  put the  " enter " , it  only  show the "v"
Other Software
WIN + V   MS's function

capslock to ctrl  and  ctrl to  capslock

From thhe screenshot it seems like your on an old version of PowerToys. Please update to the latest version and tell us if you still experience this issue.

the latest version link

I tried to use the latest version, but it exists .

it still  shows  "V" . maybe  key conflict？

I can replicate this.
It seems the way clipboard history works is by sending sending Control+V to the active Window, but that is being replaced by your mappings.
I'm not sure there's something we can do to change Clipboard History behavior.
Perhaps check if that specific keypress gets any added information we can detect from the low level keyboard hook to recognize it was sent by Clipboard history.

Is this maybe a bug inside of the Clipboard History feature rather than PowerToys? I would think that when the OS is activating this behind the scenes for a paste, it should be directly accessing the system paste feature and not emulating keyboard presses that translate into the system paste. Is it something someone can communicate internally to find out?

I have a related issue, If I map Win+V to ctrl+alt+c The clipboard history just pops up timely while holding the combination (ctrl+alt+c) but it works fine (toggles) when I use win+V

With version 0.53.3, Win+V still does not paste correctly.
It seems each app shows different behaviors, though.
With OneNote, when I choose the history item to paste, it plays a sound (an error sound?) but pastes nothing.
With Notepad, when I choose the history item to paste, it behave as though Alt+V was pressed, i.e., shows the menu item of "Display (V).

"

Bump
Version: 0.56.1
This issue is still reproducible when remaping alt to ctrl and ctrl to alt, what on win+v and enter > produces V as output.
Probably limitation of the windows clipboard history, is it possible to have workaround for this?

One solution is:

Win + V, then Enter or click on the clipboard history item to paste fails.
Esc or whatever to go back to the normal text input status.
Ctrl + V will past the previously chosen item.

Issue still exists in v0.77.0 powertoys
One solution is to map
Capslock to Ctrl
and
Ctrl+Home to Capslock

Temporary solution: Use SharpKeys instead.

Same issue here. I remapped CTRL to Capslock and Capslock to CTRL with PowerToys Keyboard Manager.
When I try to win+v, the clipboard history pops up, but when I select an item to try and paste it, it just typesv instead of pasting the contents.

Looks remapping CTRL-L causes the issue. Remapping CTRL-R is OK.
So, this may not be an issue with PowerToys, but with the clipboard history.
2024年5月31日(金) 17:56 Kamiel de Visser @.***>:

Same issue here. I remapped CTRL to Capslock and Capslock to CTRL with
PowerToys Keyboard Manager.
When I try to win+v, the clipboard history pops up, but when I select an
item to try and paste it, it just typesv instead of pasting the contents.
—
Reply to this email directly, view it on GitHub
https://github.com/microsoft/PowerToys/issues/14556#issuecomment-2141537561,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOBENUUZAB36KWWT6M452S3ZFA3NNAVCNFSM5INS3AOKU5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TEMJUGE2TGNZVGYYQ
.
You are receiving this because you commented.Message ID:
@.***>

It seems you're right.
I have these keys remapped:

If unbound the Ctrl (Left) mapping then Win+V works again.
Testing on https://config.qmk.fm/#/test yields:

The first three lines are the result of me pressing Win+v
The four other lines are the result of me clicking one of the options in the clipboard history to paste it.
So I guess to get this to work I would have to be able to remap the paste action that the clipboard history tool tries to emulate to Caps Lock+v?

I was experiencing the same issue, (https://github.com/microsoft/PowerToys/issues/35345) in my case having remapped Ctrl>Alt and Alt>Ctrl (all Left). With this shortcut in particular (Clipboard History emulating Ctrl+V presses), I have resolved it by adding an additional Shortcut Remap in PowerToys (adjust keys for your use case):

I can now paste with both Ctrl+V and Alt+V. In my case that doesn't cause me any issues, but this could be a potential issue in other scenarios.
In any case, I think it would be proper if emulated shortcut executions (i.e., not truly user-inputted key presses) would not be affected by PowerToys remappings, as there are many theoretical cases of such executions being broken through such mapping. Only then would I consider this issue truly resolved.


ShareViaSMS on Android N not available

When I use the shareviasms function on an Android N (7.0)-Device I got the message "Not Available".

Short update to this issue, "CanShareVia" does not work on Android N anymore. I think it is caused by this strange old Android-Issue.
We was forced to use the "mms" as parameter because Android didn't get sms. Maybe that has changed for android n.


Support quotas when multiple groups use the same OpenStack project & opportunistic use

Currently we have two types of allocations in IRIS:

a single OpenStack project per group
a single OpenStack project for CCFE which needs to be allocated to multiple groups

In both cases, we need to support the following:

when a single OpenStack project is used for multiple groups, it should be possible for each group to be limited to their quota
when a single OpenStack project is used for multiple groups, it should be possible to one group to make opportunistic usage of another group's unused resources (optionally)
when a single OpenStack project is used per group, it should be possible for one group to make opportunistic usage of another group's unsed resources (optionally)

For the last 2 points above, the hard part is deciding what to do if the real group needs their resources back. One option is for opportunistic usage to be only for preemptable jobs. This would allow the real group to get access to their resources quickly.
Currently, when there is a single OpenStack project per group, only that group can use the resources unless the JSON config in IMC is updated to include other groups. And in this case the access to resources is on first-come first-served basis. Similarly, when a single OpenStack project is shared between multiple groups, access to resources is on first-come first-served basis.

Two options:

Since cloud_hook_translate_job.py is what triggers the provisioning of resources, it will need to know about the group's current usage and quota and decide whether or not to provision resources. This may be difficult because jobs may need to either be routed multiple times or we need to prevent routing completely if a group has used it's allocation.

Could stop using the job router completely, and have a service which monitors the status of jobs. It can then deploy infrastructure for idle jobs as necessary, and delete them when it sees the jobs have completed. Could actually use the job router hooks to generate events to avoid polling. This new service would be an intermediate layer between the job router hooks and IMC.


All settings are also available in user configuration

All the info for all the Edge settings here only show the setting for computer configuration and HKLM registry keys. Every policy is also available for the user configuration and HKCU registry keys.

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

ID: dac404ef-2198-b628-080b-3bf44f93fd45
Version Independent ID: 2c9e90ff-7cd3-93b5-0641-1ef9a2040930
Content: Microsoft Edge - Address bar group policies
Content Source: browsers/edge/group-policies/address-bar-settings-gp.md
Product: edge
GitHub Login: @shortpatti
Microsoft Alias: pashort

@officedocsbot assign @mypil

@NJArcher - Thank you for submitting feedback.
I will get this issue over to the Win10 ITPro writing team for investigation.
Thank you for reporting and making the docs better. Much appreciated.
I made a note to request the team to update this when the work is complete.

Hello, @NJArcher Thank you for your feedback here. Please note that HKLM settings are applied on machine independent of user profiles. Whereas HKCU is applied for the current users. So to ensure that policy is applied for all users Microsoft has mentioned HKLM subsetting.
Thanks.

@NJArcher - From our understanding, the issue you raised has been answered by joinimran. If you feel it hasn't been answered, please re-open this issue.
Thank you for your contribution to make the docs better! Much appreciated!

@officedocsbot close


Long error message when trying to run a tensor flow program

Hey All,
Im new to the deep learning field and I'm trying to follow a tutorial. Im using a MacOS and PyCharm IDE.
I have successfully installed tensorFlow package. I wrote a simple ( Hello World) and this error appeared, then I tried to trace back at which line this error appear, simply from the very basic first line
import tensorflow as tf

I tried one of the solutions online that I should install pip install tensorflow-cpu rather than pip install tensorflow but same error appear.
I appreciate any tips

It seems like there may be conflicting dependencies of the package and Python version installed. To address the issue, you can simply create a conda environment (Dependency management) with a compatible version of Python for your target TensorFlow version. Next, activate it and install TensorFlow, which should run without problems.
Steps to Resolve the Issue:

Create a Conda Environment with a Specific Python Version:
conda create -n env_name python=3.x

Replace 3.x with the specific Python version you need.

Activate the Conda Environment:
conda activate env_name

Follow TensorFlow Installation Guide:
Follow the instructions from the official TensorFlow installation guide for macOS: TensorFlow Installation Guide

It seems like there may be conflicting dependencies of the package and Python version installed. To address the issue, you can simply create a conda environment (Dependency management) with a compatible version of Python for your target TensorFlow version. Next, activate it and install TensorFlow, which should run without problems.
Steps to Resolve the Issue:

Create a Conda Environment with a Specific Python Version:
conda create -n env_name python=3.x

Replace 3.x with the specific Python version you need.

Activate the Conda Environment:
conda activate env_name

Follow TensorFlow Installation Guide:
Follow the instructions from the official TensorFlow installation guide for macOS: TensorFlow Installation Guide

thank you for your comment, I have been working with Installing packages through pycharm only, do I need this ( Conda environment)? I mean is there any difference between it and what I have been doing so far?

There is no difference except for managing your Python and TensorFlow versions. So you can also set another Python version for the Pycharm environment and install your TensorFlow package within that one.

Hi @Rosie-93 ,

Could you please ensure that the tensorflow version you installed is compatible with your macos and python version. And verify that you are working in the correct virtual environment where tensorflow installed. Try to reinstall tensorflow. And follow this documentation for better results.

Thank you!

@amd-rezaei @Venkat6871  I have used Conda as the environment, the first 2 sentences warning appeared but the program was executed successfully, I went and tried Python ,pip required versions and Tensorflow as well using Pycharm default environment however, it did NOT work even with the right versions thats why I found it confusing why wouldn't it work with pycharm environment

My view would be that there are some package dependencies in default environment. It would be resolved if u install a new environment with your system's compatible versions.

Hi @Rosie-93 ,

Here I followed below steps to install tensorflow in PyCharm IDE. It runs successfully to me.

I installed the PyCharm IDE by using the tool box app from the PyCharm site.
After that python venv to create the environment  for the new project.
Then I installed tensorflow by using pip.

pip install tensorflow

After that import tensorflow is working fine.

import tensorflow as tf

Here I am providing screenshots for your reference. , .

Thank you!

Hi @Rosie-93 ,
I am closing this issue as this was resolved. Please feel free to reopen if I am mistaken.
Thank you!


Use existing sections

Currently, netpyne creates a new h.Section() for every plastic synapse -- effectively creating a sim with as many cells as there are synapses!! So for a sim with 200 cells and 6000 plastic synapses, this fix makes the sim run 30x faster.

superseded by PR to develop


persistant mountpoint

I am trying webui in docker and created mount point and it got mounted successfully. I can access files from host as well.
I like to know that how can I make mount point created via webui persistant so it can servive reboot.

You only need to put the rclone mount commando in the "command" section in docker-compose or docker run. In that line you can also boot the web-gui.

type rclone rc
this will print out the manual to use rc.
from there you can figure out that you could mount drives like this after launching rcd first:
windows:
rclone rc mount/mount fs=suchremote: mountPoint=X: vfsOpt="{"""CacheMode""":2}" --user youruser --pass yourpassword
linux:
rclone rc mount/mount fs=suchremote: mountPoint=/mnt/x vfsOpt='{"CacheMode":2}' --user youruser --pass yourpassword
so in essence just chain these rc commands after launching rcd and you are good to go and all the mounts are running within the rcd process.


Need to import from submodules before doing top-level convenience export, also other minor fixes

Fixed this in main module file, may just tag this as v0.3.1 to also test docs build fix that @thazhemadam will hopefully add

Codecov Report

Merging #84 (482ebe6) into main (18d2765) will increase coverage by 0.51%.
The diff coverage is 0.00%.

:exclamation: Current head 482ebe6 differs from pull request most recent head 458f6d9. Consider uploading reports for the commit 458f6d9 to get more accurate results

@@            Coverage Diff             @@
##             main      #84      +/-   ##
==========================================
+ Coverage   80.57%   81.08%   +0.51%
==========================================
  Files          11       11
  Lines         314      312       -2
==========================================
  Hits          253      253
+ Misses         61       59       -2

Impacted Files
Coverage Δ

src/ChemistryFeaturization.jl
0.00% <0.00%> (ø)

src/atoms/atomgraph.jl
62.33% <ø> (+1.57%)
:arrow_up:

src/featurizations/graphnodefeaturization.jl
92.00% <ø> (ø)

Continue to review full report at Codecov.

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


jest: Invariant Violation: TurboModuleRegistry.getEnforcing(...): 'Payments' could not be found

Hi,
When using jest, tests of components that contain any code from this package all fail with this error:
Invariant Violation: TurboModuleRegistry.getEnforcing(...): 'Payments' could not be found. Verify that a module by this name is registered in the native binary.
Is this expected?

Adding this fixed it for me
const turboModuleRegistry = jest.requireActual(
    'react-native/Libraries/TurboModule/TurboModuleRegistry'
  );
  return {
    ...turboModuleRegistry,
    getEnforcing: (name: string) => {
      const modulesToMock = ['Payments'];
      if (modulesToMock.includes(name)) {
        return null;
      }
      return turboModuleRegistry.getEnforcing(name);
    },
  };
});

@KrastanD Would be nice if we could add this to the repository and provide easy mocking for the end users, also mention this in the docs, would you be so kind to create a PR for this?

Added this hint to the docs


Failing unit test for #1737

Shows the problem #1737

Fix for test: https://github.com/RSuter/NSwag/pull/1739

Thanks!


Give focus to existing editor tab when opening already opened file

Description
Currently, trying to open a file that already has an existing editor tab open results in nothing happening, which can be confusing to the user. By making this change, the file that the user is interacting with will always end up at the active editor tab regardless of whether it was already open or not.
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update
[ ] Code quality improvements

How to test
Try to open a file that is already opened as an editor tab, but is not the active editor tab. Focus should be given to the editor tab corresponding to the file being opened.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

5 of 5 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.007%) to 34.845%

Totals

Change from base Build<PHONE_NUMBER>:
0.007%

Covered Lines:
4791

Relevant Lines:
12810

💛  - Coveralls


ApiView

Add api view to KV admin settings
Pull Request Checklist
Please leverage this checklist as a reminder to address commonly occurring feedback when submitting a pull request to make sure your PR can be reviewed quickly:
See the detailed list in the contributing guide.

[ ] C++ Guidelines
[ ] Doxygen docs
[ ] Unit tests
[ ] No unwanted commits/changes
[ ] Descriptive title/description

[ ] PR is single purpose
[ ] Related issue listed

[ ] Comments in source
[ ] No typos
[ ] Update changelog
[ ] Not work-in-progress
[ ] External references or docs updated
[ ] Self review of PR done
[ ] Any breaking changes?

@LarryOsterman now that i have a json file , what do i do with it  ?

@gearama, please use more descriptive PR titles as they become commit messages. Generic titles (and commit messages) make it harder to look back through changes:

Descriptive title/description

Your PR description Add api view to KV admin settings is a lot more clear :)


Start building a few automated tests for Pygame GUI

Choose library for automated tests.
write a few tests
measure test coverage
require passing tests before merging branches/pull requests

pytest seems to be the preferred testing library. I may also need to learn about something called 'coverage' and something called 'tox'

Write initial round of tests for:

UIManager

Core

UIAppearanceTheme
UIFontDictionary
UIContainer
UIElement
ShadowGenerator
UIWindow
UIWindowStack

Windows

UIMessageWindow

Elements:

UIButton
UIDropDownMenu
UIHorizontalSlider
UIImage
UILabel
UIScreenSpaceHealthBar
UITextBox
UITextEntryLine
UIToolTip
UIVerticalScrollBar
UIWorldSpaceHealthBar


Make BadgeApp check for https:///contribute.json

contribute.json is a file format specification my Mozilla, supposed to be used by projects to list their participation data - name, description, bug tracker, mailing list, ...
It is still new, so it is still changing and there aren't many projects using it, but for those which do parsing it and prefilling the BadgeApp form might be a nice touch.
Main site:
https://www.contributejson.org/
Example:
https://www.contributejson.org/contribute.json

This seems like #505, but with a different format.
We could support both.

First, a clarification: Issue #505 is related but different.  Issue #505 is about adding an .about.yml file to the BadgeApp itself... and we could also add a contribute.json file.
However, this issue (#506) is about using this data when trying to fill in the form (e.g., with a Detective) is a sensible idea.  What criteria could potentially answered by it?  I think it'd be primarily useful for projects not hosted on GitHub - we could then use it to fill in description, issue tracker, etc.  We could use the contribute.json and an .about.yml file, if present, to help us fill in this info.


fix(aws-kinesisstreams-gluejob): Sample .ts code does not build

There's an S3 bucket naming issue when running the sample code in V2.
Reproduction Steps

import * as glue from '@aws-solutions-constructs/aws-kinesisstreams-gluejob';
import { aws_s3_assets, Stack, StackProps } from 'aws-cdk-lib';
import { CfnTable } from 'aws-cdk-lib/aws-glue';
import { Asset } from 'aws-cdk-lib/aws-s3-assets';
import { Construct } from 'constructs';

// import * as sqs from 'aws-cdk-lib/aws-sqs';

export class GlueStack extends Stack {
  constructor(scope: Construct, id: string, props?: StackProps) {
    super(scope, id, props);

      const fieldSchema: CfnTable.ColumnProperty[] = [
        {
            name: 'id',
            type: 'int',
            comment: 'Identifier for the record',
        },
        {
            name: 'name',
            type: 'string',
            comment: 'Name for the record',
        },
        {
            name: 'address',
            type: 'string',
            comment: 'Address for the record',
        },
        {
            name: 'value',
            type: 'int',
            comment: 'Value for the record',
        },
    ];

    const customEtlJob = new glue.KinesisstreamsToGluejob(this, 'custom-etl', {
        glueJobProps: {
            command: {
                name: 'gluestreaming',
                pythonVersion: '3',
                scriptLocation: new Asset(this, 'scriptlocation', {
                    path: `${__dirname}/../etl/transform.py`,
                }).s3ObjectUrl,
            },
        },
        fieldSchema: fieldSchema,
    });

  }
}

Error Log

Environment

CDK CLI Version      :
CDK Framework Version:
AWS Solutions Constructs Version     :
OS                   :
Language             :

Other

This is :bug: Bug Report

fixed by #634


Add Runner script which continuously runs and writes data to a directory.

Describe the solution you'd like
We need something we can stick into a process/ can be dockerized and which continuously produces data

runs until specified time is set or forever
is in top level directory "main.py"
requires install info in the default config directory to know where data should be placed

Describe alternatives you've considered
None

this has been done on #5. Merge in master pending, hence  still open


Add search support

How would this work interaction wise?
Through a web interface maybe?

This issue is more about reverse engineering and implementing the search API, than the UI

I see, native searching. The Web API is quite powerful though and well documented.


App build in Spfx framework and deployed to team is not working on ios from today

What type of issue is this?
other
What SharePoint development model, framework, SDK or API is this about?
💥 SharePoint Framework
Target SharePoint environment
SharePoint Online
What browser(s) / client(s) have you tested

[ ] 💥 Internet Explorer
[X] 💥 Microsoft Edge
[X] 💥 Google Chrome
[ ] 💥 FireFox
[ ] 💥 Safari
[X] mobile (iOS/iPadOS)
[X] mobile (Android)
[ ] not applicable
[ ] other (enter in the "Additional environment details" area below)

Additional environment details

browser version
SPFx version 1.10.0
Node.js version 10.23.0
etc

Issue description
A Spfx solution deployed in teams, keeps loading in ios. It does work in android, desktop and web.
Have checked in other environment and getting the same issue.

Can you share any information, like what isn't working?  Can you share the versoin of the iOS teams app you are using?

An app created using spfx framework, get stuck and shows likes this

the other weird thing is that if i add a SharePoint page as an app in teams, then try opening spfx apps..they start working

FYI: Same issue has been reported in msteams-docs
https://github.com/MicrosoftDocs/msteams-docs/issues/4110

I have found a solution to make it work for now. Same issue is raised on reddit forum has well
add the webpart on a sharepoint page first, then in manifest do the following

Hi, Still facing the issue, and it seems this has stopped working recently

Quick observations,
Deploy any app in teams having just a sharepoint page in it, then you open the app which is not working. It will start working.
I believe there is authentication issue

Yes, we are aware of the auth issues - is there any chance that you can confirm that a basic app in teams written in SPFx that does not do additional authentication (ie, you are accessing non-SP data) works?
For apps written in SPFx hosted in the iOS teams app, we believe the fix has now rolled to 100% prod as of this morning.  Can you confirm?

I have tested by just created a div using sharepoint framework, but it didn't work. It didn't have any additional authentication like graph sharepoint

Yes, we are aware of the auth issues - is there any chance that you can confirm that a basic app in teams written in SPFx that does not do additional authentication (ie, you are accessing non-SP data) works?
For apps written in SPFx hosted in the iOS teams app, we believe the fix has now rolled to 100% prod as of this morning.  Can you confirm?

any update on the fix:)

Related problem here. A Teams app calling our own API using AadHttpClient works fine when started from Teams in a browser but it does not get the Auth token when started from within the Teams Desktop Client (Windows):

seems like issue is resolved now. we can close this

Still having this issue on multiple tenants. We do have both Graph and SharePoint authentication for our app.

@sharepointalist - Rather than keeping this bug open to track the graph auth issue (vs. the app load issue), I'm going to close this one.  Can you open a new one specifically around auth flows in iOS?

Please re-open this issue as well. Stopped working from today again.
Also simple deployment of spfx webpart directly , by syncing it from sharepoint admin center doesnt work as well

So again, please don't reopen this issue, as it has all sorts context that is no longer applicable, etc.  Please open a new issue specific to what you are seeing.

@harshdamaniahd - can you confirm what exactly isn't working here for you?  Does the app not load / just spin in iOS?

just spin in iOS.
But if I open a sharepoint page in teams or open the same app from viva connection it starts working.
The app only works if somehow a sharepoint page is opened first inside teams

Sorry - more clarifications.  Simple HelloWorld app (can't authenticate to the app to launch it)?  or an app that is doing token acquisition to an external API / AAD / Graph in an onInit phase (at which point, the app host has loaded, but the token fetch is failing)?

Yes simple hello world webpart as well. It seems the code doesn't even reach unit.
But as soon as you open a sharepoint page, everything works, even graph query works

@harshdamaniahd  - can you check the current version of teams IOS?  Unfortunately this is fixed with our latest patch which is only available in 2021Sep-T1.  The August build does not have the fix in it, and that is the currently rolled out version.

I don't see any updates on my App Store

@harshdamaniahd  - can you check the current version of teams IOS?  Unfortunately this is fixed with our latest patch which is only available in 2021Sep-T1.  The August build does not have the fix in it, and that is the currently rolled out version.

When do you think the roll out will complete for everyone?


Fedora 31 RPMs

Use Case
the Fedora project has release version 31 to users. Could you please update the Puppet yum repository to support this new release.
Describe the Solution You Would Like
Update the Puppet yum repository with support for Fedora 31
Describe Alternatives You've Considered
Continue to use Fedora 30 rpms
thank you!

Hello! We're still waiting on Fedora 31 images to be available for building on - you can track that work at https://tickets.puppetlabs.com/browse/IMAGES-1153 . Once those are ready we'll add this asap!


How can I define query parameters?

Hi,
how can I define query parameters for an endpoint?
Thanks

Currently only path parameters can be added. Query parameters are not supported in current version. I will create a feature branch to add this feature.

I have added this functionality in a feature branch with PR#31


client is retrieving the whole metadata

The client is retrieving the whole metadata at the first call which is too large (more than 30MB). On slow connections it is a huge problem. Is there any parameter/setting to avoid fetch metadata?

On slow connections it is a huge problem.

Not really, unless they are really slow. Does the server not compress that properly? Metadata has 2 amazing properties:

It is static server side (i.e. you can cache it)
It is EXTREMELY nice to compress given that it is EXTREMELY repetitive ;)

I would not really wonder if that 30mb turn into 2-3 mb.
What you CAN do is not retrieve it. There is support for MetaDataDocument in clientsettings. So you can embed it in your application or cache it on disc.

As suggested by @NetTecture, you can place Metadata document locally and refer to it using ODataClientSettings.


spring cleaning part 2

@Thorin-Oakenpants wrote:

Am trying to cut down the user.js if I can

a few things we can remove IMO:

[x] user_pref("dom.allow_scripts_to_close_windows", false); - https://github.com/ghacksuserjs/ghacks-user.js/commit/449e32a8ca8d46ff6499d27ee1bed01e4c525b2c

default false (even in ESR52)
1 of the prefs in PK's ignore.list

[x]  user_pref("dom.disable_window_flip", true); - https://github.com/ghacksuserjs/ghacks-user.js/commit/449e32a8ca8d46ff6499d27ee1bed01e4c525b2c

default true (even in ESR52)
in PK's ignore.list

[x] 2733 (offline-apps.quota.warn) & maybe 2732 (browser.offline-apps.notify) - https://github.com/ghacksuserjs/ghacks-user.js/commit/f60a87f97f2d394441313bd4aa98dbc0a33de3be

was never active and we enforce sites to ask with 2731 + 2732 regardless of any quota
not in PK's user.js either
the text could be misunderstood to mean that FF will bypass the prompt enforced by 2731:
FF will store small amounts of data in the offline cache without asking for permission.

[x]  user_pref("network.http.fast-fallback-to-IPv4", true); - https://github.com/ghacksuserjs/ghacks-user.js/commit/c66d1b08e7c634d3a8aa3da8134d1c364fe98a1b

default true (including ESR52)
I'd also like to disable IPv6 but that's another issue

[x]  double entry for 0422 - https://github.com/ghacksuserjs/ghacks-user.js/commit/01bd2a4f6d414f0c877afefe69356444e050f08a

Basic is the default anyway but another problem is that selecting strict via the UI just adds ,content-track-digest256 to the default value.  We will see changes to the default value in the diffs but not changes to the to-be-appended part.

[x] 0101: browser.slowStartup.maxSamples & browser.slowStartup.samples & browser.slowStartup.notificationDisabled - https://github.com/ghacksuserjs/ghacks-user.js/commit/3edf7af85eb6f0bf9690e17b2100c5ff62e3fa3d & https://github.com/ghacksuserjs/ghacks-user.js/commit/3e5667fb3438bce37ad7e504f8625f6af7562acc

see comment below

[x] 0101 browser.rights.3.shown - https://github.com/ghacksuserjs/ghacks-user.js/commit/f113cf84c33771ce6be58c06fccf75ef1468f248
[x]  add removed prefs to scratchpad script - https://github.com/ghacksuserjs/ghacks-user.js/commit/8e60f412e47453c798e83c530e0bb2570386c143

I actually think that offline-apps.quota.warn hasn't worked for years - I swear I've seen a few bugzillas about it.

Never worked here in years.

offline-apps.quota.warn introduced in 2008 in 397416 and then 8 yrs ago 621158 someone said it didn't warn you if it was in a iframe. Not much else I can find in a quick search. Would be totally surprised if that's been working flawlessly for over 10 years.
I think we need to make it clear (and check) that offline use is NOT the same as appCache. 2731+32+33 are not 2730 AFAIK.
On a side note: The whole new Storage v2 will probably make a diff

testpage: http://webdbg.com/test/appcache/ - you need to allow appcache on insecure sites!

All of 273x IS about the same thing ie offline cache aka appCache

you can also verify that this is the case via about:cache. It's listed under appcache but the file is called OfflineCache and when you set browser.cache.offline.enable to false the Storage disk location changes to none, only stored in memory

offline cache is kinda useless anyway in our case because we clear it on shutdown
the warning pref DOES work but isn't of much use (all 3 prefs DO work, at least to some extent: maybe the warning isn't displayed if it's in an iframe, IDK). If you set it to 1kb you'll get this message:

By default you'll only get this message when a site stores more than 50MB
2732 browser.offline-apps.notify is default true even in ESR52 so we can remove that as well IMO. If you'd set this to false you would not get the above warning message
the important pref here is offline-apps.allow_by_default which controls the prompt to allow or block appcache access

This is semi-confusing AF, because 2730 we tested and it did prompt (when we can to make that pref inactive due to the Site Data UI). But with 2731+ in those examples and in the above test, it doesn't prompt, it only tells you (if you lower the warning quota). There's some difference here.
Its also a tad confusing with ESR52.x, eg there is no "Offsite/offine Data" site permission in FF60
Long story short, it's pretty much deprecated as a technology (since FF44 I believe, hence why no one cares about it), replaced by SW.
https://bugzilla.mozilla.org/show_bug.cgi?id=959985#c8

appcache is being replaced by serviceworkers.. only critical fixes are accepted in the interim.

[1] https://www.fxsitecompat.com/en-CA/docs/2016/application-cache-support-will-be-removed/
[2] https://www.fxsitecompat.com/en-CA/docs/2018/support-for-application-cache-on-insecure-sites-has-been-deprecated/
Given that FF60+ (pref 2730b) means its only non-secure sites, and given the rapid uptake now with HTTPS, exposure is low IMO. Doesn't help ESR52.x though (you dinosaurs!).
BUT, it does exist in the wild. Clearing on exit is one thing, but does nothing to block it being stored in the first place (for tracking in the same session). But again, low risk IMO. However, we don't have a complete solution, and probably never will.
I suggest based on defaults for ESR, remove as much as possible of 2731+32+33?

I suggest based on defaults for ESR, remove as much as possible of 2731+32+33

2732: user_pref("browser.offline-apps.notify", true);

both ESR52.8 + FF60 are default true

2733: // user_pref("offline-apps.quota.warn", 51200);

both ESR52.8 + FF60 are default true
was only ever added as inactive with defaults as a FYI (hence why it matches)

These TWO can we removed, IMO.

2731: user_pref("offline-apps.allow_by_default", false);

both ESR52.8 + FF60 are default true

And keep this one. That's it. Just remove 7 lines (2732+33). :+1: if this is OK.

new 0422 ?
/* 0422: set Tracking Protection list to use: "basic" or "strict"
 * If you wish to use "strict", use the preferences UI to get the correct pref value
 * [SETTING] Privacy & Security>Tracking Protection>Change Block List
 * [SETTING-ESR52] Privacy>Use Tracking Protection>Change Block List ***/
   // user_pref("urlclassifier.trackingTable", "test-track-simple,base-track-digest256"); // basic (default)

note: also changed "enable" to "set", because it might implies that this is the TP enabling pref. Also "tracking protecting" -> "tracking protection" :+1:  or :hankey:

I'd prefer something like this (without listing the pref):

I spose. I like the pref being there, because it maps the UI to the pref. Although 0902 doesn't have one, but added to make a complete 0900s. We can always look at it again in 63
@fmarier should be able to give us some insight on the strings used

Haven't read the articles yet, but saw them earlier (eg reddit). I would suspect that the pref will just concatenate the selected lists.

Haven't read the articles yet, but saw them earlier (eg reddit). I would suspect that the pref will just concatenate the selected lists with a delimiter

Yes, that's what it does. Switching to the "strict" list for example, adds the content-track-digest256 list to urlclassifier.trackingTable. That's the difference between basic and strict.
This crypto-mining and fingerprinting stuff will show up as new lists (probably something like miners-track-digest256 and fingerprinting-track-digest256 TBD).

Found 2 more to remove
user_pref("browser.slowStartup.maxSamples", 0);
user_pref("browser.slowStartup.samples", 0);

the slowStartup function immediately returns when browser.slowStartup.notificationDisabled is true, in which case those 2 prefs are never used.
IDK if we need to disable the slowStartup check at all. It's kind of nice to be able to see the average startup time (stored in browser.slowStartup.averageTime). And I don't think disabling it improves startup time by all that much.
All it does is measure average startup time and if it's higher than the value of browser.slowStartup.timeThreshold (+ the profile age is older than 3 months) it shows a message with 2 buttons: help + disableNotification. Clicking "Help" just opens https://support.mozilla.org/kb/reset-firefox-easily-fix-most-problems in a new tab.

And I don't think disabling it improves startup time by all that much.

I don't think you'll care about it when you move from ESR52 :snail:  to 60 :rocket:

then why not remove browser.slowStartup.notificationDisabled too? it's not security or privacy related

true. I considered it. Its similar to 0000 general.warnOnAboutConfig. Once you set it on a prompt, its done.
We could also get rid of the shit about rights, check default browser, even the welcome ones.
 I will remove it.
My point was your distinction about it being non-privacy/security. So I was just trying to be consistent. All that 0101 stuff really does belong in the 5000s. This them allows us to make some 5000s active based on overrides. I also think most of the 0101s are first runs (welcome urls? rights?) and we could lose that crap if we wanted to. Ideas welcome - keep em coming.

browser.rights.3.shown was introduced in FF 3.1b2 (remember the good ole days!! /s) see 462254 or rather this patch
DXR for both central and esr52 show its only in one place (well esr52 has it in a firefox.js as well which is just a massive list of pref values) - click here
I reset it in my FF60 (and commented it out in my profile user.js) and restarted several times. It doesn't seem to do anything. I really do not think this is even used anymore (come on, FF3!! A doorhanger for know your rights? it must have been replaced by something else, eg the urls loaded on new installs). I am not sure about a app update, but I could test - or you could maybe follow the code a little.

I did some testing.
FF 52.8: new profile: two pages load

Welcome to FF ( https://www.mozilla.org/en-US/firefox/52.8.0/firstrun/ )
FF Start Page
browser.rights.3.shown = true
reset to default false and restart
it got changed back to true

FF60 new profile: two pages load

Welcome to FF ( https://www.mozilla.org/en-US/firefox/60.0.1/firstrun/ )
FF Privacy Notice ( https://www.mozilla.org/en-US/privacy/firefox/ )
browser.rights.3.shown = false

AFAICT, ESR52 just sets the sucker regardless to true, and FF60 ignores it entirely

Thanks for the links - the rights pref is pretty much "dead" AFAIC (so it moved to a snippet, and since 57 hasn't been factored in at all, etc). Most of these 0101 prefs came from a TBB patch, and I guess this was so they didn't show mozilla's legal info etc. It's a non-event pref (re privacy/security) so it can go rather than clutter up deprecated.
I need to think about the startup messages. What's so bad about being told you updated (esp when auto-updated)? Can't see it being annoying really with how few dot releases are done. If we keep them, they could go in personal, or in keeping FF quiet, or stay in startup.
I also want to check out laterun (and yeah, fix up that title and description)

Not trying to spam (just an honest question!), bt the whole trackingprotection deal; do you guys, actually, use it?!
As we've got various ad-blockers, script-blockers and /or other Add-ons - who's using the built-in lists?.. Would it not make more sense to go around Mozilla, since we're excluding - pretty much - everything else??
o.0

If you use the user.js as is, then TP is off - its only on in PB mode by default. Personally, I never use PB mode because one off windows are not automated (i.e domains can't be assigned to auto-magically use PB mode, unlike containers), so therefore I never use TP.
That said: it can't hurt .. if at least one entity blocks a request, then it is blocked (eg if uBO allows it thru, but TP blocks it, then it is blocked: and vice versa), so it really comes down to efficiency of lists and overhead. The user.js defaults don't block anything, i.e they are inactive, so at least users can flip on some extra protection, eg from the UI, and the user.js doesn't interfere. So there is no benefit in disabling it, but the info is there for those who want to.

so ... where are we at
/* 0101: disable some startup options ***/
user_pref("browser.laterrun.enabled", false);
user_pref("browser.shell.checkDefaultBrowser", false);

I will dig some more into laterrun (looks likely I will ditch it). That leaves default browser check, which leaves me in two minds - it is a privacy/security setting in the sense that wouldn't you WANT your external links to opened in your FF - and if something else takes over the file associations etc you would WANT to be notified.
On the other hand, you can't do this in FF portable (I have no idea how Linux works with this) since the file set as the default is FirefoxPortable.exe, not firefox.exe (either in the respective 32 or 64 bit app/ sub dirs). And if anyone clicks "yes" when prompted with portable, when you relaunch, it acts like an installed version and creates a new profile (on windows) under username/appdata or whatever it is.
Also, as soon as I move to 61-alpha (when I can close this), startup page options/settings UI changes in 61, so we can update 0102+0103 and 0514 - and also look at including FYI browser.newtab.url eg as about:blank (which is one of the drop down options)

I will dig some more into laterrun

looking forward to hear what you uncover :trollface:
browser.newtab.url was removed a long time ago.
The 2 drop down option prefs are browser.startup.homepage and browser.newtabpage.enabled

FYI: browser.newtab.url exists in my shiny FF60

hmmm still not entirely sure what a laterrun is. But the default in FF60 is false. BRB, will check in 52.8
Note: https://bugzilla.mozilla.org/show_bug.cgi?id=1200639

do we want to do anything about the default check pref? If not, I can close this, and after your DNT flip, we can move to 61-alpha and deal to the startup/newtab/homepage options
just lemme know what u want to do

Supported on: Windows 10

Source

do we want to do anything about the default check pref?

no


Reaper v6.23 and sws notes action

I have a portable Reaper install, v6.23, on two separate win 7 computers. One is purely for testing - themes, theme edits, software etc. Both have/had sws v<IP_ADDRESS> 98b2dbb9 Feb 6 2021 on them.
When I updated I noticed that sws project notes action did not work as it should on my main computer. The Notes tab was docked as I expect it to be though a single click on the tab just shows a blank area - no notes. When I undock it by right clicking on the tab, it popped up as a separate window, as it should. When I docked it again it showed as a tab but with a blank area. Then no amount of clicking on the tab would make it show anything, just a blank area, and again it popped up when I right clicked and undocked it.
On my testing computer it all worked as it should - weird. So I uninstalled the current sws version on my main computer and reinstalled an older version sws-v<IP_ADDRESS>-x64-install and all worked well - there may be a couple of newer versions before the current one which I can try.
https://forum.cockos.com/showthread.php?p=2413097#post2413097

Updated to Reaper v6.25 and no difference.
sws-v<IP_ADDRESS>-x64-install works with Reaper 6.24 and 6.25 action notes


Grouping clients by channel with invalid request returns status code 500

BUG REPORT

What were you trying to achieve?
I tried to add clients to a channel with request with invalid JSON body.

What are the expected results?
Status code 400 (Bad Request).

What are the received results?

HTTP/1.1 500 Internal Server Error
Content-Type: application/json; charset=utf-8
Date: Wed, 14 Mar 2018 16:35:33 GMT
Content-Length: 0

What are the steps to reproduce the issue?
Send following request with valid user_token, channel_id and client_id:

curl -s -S -i --noproxy localhost -X PUT -H "Content-Type: application/senml+json" -H "Authorization: <user_token>" localhost:8180/channels/<channel_id> -d '{"name":"mychan", "connected": ["<client_id>"]}'

In what environment did you encounter the issue?
I run mainflux locally on OS X, Postgres 9.6, NATS v1.0.4.

@anovakovic01 Refer to this #182

@Maxpeng92 Thanks for the link, but this issue is referring to the fact that mainflux is returning status code 500, instead of 400 for invalid request. I am aware that this request shouldn't work, as it doesn't. Still, I think that there shouldn't be a case where client receives status code 500. This indicates that there is an error that is not handled properly.


Move database operations inside the session context

What is this PR for?

Error state saving was done when the session could be already disposed

Signed-off-by: Andraž Cuderman<EMAIL_ADDRESS>

Codecov Report

Merging #1633 (0da83a1) into main (d00050f) will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main    #1633   +/-   ##
=======================================
  Coverage   95.67%   95.67%
=======================================
  Files         528      528
  Lines       32643    32643
=======================================
  Hits        31230    31230
  Misses       1413     1413


Using underscores instead of periods in user IDs

See https://github.com/swcarpentry/website/issues/90.

Okay, I looked into this and there's a huge impact: we're basically changing users' login data.
What I suggest we should do is return an underscored name in the API instead - that's the only way the website talks with AMY, right?

But how many users have logins?

Well everyone has a username, and 17 people have login access.

Easy to regenerate user names, and better to do it now with 17 people
than a year from now with more.  If this cuts one custom build step out
of the website, I think it's worth doing.

Closing via #645.


IdDt.isLocal doesn't work correctly 0.7.1

If a resource is encoded as a contained reference in XML,'#' is set to the first position of th id. But IdDt.isLocal() check the ID part, not the compined string!
Example:
[ResourceReferenceDt[reference=#Medication/499059CE-CDD4-48BC-9014-528A35D15CED/_history/1,loaded=true]]
Backround: BaseParser set the '#' in front of the whole IdDt, IdDt.isLocal() expects the '#' only on the id part. It seems that this is the problem.
BaseParser.containResourcesForEncoding(IResource theResource, IResource theTarget) @line 157: next.setReference("#" + resource.getId().getValue());
IdDt.isLocal() @line 309.
return myUnqualifiedId != null && myUnqualifiedId.isEmpty() == false && myUnqualifiedId.charAt(0) == '#';

Sorry, #67 has been fixed the Problem.
Please retract the issue!

Oops, I was offline for a few days and didn't even see that you had closed this. :)
Thanks for following up, glad it's resolved!


Release 2023.1.2

Fixes deployment issues caused by SVGs in the README

/scheduletag 2023.1.2 merge


Add a button to change the joke content.

https://github.com/sopra-fs23-group-22/sopra-fs23-group-22-client/commit/fa22515e5b30e7118fe28002ed66c407ca6444de
a preliminary version of the joke generator

https://github.com/sopra-fs23-group-22/sopra-fs23-group-22-client/commit/37d4f6536d273515a02a2ae9a9a40713a54e3dc7
embed the joke generator to the main branch, updating the format using custom pop up component


Finder does not find files (supposed to be) generated at earlier steps...

We are running finder at the command line. Now we know that the "Required parameters" as in the help file, and if provided in an empty directory do not work, and we have solved that problem... However, with this command:
finder  -mf $PWD/ev-mRNA-metadata_1002_10AM.csv -n 118 -out_dir $PWD/output_1002 -g $PWD/mm10.fa -om VERT -gm $PWD/gmes_linux_64_4 -gml $PWD/gmes_linux_64_4/LICENSE
we get this Error message:
'FileNotFoundError: [Errno 2] No such file or directory: $PWD/output_1002/assemblies_psiclass_modified/combined/combined.gtf'
we don't know how to generate this file... :)
any idea how to solve the problem?
Thanks, and have a nice evening.

Thank you Sagnik,
This time we ran Finder in a Container using Singularity on a machine with 128 cores. The run stopped at the generation of the SIF file with the following Error:
INFO:    Creating SIF file...
Traceback (most recent call last):
File "/softwares/FINDER/Finder/finder", line 688, in
main()
File "/softwares/FINDER/Finder/finder", line 628, in main
validateCommandLineArguments( options, logger_proxy, logging_mutex )
File "/softwares/FINDER/Finder/finder", line 160, in validateCommandLineArguments
options.verbose = int( options.verbose ) if int( options.verbose ) <= 3 else 3
ValueError: invalid literal for int() with base 10: 'ERROR'
at the command line i provided additional nonmandatory parameters:
run_finder  --metadatafile $PWD/ev-mRNA-metadata_1006_1PM.csv               --output_directory $PWD/output_1006         --genome $PWD/mm10.star/star-indices/mm10.fa           --organism_model VERT           --genemark_path $PWD/gmes_linux_64_4            --genemark_license $PWD/gmes_linux_64_4/LICENSE         --cpu 118               --genome_dir_star $PWD/mm10.star/star.indices/               --genome_dir_olego $PWD/mm10.bwa/         --verbose ERROR         --protein $PWD/mm10.star/uniprotkb_proteome_UP000000589_2023_10_06.fasta               --framework singularity
The Error seems standard and looks like in the code; i believe the problem is on "our side"...
Any ideas? We will greatly appreciate your help.
Have a nice weekend.
--
Iliya Lefterov, MD, PhD
Professor, University of Pittsburgh
@.***
@.***
412 383 6906 http://voice.google.com/calls?a=nc,%2B14123836906 - office
412 576 9923 http://voice.google.com/calls?a=nc,%2B14125769923 - mobile
412 449 9195 http://voice.google.com/calls?a=nc,%2B14124499195 - mobile

From: Sagnik Banerjee @.>
Sent: Tuesday, October 3, 2023 12:09 PM
To: sagnikbanerjee15/Finder @.>
Cc: Lefterov, Iliya @.>; Mention @.>
Subject: Re: [sagnikbanerjee15/Finder] Finder does not find files (supposed to be) generated at earlier steps... (Issue #80)
Hi @lefterovhttps://github.com/lefterov,
Thank you very much for your interest in finder. Could you please check your error files? We have witnessed cases where the pipeline continues after failing.
Thanks.
—
Reply to this email directly, view it on GitHubhttps://github.com/sagnikbanerjee15/Finder/issues/80#issuecomment-1745293987, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AANSETTCQ4OTILERLHKRX5LX5Q2EHAVCNFSM6AAAAAA5QGZNWCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONBVGI4TGOJYG4.
You are receiving this because you were mentioned.Message ID: @.***>

Hi @lefterov,
Could you please rerun it without the --verbose option?
Thank you.

Singularity without --verbose didn't work either.
We moved to the docker container; at the command line:
run_finder  --metadatafile $PWD/meta/ev-mRNA-metadata_1012.csv
--output_directory $PWD/output_1006
--genome $PWD/mm10.star/star-indices/mm10.fa
--organism_model VERT
--genemark_path $PWD/gmes_linux_64_4
--genemark_license $PWD/gmes_linux_64_4/LICENSE
--cpu 118
--genome_dir_star $PWD/mm10.star/star.indices/
--genome_dir_olego $PWD/mm10.bwa/
--protein $PWD/mm10.star/uniprotkb_proteome_UP000000589_2023_10_06.fasta
--framework docker
we get this error:
1.1.0: Pulling from sagnikbanerjee15/finder
Digest: sha256:9816d258d2421d4625983c929f508b1f577cfe7ab3bc2042e841647a186c7931
Status: Image is up to date for sagnikbanerjee15/finder:1.1.0
docker.io/sagnikbanerjee15/finder:1.1.0
done
Traceback (most recent call last):
File "/softwares/FINDER/Finder/finder", line 688, in
main()
File "/softwares/FINDER/Finder/finder", line 637, in main
readMetaDataFile( options, logger_proxy, logging_mutex )
File "/softwares/FINDER/Finder/scripts/fileReadWriteOperations.py", line 113, in readMetaDataFile
fhr = open( options.metadatafile, "r" )
FileNotFoundError: [Errno 2] No such file or directory: '/home/iliya/Projects-2023/example_mouse-0918/mRNAseq/meta/ev-mRNA-metadata_1012.csv'
(finder) [iliya@EOH-LEFTEROV2 mRNAseq]$
**** The file is there; however no matter it is $PWD, or in a subdirectory (the code above) I get the same error.
it is very possible that the problem is "us"... but where exactly?
Thanks for your time and help.

@lefterov
This issue could be due to the formatting of your metadata file or your reads. Have your paired-end(?) reads been split beforehand? e.g. from reads.fastq to reads_1.fastq + reads_2.fastq (using SRA toolkit's fastq-dump).


Add TaskResult.cancellable to allow for cancellation errors to not be wrapped as part of the result

In the app I'm working on at work presently, I've found that normal TaskResults aren't as ideal when used in a context where tasks can be cancelled, as those cancellation errors could be processed by the reducer at a point where I don't want them to be (like after nilling out some optional state that an ifLet reducer uses). I also would prefer to not need to filter out cancellation errors from my reducers if a taskresult that can be cancelled would have that cancellation error fed into a reducer action.
For tasks that I know can be cancelled and that I want to keep free of cancellation errors, I've added this static function in my own codebase which has helped. Usage-wise it looks like this:
case .someAction:
  return .run { send in
    try await send(.responseAction(TaskResult.cancellable { try await someOperation() }))
  }
}

Cancellation errors are thrown so that they could be handled and ignored by EffectTask, while non-cancellation errors are still wrapped in the TaskResult to be processed by the reducer.
I figured this would be valuable to other folks using TaskResult, hence this PR. I would argue that this behavior should instead go in TaskResult.init(catching:) but I don't want to introduce a source-incompatible change that would require lots of people adding try everywhere, especially if they may not want this behavior yet.

Hey @klundberg! Thanks for taking the time to PR. We actually considered this as the default functionality in this PR:
https://github.com/pointfreeco/swift-composable-architecture/pull/1934
The discussion there may be illuminating, but we came to the conclusion that TaskResult should be sugar for do { … } catch { … } in the same way Result is, and that swallowing cancellation errors should be at the Effect.run level only. In general, when you have an effect that expects to feed data into the system, you likely have intermediate state, like isLoading, that should be cleaned up, and if you swallow cancellation then you have no ability to do so.
I definitely think your helper is useful if you are careful and know what you're doing, but I think we probably don't want to ship it directly in the library, as it may lead to folks accidentally introducing bugs into their applications in some cases. What do you think?

I'm all for caution here, and if you think it's not appropriate as a built-in library feature due to potential misuse then I'm ok with not including it. Thanks for linking that PR as well, I hadnt seen it and the discussion was good to read, and some of the examples i hadnt thought of as well regarding possible bugs.
I don't recall if this is how things work today or not, but if automatic cancellation with the new navigation features avoids the issue of sending cancellation errors into the reducer when its state is cleared, then that's one fewer thing to need to worry about solving with a cancellation-aware task result.
I'll close the PR then and keep an eye out for any future discussion on this topic :)


[general, attributes] Make the thread.id attribute a string

Context: https://opentelemetry.io/docs/specs/semconv/general/attributes/#general-thread-attributes
In C++, there is no guaranteed integral conversion of std::this_thread::get_id() (https://github.com/googleapis/google-cloud-cpp/pull/13151/files#r1397504258)
So we are storing the attribute as a string in our implementation. Can we update the spec to make the attribute value a string or an int?

cc @open-telemetry/cpp-approvers

In C++, there is no guaranteed integral conversion of std::this_thread::get_id()

This is correct, and applicable to both C++ and Rust. The core issue is that there isn't a universally safe and portable method to convert thread identifiers into a numeric (integer) form due to concerns around type safety. This contrasts with higher-level languages that operate atop a managed runtime environment. These higher-level languages can afford to abstract away the complexities and offer a more simplified, integer-based representation of thread identifiers.
For applications written in C++ or Rust, the realistic strategies boil down to a couple of workarounds:

Transforming the thread identifier into a hash and using that as a unique identifier, though this comes with the usual caveats about potential hash collisions.
Setting up a custom mapping between std::thread::id and integers, safeguarded by a mutex for thread safety.

However, both of these methods introduce extra complexity and potential performance hits, making them less than ideal solutions.
cc @open-telemetry/rust-maintainers @open-telemetry/cpp-maintainers

what do thread ids look like in C++/Rust?

thread id is an abstraction over the internal platform-specific representation or implementation of a thread, and it may or may not be an integer. The C++ Standard does not mandate std::thread::id to be a numeric value; as long as it is unique and can be compared. As an example, the below stuff builds successfully for posix/gcc, but not guaranteed to compiler for other compilers/platforms - https://godbolt.org/z/Eje4eWvcj
#include <thread>
#include <sstream>
#include <string>
#include <iostream>

int main() {
    std::thread::id threadId = std::this_thread::get_id();
    std::ostringstream oss;
    oss << threadId;
    std::string threadIdStr = oss.str();
    std::cout << "ThreadId as string: " << threadIdStr << std::endl;
    std::cout << "ThreadId as long :" <<stol(threadIdStr);
}

o/p:
ThreadId as string:<PHONE_NUMBER>96608
ThreadId as long :140550312396608

The C++ Standard does not mandate std::thread::id to be a numeric value; as long as it is unique, can be converted to string for debugging purposes, and can be compared.

Just to clarify, sometimes it will be a string that represents a number, e.g. "140550312396608", and sometimes it will be a string that doesn't represent a number, e.g. "bZUPbvaY4d"?

Just to clarify, sometimes it will be a string that represents a number, e.g. "140550312396608", and sometimes it will be a string that doesn't represent a number, e.g. "bZUPbvaY4d"?

Thats correct.

Other than it being a breaking change, changing thread.id from number to string seems ok.
I don't think the number-ness of the value is important (other than, again, of it being a breaking change).
@tedsuo @jack-berg @jsuereth any thoughts on the defacto stability status of thread.id?

@mjwolf do you know anything about type of thread.id, if we had problems with number type before?

Given the OTel definition of thread.id is "Current “managed” thread ID (as opposed to OS thread ID).", I don't have any objection to this being a string.
The ECS field usually refers to the OS thread ID, which should be a number. The OS thread ID is a number in all major OSs.
With OTel, I think there should be an additional attribute that is specifically for OS thread ID, with number type. It's a bit of a potential problem in ECS that the type of thread ID to use in the field is not well defined, and users could use it for both runtime or OS thread ID. I haven't seen heard of any actual problems related to it in ECS, but by having separate attributes in OTel, any problems could be avoided.

but by having separate attributes in OTel, any problems could be avoided.

But what does that mean for ECS users? That would be breaking for them, no? (if we introduce a thread.os.id) 🤔

Given the OTel definition of thread.id is "Current “managed” thread ID (as opposed to OS thread ID).", I don't have any objection to this being a string.
The ECS field usually refers to the OS thread ID, which should be a number. The OS thread ID is a number in all major OSs.
With OTel, I think there should be an additional attribute that is specifically for OS thread ID, with number type.

this is a great point. it sounds like it makes sense to have separate attributes for "managed" thread id and "os" thread id, since you may want to stamp both things onto the same telemetry.
@open-telemetry/semconv-system-approvers any thoughts?

With OTel, I think there should be an additional attribute that is specifically for OS thread ID, with number type.

this is a great point. it sounds like it makes sense to have separate attributes for "managed" thread id and "os" thread id, since you may want to stamp both things onto the same telemetry.

std::this_thread::get_id() in C++ gives you the OS thread id, so there would be a similar problem with an integer thread.os.id.
If this breakage is acceptable for ECS, I'd advocate for staying with a single thread.id as a string. Although it's a number in all operating systems I know, there's no sense in applying number specific operations and comparisons to it (sums, averages, greater than ...).

If this breakage is acceptable for ECS, I'd advocate for staying with a single thread.id as a string. Although it's a number in all operating systems I know, there's no sense in applying number specific operations and comparisons to it (sums, averages, greater than ...).

How are we going to ensure the "managed" thread id VS "os" thread id then?
The current description clearly states "Current “managed” thread ID (as opposed to OS thread ID)". Will this be changed? And if so how we will be able to know from where the single attribute's value is derived (managed/os)?

How are we going to ensure the "managed" thread id VS "os" thread id then?

If we're confident that we need to make this distinction, then a possible solution would be to stay with thread.id as number for "managed" threads (doesn't apply to C++ and Rust), and thread.os.id as a string (to satisfy C++ and Rust constraints).
A question to ECS folks: in your experience, is there a need to distinguish between managed and OS thread ids?

The ECS field usually refers to the OS thread ID, which should be a number. The OS thread ID is a number in all major OSs.

Agreed, however, the C++ and Rust constraints stem from the fact that those languages (and their standard libraries) have to support exotic operation systems.

If we're confident that we need to make this distinction, then a possible solution would be to stay with thread.id as number for "managed" threads (doesn't apply to C++ and Rust), and thread.os.id as a string (to satisfy C++ and Rust constraints).

I think this should be reversed? Managed thread ID should be strings, and OS thread ID should be number. But I agree they should have different types.
The C++ thread ID is the managed/higher-level ID, and AFAIK all OSs use numberic thread IDs.  Also, as OS thread ID and process ID are very closely, it wouldn't make sense to me to have PID be number, and TID be string. The OTel PID field is already a number, and changing PID to string to match TID would be a larger breaking change. Unless anyone knows of an OS that actually uses non-numberic PID/TID, I think both should be a number type.

A question to ECS folks: in your experience, is there a need to distinguish between managed and OS thread ids?

I think it's important to have managed and OS thread ID as separate fields, as they are separate logical concepts.  If it was only one field, an application that wanted to send both managed and OS thread ID in the same log wouldn't be able to include both. Also, if different applications use the different types in the single field, it will cause confusion and data integrity problems later, as it won't be possible to know what is actually stored in the field. With ECS, I haven't heard of these problems happening with thread ID specifically, but I have heard of these problems with other fields, so it would be best to avoid these problems with thread ID.

But what does that mean for ECS users? That would be breaking for them, no? (if we introduce a thread.os.id)

Yes, this would be a breaking change. We could also go the other direction. Make thread.id as OS id to not break ECS and add additional field for managed thread id.

The C++ thread ID is the managed/higher-level ID, and AFAIK all OSs use numberic thread IDs.

I see. std::thread directly wraps OS threads in all cases I'm aware of, however, we aren't guaranteed to obtain the OS thread id, so it makes sense to classify those as "managed" threads.

I think this should be reversed? Managed thread ID should be strings, and OS thread ID should be number. But I agree they should have different types.

Makes sense.
@mjwolf @trisch-me Would you agree with the following approach:

As thread.id is defined to hold a "managed" thread id, let's make it a string (which resolves this issue).
Discuss the introduction of OS thread ids and compatibility with ECS in a separate issue.

Hey @pyohannes let's do it then. So it seems we need to differentiate between OS and managed thread. In this case let thread.id to be a managed thread as it is now and change type to string
As for OS thread if - let's discuss it here

Hey @pyohannes let's do it then. So it seems we need to differentiate between OS and managed thread. In this case let thread.id to be a managed thread as it is now and change type to string

Great, I opened #836 for this.

Why not having semantic conventions for each runtime/language instead?
E.g. jvm.thread.id, jvm.thread.name for Java, go.goroutine.id for Go, python.asynciotask.name for Python, etc.

E.g. jvm.thread.id, jvm.thread.name for Java, go.goroutine.id for Go, python.asynciotask.name for Python, etc.
I would leave thread.id and thread.name for OS thread ID and name (https://github.com/open-telemetry/semantic-conventions/issues/812). This way we can solve the issue without making breaking "syntactic" changes in the scheme.

That's definitely a possible solution (not syntactically but semantically breaking).
As I wrote in https://github.com/open-telemetry/semantic-conventions/pull/836#issuecomment-2025446934, as we have breaking changes with either solution approach, we should aim at having them result in a comprehensive and consistent solution (that can ideally be declared stable) and avoid piece-meal breaking changes.
I'll bring it up in the next semconv SIG meeting, maybe it makes sense to pause work on this and make breaking changes when we are serious about stabilizing thread.* attributes.

This was discussed in the semantic conventions SIG.
Given that thread.id is already widely used and that any of the proposed solutions would involve breaking changes, we postpone work on this for one until somebody has the cycles to propose, present, and discuss a coherent and comprehensive solution that encompasses both OS thread id and name and managed thread id and name and thus resolve both this issue and #812.
This should result in a solution that can then be declared stable.

@pyohannes, are there any missing things if we define thread.id and thread.name are for OS threads?
The managed threads should be language-specific semantic convention.
Are there any concerns with this proposal?