feat(android): Add AndroidTestSourceSetCollector

Extract all the android source sets using AGP

@fmck3516 now we have the right source sets but the plugin is still not working. Maybe we also need to provide the exact path to the compiled class files? Right now we provide the path to /build dir only, in android class files are located not in build/classes/java

@fmck3516 now we have the right source sets but the plugin is still not working. Maybe we also need to provide the exact path to the compiled class files? Right now we provide the path to /build dir only, in android class files are located not in build/classes/java

classesDirs needs to point to the output folders (not the source files):
build/intermediates/javac/debug/classes
build/intermediates/javac/debugUnitTest/classes
...
build/tmp/kotlin-classes/debug
build/tmp/kotlin-classes/debugUnitTest
....

buildDir pointing to build is okay (it's only used for https://www.skippy.io/docs/#coverage-for-skipped-tests).

Love the PR 👍
I assume that there is more work required (see below), but I'm tempted to merge it since it's a great first step towards Android support.
One thing that might cause issues is the fact that outputs for the release and debug build types are now cobbled together in test-impact-analysis.json:
{
    ...
    "classes": {
                ...
		"16": {
			"name": "com.example.testskippy.JavaSkippy",
			"path": "com/example/testskippy/JavaSkippy.class",
			"outputFolder": "build/intermediates/javac/debug/compileDebugJavaWithJavac/classes",
			"hash": "CFA4BEFE"
		},
		"17": {
			"name": "com.example.testskippy.JavaSkippy",
			"path": "com/example/testskippy/JavaSkippy.class",
			"outputFolder": "build/intermediates/javac/release/compileReleaseJavaWithJavac/classes",
			"hash": "CFA4BEFE"
		},
                ...
		"22": {
			"name": "com.example.testskippy.MyJavaSkippyTest",
			"path": "com/example/testskippy/MyJavaSkippyTest.class",
			"outputFolder": "build/intermediates/javac/debugUnitTest/compileDebugUnitTestJavaWithJavac/classes",
			"hash": "2E272DFA"
		},
		"23": {
			"name": "com.example.testskippy.MyJavaSkippyTest",
			"path": "com/example/testskippy/MyJavaSkippyTest.class",
			"outputFolder": "build/intermediates/javac/releaseUnitTest/compileReleaseUnitTestJavaWithJavac/classes",
			"hash": "2E272DFA"
		},
                ...
	},
    "tests": [
		{
			"class": 22,
			"tags": ["PASSED"],
			"coveredClasses": [16,17,22,23]
		},
		...
    ]
}

At runtime, Skippy picks the first entry that matches a given class name:
https://github.com/skippy-io/skippy/blob/4d0a4a6f76634cf4f239d2b68d716e9167b34ff4/skippy-core/src/main/java/io/skippy/core/TestImpactAnalysis.java#L137-L139
Have to think about how to properly separate the data for the release and debug build types.
BTW: That's not directly related to Android-based builds. I already had that on my radar: https://github.com/skippy-io/skippy/issues/133


Add complete details on how to integrate with Django

I had a bad time configuring procrastinate into an existing Django project. After some hours I figured it out and wanted to describe all the details on the Django howto.
If there's a better way, please tell me and I'll update this PR. :)

Successful PR Checklist:

[ ] Tests

[x] (not applicable?)

[x] Documentation

[ ] (not applicable?)

Ah also, you may have read it from other tickets around, but the integration of Django is lacking, partly due to the sync/async and the connector situation (it's, sadly, a bit of a mess). Feel free to add links in the documentation to relevant issues (maybe a "known issues" section). Also feel free to link to https://github.com/Opus10/django-pgpubsub, it's another take on the same idea, much more centered around Django.

Done! The only thing I didn't change was related to importing - if you accept my arguments, I prefer to stay this way. :)

Ooops, hold on - I thought the problem was completely solved with the instructions I wrote, but it didn't.
Using the instructions the worker starts OK:
worker          | Launching a worker on all queues
worker          | INFO:procrastinate.worker.worker:Starting worker on all queues
worker          | INFO:procrastinate.periodic:No periodic task found, periodic deferrer will not run.

But when I run a task that needs a Django model, it gives me this error:
worker          | INFO:procrastinate.worker.worker:Starting job async_execute_crau[9](archive_obj_pk=94)
worker          | ERROR:procrastinate.worker.worker:Job async_execute_crau[9](archive_obj_pk=94) ended with status: Error, lasted 0.015 s
worker          | Traceback (most recent call last):
worker          |   File "/usr/local/lib/python3.10/dist-packages/procrastinate/worker.py", line 229, in run_job
worker          |     task_result = task(*job_args, **job.task_kwargs)
worker          |   File "/usr/local/lib/python3.10/dist-packages/procrastinate/tasks.py", line 109, in __call__
worker          |     return self.func(*args, **kwargs)
worker          |   File "/app_django/tasks/__init__.py", line 19, in async_execute_crau
worker          |     archive_obj = Archive.objects.get(pk=archive_obj_pk)
worker          |   File "/usr/local/lib/python3.10/dist-packages/django/db/models/manager.py", line 85, in manager_method
worker          |     return getattr(self.get_queryset(), name)(*args, **kwargs)
worker          |   File "/usr/local/lib/python3.10/dist-packages/django/db/models/query.py", line 431, in get
worker          |     num = len(clone)
worker          |   File "/usr/local/lib/python3.10/dist-packages/django/db/models/query.py", line 262, in __len__
worker          |     self._fetch_all()
worker          |   File "/usr/local/lib/python3.10/dist-packages/django/db/models/query.py", line 1324, in _fetch_all
worker          |     self._result_cache = list(self._iterable_class(self))
worker          |   File "/usr/local/lib/python3.10/dist-packages/django/db/models/query.py", line 51, in __iter__
worker          |     results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)
worker          |   File "/usr/local/lib/python3.10/dist-packages/django/db/models/sql/compiler.py", line 1173, in execute_sql
worker          |     cursor = self.connection.cursor()
worker          |   File "/usr/local/lib/python3.10/dist-packages/django/utils/asyncio.py", line 24, in inner
worker          |     raise SynchronousOnlyOperation(message)
worker          | django.core.exceptions.SynchronousOnlyOperation: You cannot call this from an async context - use a thread or sync_to_async.

If I change the worker to use Psycopg2Connector, the error occurs on its startup:
worker          | Launching a worker on all queues
worker          | INFO:procrastinate.worker.worker:Starting worker on all queues
worker          | INFO:procrastinate.periodic:No periodic task found, periodic deferrer will not run.
worker          | ERROR:procrastinate.utils:Main coroutine error, initiating remaining coroutines stop. Cause: SyncConnectorConfigurationError('\n    A synchronous connector (probably Psycopg2Connector) was used, but the operation\n    needs an asynchronous connector (AiopgConnector). Please check your App\n    configuration.\n    ')
worker          | INFO:procrastinate.worker.worker:Stop requested
worker          | ERROR:procrastinate.utils:single_worker error: SyncConnectorConfigurationError('\n    A synchronous connector (probably Psycopg2Connector) was used, but the operation\n    needs an asynchronous connector (AiopgConnector). Please check your App\n    configuration.\n    ')
worker          | NoneType: None
worker          | ERROR:procrastinate.utils:listener error: SyncConnectorConfigurationError('\n    A synchronous connector (probably Psycopg2Connector) was used, but the operation\n    needs an asynchronous connector (AiopgConnector). Please check your App\n    configuration.\n    ')
worker          | NoneType: None
worker          | Error: One of the specified coroutines ended with an exception
worker          |
worker          |     A synchronous connector (probably Psycopg2Connector) was used, but the operation
worker          |     needs an asynchronous connector (AiopgConnector). Please check your App
worker          |     configuration.
worker          |

Still trying to figure out how to solve this to update the PR. Do you have any tip?

I think we had similar issues here: https://github.com/procrastinate-org/procrastinate/issues/502#issuecomment-1025937542

Can you try implementing your task as an async function ? (and if you need to call sync ORM, maybe call this through Django's async_to_sync / sync_to_async ?

@ewjoachim it worked! The task code is a bit ugly (a decorated async function with a decorated sync function inside), but I recommended avoiding logic code inside tasks, so it'll be easier to maintain.
I think this PR is ready to be merged.

Great !
Hopefully, when we'll tackle the sync/async issue, we'll be able to simplify this greatly !

So is there anything else you think I should change or you can merge it?

Nah we're good, I was just waiting for the CI :)

Here we are. Thank you so much!
As mentioned, if you'd like to continue contributing, I can take some time to show you around at some point :)

Sure! Next thing I'd like to work on is the management command to run the worker easily.


version 4.35.0 breaks our tests in gftools

v4.35.0 breaks two of our builder checks, https://github.com/googlefonts/gftools/runs/7839959593?check_suite_focus=true#step:5:186. Here's the traceback
ERROR:root:In 'Lora.glyphs' -> 'master_ufo/Lora.designspace': Generating fonts from Designspace failed: <fontTools.feaLib.ast.GlyphName object at 0x108267610>
Traceback (most recent call last):
  File "/Users/marcfoley/Type/fonttools/venv/lib/python3.10/site-packages/fontmake/font_project.py", line 1065, in run_from_designspace
    self._run_from_designspace_interpolatable(
  File "/Users/marcfoley/Type/fonttools/venv/lib/python3.10/site-packages/fontmake/font_project.py", line 1157, in _run_from_designspace_interpolatable
    self.build_variable_fonts(
  File "/Users/marcfoley/Type/fonttools/venv/lib/python3.10/site-packages/fontmake/font_project.py", line 384, in build_variable_fonts
    fonts = ufo2ft.compileVariableTTFs(
  File "/Users/marcfoley/Type/fonttools/venv/lib/python3.10/site-packages/ufo2ft/__init__.py", line 596, in compileVariableTTFs
    vfNameToBaseUfo = _compileNeededSources(
  File "/Users/marcfoley/Type/fonttools/venv/lib/python3.10/site-packages/ufo2ft/__init__.py", line 785, in _compileNeededSources
    ttfDesignSpace = compileInterpolatableFunc(
  File "/Users/marcfoley/Type/fonttools/venv/lib/python3.10/site-packages/ufo2ft/__init__.py", line 384, in compileInterpolatableTTFsFromDS
    for source, ttf in zip(result.sources, ttfs):
  File "/Users/marcfoley/Type/fonttools/venv/lib/python3.10/site-packages/ufo2ft/__init__.py", line 318, in compileInterpolatableTTFs
    compileFeatures(ufo, ttf, glyphSet=glyphSet, **kwargs)
  File "/Users/marcfoley/Type/fonttools/venv/lib/python3.10/site-packages/ufo2ft/__init__.py", line 507, in compileFeatures
    otFont = featureCompiler.compile()
  File "/Users/marcfoley/Type/fonttools/venv/lib/python3.10/site-packages/ufo2ft/featureCompiler.py", line 127, in compile
    self.setupFeatures()
  File "/Users/marcfoley/Type/fonttools/venv/lib/python3.10/site-packages/ufo2ft/featureCompiler.py", line 265, in setupFeatures
    writer.write(self.ufo, featureFile, compiler=self)
  File "/Users/marcfoley/Type/fonttools/venv/lib/python3.10/site-packages/ufo2ft/featureWriters/baseFeatureWriter.py", line 131, in write
    return self._write()
  File "/Users/marcfoley/Type/fonttools/venv/lib/python3.10/site-packages/ufo2ft/featureWriters/cursFeatureWriter.py", line 119, in _write
    feature = self._makeCursiveFeature()
  File "/Users/marcfoley/Type/fonttools/venv/lib/python3.10/site-packages/ufo2ft/featureWriters/cursFeatureWriter.py", line 26, in _makeCursiveFeature
    gsub = self.compileGSUB()
  File "/Users/marcfoley/Type/fonttools/venv/lib/python3.10/site-packages/ufo2ft/featureWriters/baseFeatureWriter.py", line 321, in compileGSUB
    gsub = compileGSUB(self.context.feaFile, glyphOrder)
  File "/Users/marcfoley/Type/fonttools/venv/lib/python3.10/site-packages/ufo2ft/util.py", line 230, in compileGSUB
    addOpenTypeFeatures(font, featureFile, tables={"GSUB"})
  File "/Users/marcfoley/Type/fonttools/Lib/fontTools/feaLib/builder.py", line 64, in addOpenTypeFeatures
    builder.build(tables=tables, debug=debug)
  File "/Users/marcfoley/Type/fonttools/Lib/fontTools/feaLib/builder.py", line 227, in build
    gdef = self.buildGDEF()  # build unconditionally so we can warn below
  File "/Users/marcfoley/Type/fonttools/Lib/fontTools/feaLib/builder.py", line 763, in buildGDEF
    gdef.MarkGlyphSetsDef = self.buildGDEFMarkGlyphSetsDef_()
  File "/Users/marcfoley/Type/fonttools/Lib/fontTools/feaLib/builder.py", line 822, in buildGDEFMarkGlyphSetsDef_
    return otl.buildMarkGlyphSetsDef(sets, self.glyphMap)
  File "/Users/marcfoley/Type/fonttools/Lib/fontTools/otlLib/builder.py", line 2618, in buildMarkGlyphSetsDef
    self.Coverage = [buildCoverage(m, glyphMap) for m in markSets]
  File "/Users/marcfoley/Type/fonttools/Lib/fontTools/otlLib/builder.py", line 2618, in <listcomp>
    self.Coverage = [buildCoverage(m, glyphMap) for m in markSets]
  File "/Users/marcfoley/Type/fonttools/Lib/fontTools/otlLib/builder.py", line 58, in buildCoverage
    self.glyphs = sorted(set(glyphs), key=glyphMap.__getitem__)
KeyError: <fontTools.feaLib.ast.GlyphName object at 0x108267610>

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

Traceback (most recent call last):
  File "/Users/marcfoley/Type/fonttools/venv/lib/python3.10/site-packages/fontmake/__main__.py", line 620, in main
    project.run_from_glyphs(inputs.glyphs_path, **args)
  File "/Users/marcfoley/Type/fonttools/venv/lib/python3.10/site-packages/fontmake/font_project.py", line 787, in run_from_glyphs
    self.run_from_designspace(designspace_path, **kwargs)
  File "/Users/marcfoley/Type/fonttools/venv/lib/python3.10/site-packages/fontmake/font_project.py", line 1080, in run_from_designspace
    raise FontmakeError(
fontmake.errors.FontmakeError: In 'Lora.glyphs' -> 'master_ufo/Lora.designspace': Generating fonts from Designspace failed: <fontTools.feaLib.ast.GlyphName object at 0x108267610>

I've narrowed it down to commit https://github.com/fonttools/fonttools/commit/e4c5c842f1638c2debd801ebc35cafd8a0e346fe.
To replicate, download the attached file and do: fontmake -g Lora.glyphs -o variable
Lora.glyphs.zip

ah! looks like https://github.com/googlefonts/fontmake/issues/925
I'll take a look after lunch

Should be fixed by the latest version of #2744.

Should be fixed by the latest version of https://github.com/fonttools/fonttools/pull/2744.

@m4rc1e can you check if that's the case?

strange..
On the one hand, I can confirm that pulling the latest fonttools main branch with https://github.com/fonttools/fonttools/pull/2744 fix and ufo2ft 2.28.0 does fix the error above and the build completes without the error.
On the other hand, if I build using the released fonttools 4.35.0 (i.e. without Just's patch) and ufo2ft 2.29.0b1 (pre-release, install with pip install --pre --upgrade ufo2ft), then it also completes successfully..
I'm confused as to what the root cause of this issue is. /cc @simoncozens

the major difference between ufo2ft 2.28 and 2.29b1 is that the latter has Simon's split-by-script kerning lookups (https://github.com/googlefonts/ufo2ft/pull/636)

This is a typing problem in ast.py/parser.py. I've tracked it down but the fix is less obvious.

Turns out the fix is obvious, once you have a type checker. :-)
diff --git a/Lib/fontTools/feaLib/parser.py b/Lib/fontTools/feaLib/parser.py
index cd59e48fe..eb1e5fd2f 100644
--- a/Lib/fontTools/feaLib/parser.py
+++ b/Lib/fontTools/feaLib/parser.py
@@ -936,7 +936,7 @@ class Parser(object):
                     raise FeatureLibError("Empty class in replacement", location)
             return self.ast.MultipleSubstStatement(
                 old_prefix,
-                tuple(old[0].glyphSet())[0],
+                self.ast.GlyphName(tuple(old[0].glyphSet())[0]),
                 old_suffix,
                 tuple([list(n.glyphSet())[0] for n in new]),
                 forceChain=hasMarks,

I'll include this in the upcoming Big Type-Checking PR.

I suppose this is fixed.


Added messages to run & complete pings

The run & complete pings can also take message arguments; this commit
adds tests around that, and then implements the change.
Additional minor styling changes for hashes for compatability.

Hi @trammel, thank you very much for the PR! I'm not sure it really makes sense to include most of these style changes with a PR like this and also some of them seem to do extra things we maybe don't want. Would you be willing to revise this to leave those out? Maybe we can address them separately if you really feel they should be included...


Add encoder: Decimal to Decimal128

Add an encoder to encode decimal.Decimal instances into from bson.decimal128.Decimal128.
Mongo stores this as NumberDecimal:

Build is failing, I think this will be fixed by #32

@dhensen well done! Thanks! I'm merge this PR.


Fix redux-saga for flow 0.32

Also fixes #292

@ryyppy would you mind taking a look over my changes?

Looks like this doesn't update the Flow version upper bound of "<=0.31" in the path name (thus tests won't run against 0.32 and the CLI won't see this libdef if someone requests redux-saga for Flow >0.31)

Doh mobile github is hard to read -- disregard my previous comment


Adjust the snippets/testing/test-suite-multi-configure-each sample for configuration cache

Fixes #21823
Contributor Checklist

[x] Review Contribution Guidelines
[x] Make sure that all commits are signed off to indicate that you agree to the terms of Developer Certificate of Origin.
[x] Make sure all contributed code can be distributed under the terms of the Apache License 2.0, e.g. the code was written by yourself or the original code is licensed under a license compatible to Apache License 2.0.
[x] Check "Allow edit from maintainers" option in pull request so that additional changes can be pushed by Gradle team
[x] Provide integration tests (under <subproject>/src/integTest) to verify changes from a user perspective
[x] Provide unit tests (under <subproject>/src/test) to verify logic
[x] Update User Guide, DSL Reference, and Javadoc for public-facing changes
[x] Ensure that tests pass sanity check: ./gradlew sanityCheck
[x] Ensure that tests pass locally: ./gradlew <changed-subproject>:quickTest

Gradle Core Team Checklist

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation
[ ] Recognize contributor in release notes

OK, I've already triggered the following builds for you:

PullRequestFeedback build

@bot-gradle test and merge

OK, I've already triggered a build for you.


Cannot change host screen resolution

I have VirtualBox set to "hint" at a higher resolution, but, still, I can't get the house to use anything other than 1024×768.

Any insight on fixing this?  I have same need.

VirtualBox doesn't have Guest additions for Mac OS X, which is the usual way to change the default resolution. Does anyone know if there any workaround?

@ob7 Thanks so much. I got it working in a linux host using the same commands you provided.

Adding this to vagrantfile sample.


Multi Chain Deployment

Component
Forge
Describe the feature you would like
It would be cool to have a multi chain deployment, now that we have multi fork capabilities on the vm. [pending #2301]
I was working on a MVP, but there are a couple gotchas and decisions to be made. So I decided to start writing them here.
Execution

Currently vm.broadcast() takes the caller as the signer. However, multi fork backends make the caller's nonce persistent across forks. Ideally it should be non-persistent by default and tied to each backend.
Library Linking. This is kind of a chicken-egg problem. Not all forks may require the predeployed libraries coming from the build output, and we only know the ones that might need it once we run everything. Addresses and linkage have to be handled/calculated on a per-fork basis.

Broadcast

Which log structure:
1.1 One single file: broadcast/multi/Contract.s.sol/[latest | timestamp]/[sig].json
1.2 One folder/multiple files: broadcast/multi/Contract.s.sol/[latest | timestamp]/[chain_id]/[sig].json There'd be one extra file dictating the sequence.
Which broadcasting behaviour.
2.1  Deploy to every chain in parallel. And we log it Map<chain, ScriptSequence>?
2.2  Deploy sequentially regarding to chains. Example: chain1 -> chain2 -> chain1 -> chain3. And we log it Vec<ScriptSequence>

Verification

Should we add a vm.addEtherscanKey(forkId, key_str) ?   Doesn't seem UX friendly to add and match --etherscan-keys to the command line.
1.1. If we do... how do we handle --verify without any broadcast flag? We could run setUp every time, just to collect these keys. What if the code has changed since then?
1.2 If not 1.1... then what?

Additional context
No response

Afaik Etherscan keys are universal, so a key from mainnet also works on Rinkeby?

IDK if using forking cheatcode can deploy to multiple chain.
# foundry.toml
[rpc_endpoints]
optimism = "https://opt-goerli.g.alchemy.com/v2/<api key>"
goerli = "https://eth-goerli.g.alchemy.com/v2/<api key>"

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.13;

import "../lib/forge-std/src/Script.sol";

contract Try {}

contract MultipleDeployment is Script {
    function run() external {
        vm.startBroadcast();

        // create and select for optimism
        vm.createSelectFork(vm.rpcUrl("optimism"));
        address t1 = address(new Try());
        console.log(t1);

        // create and select fork for goerli
        vm.createSelectFork(vm.rpcUrl("goerli"));
        address t2 = address(new Try());
        console.log(t2);

        vm.stopBroadcast();
    }
}

I think this also needs the ability to link the same library to different addresses on a per chain basis
This would be also great for fork testing, as you most probably need to point your code to different instances of the library when you fork different networks

Is there any way to verify contracts with multiple API keys while deploying through this multi-chain strategy?


Updated to install latest version of eslint-config-ember

This addresses issues #20 and #28.
Regarding #20:
Currently the 0.0.5 version of eslint-config-ember that ember-cli-eslint extends is using a version of eslint prior to 1.0. This seems to lead to error messages during ember-cli-eslint's linter phase stating things such as: error  Rule 'no-comma-dangle' was removed and replaced by: comma-dangle.
Since eslint-config-ember itself has long-since been updated to use a version of eslint > 1.0, this should clear up those issues.
Regarding #28:
This was an issue for me both locally and in CI.
It seems reasonable that the dev-dependency should use the latest of the "Valid install targets". Once I made this change, I started seeing an error in Travis stating DEPRECATION: Node v0.10.42 is no longer supported by Ember CLI. Please update to a more recent version of Node. I updated .travis.yml accordingly to tell it to use Node @ 4.2.4.

@BrianSipple thanks again! Squashing might be simpler in future. Not sure why travis is still failing after my merge either.


Conditional Map() Methods

I've run into this situation a couple of times.
StreamEx.
...
map(item -> condition(item) ? doSomething(item) : doSomethingElse(item)).
...
Many times doSomethingElse() is simply "item".
Can you add methods such as the following?
map(Predicate<? super T> condition, Function<? super T, ? extends T> mapper);
map(Predicate<? super T> condition, Function<? super T, ? extends T> positive, Function<? super T, ? extends T> negative);

Without library change it could be achieved by a helper function
static <T, R> Function<T, R> when(Predicate<T> condition, Function<T, R> positive, Function<T, R> negative) {
    return item -> condition.test(item) ? positive.apply(item) : negative.apply(item);
}

static <T> Function<T, T> when(Predicate<T> condition, Function<T, T> positive) {
    return item -> condition.test(item) ? positive.apply(item) : item;
}

stream.map(when(this::condition, this::then, this::otherwise))

stream.map(when(this::condition, this::update))

It makes possible even such extreme use case as
stream.map(when(this::condition, this::then,
           when(this::otherCondition, this::doOther,
           when(this::anotherCondition, this::doAnother,
           this::otherwise))))

Ah, you also requested the same for map. I did not notice this when I commented on peek. Yes, having such thing for map is even worse than for peek as we have various mapToInt, mapToLong and IntStreamEx.mapToObj and things like pairMap and so on. For consistency I would need to add dozens of methods, which is definitely not an option. See the @nbardiuk comment, that's exactly what should you do.


tools on creating svg

Hi @jasineri  nice work here, do you use any tool in creating the svg

Thank you for raising the issue. Currently no additional tools are utilized to generate SVG images in the gitartwork project.


Error while using grpc-tools.protoc for protoc subcommand

Console error:
  File "/Users/seanchok/Documents/rpc/.venv/lib/python3.10/site-packages/protoletariat/fdsetgen.py", line 137, in generate_file_descriptor_set_bytes
    subprocess.check_output(
  File "/Users/seanchok/.pyenv/versions/3.10.0/lib/python3.10/subprocess.py", line 420, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
  File "/Users/seanchok/.pyenv/versions/3.10.0/lib/python3.10/subprocess.py", line 501, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/Users/seanchok/.pyenv/versions/3.10.0/lib/python3.10/subprocess.py", line 966, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/Users/seanchok/.pyenv/versions/3.10.0/lib/python3.10/subprocess.py", line 1842, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'python -m grpc_tools.protoc'

Steps to reproduce:

install grpc-tools through pip to use protoc

generate python bindings

python -m grpc-tools.protoc \
  --proto_path=. \
  --python_out=out \
  --grpc_python_out=out \
  *.proto

Use protol protoc

protol \
  --create-package \
  --in-place \
  --python_out out
  protoc \
  --protoc-path "python -m grpc_tools.protoc" \
  --proto-path .
  *.proto

My own research:

I read through the proloteriat source code, and suspected that the subprocess.check_output call may not be able to call python to run executable modules just like that. But I'm not entirely sure because the error thrown appears to be FileNotFound.

I created a workaround by first generating the FileDescriptorSet file, and then running protol raw instead of protol protoc.

touch descriptor.temp

# generate FileDescriptorSet
python -m grpc_tools.protoc \
  --include_imports \
  --descriptor_set_out=descriptor.temp \
  --proto_path=. \
  *.proto

# run post-processing to change absolute imports generated by protoc to relative imports
protol \
  --create-package \
  --in-place \
  --python-out out \
  raw \
  descriptor.temp

I got the inspiration for the workaround after reading this section of code.
I'm not sure if protol needs to be updated to make running python -m grpc_tools.protoc possible. Or if this workaround should be made known to other people who are using the grpc-tools package as I am.

@98sean98 Thanks for opening an issue. I think the workaround is the right solution here. While there aren't a huge number of ways to generate the FileDescriptorSet binary there are enough that I think adding a new subcommand for each one is unnecessary when raw suffices. I'm happy to add usage of grpc_tools.protoc to README.md.

I see. Would you be happy with me filing a pull request to write a section in README.md for graph_tools.protoc?

I see. Would you be happy with me filing a pull request to write a section in README.md for graph_tools.protoc?

That'd be great!


[Darkside] Internalheader CSS update

TODO:

[x] Resolve discussions in figma
[x] Design-review

Do you know what happened to Chromatic?


Adding Game

Please Review

@Vishal2002  ,
I Merged this PR,
Please follow the Contribution Guideline present in : https://github.com/dev-AshishRanjan/Hacktoberfest-frontend/blob/dev/CONTRIBUTING.md
To Do :

ADD your project details in contribution/ProjectList.json

After doing this, create a new PR

@Vishal2002 , I Merged this PR,
Please follow the Contribution Guideline present in : https://github.com/dev-AshishRanjan/Hacktoberfest-frontend/blob/dev/CONTRIBUTING.md
To Do :

ADD your project details in contribution/ProjectList.json

After doing this, create a new PR

Please follow this. 👍🏽


Add gdrive cli

Please add gdrive (Google Drive CLI).
Repo: https://github.com/prasmussen/gdrive

I take back my word. According this criteria, this package is classified as main bucket app.


exec command failed Process exited with status

What happened:

What you expected to happen:
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?:
Environment:

sealer version (use sealer version):v0.1.5
Cloud provider or hardware configuration:
OS (e.g: cat /etc/os-release):centos 7.9
Kernel (e.g. uname -a):3.10.0-1160.el7.x86_64
Install tools:
Others:

Your node is clean before you install? Maybe you need kubeadm reset your node

/invite

My machine was clean before it was installed.

Pls provide your Clusterfile, or you run command

kind: Cluster
metadata:
name: my-cluster
spec:
image: registry.cn-qingdao.aliyuncs.com/sealer-io/kubernetes:v1.19.9.alpha.3
provider: BAREMETAL
ssh:
# ssh的登录密码，如果使用的密钥登录则无需设置
passwd: *****
# ssh的私钥文件绝对路径，例如/root/.ssh/id_rsa
pk: xxx
# ssh的私钥文件密码，如果没有的话就设置为""
pkPasswd: xxx
# ssh登录用户
user: root
network:
# 使用的网卡名称
interface: ens33
# 网络插件
cniName: calico
podCIDR: <IP_ADDRESS>/10
svcCIDR: <IP_ADDRESS>/22
withoutCNI: false
certSANS:
- aliyun-inc.com
- <IP_ADDRESS>
masters:
ipList:
- <IP_ADDRESS>
nodes:
ipList:
- <IP_ADDRESS>

Can you provide all the install logs?

It's all right now. That's why the machine wasn't cleaned up.

Fine, can you add my dingtalk or we chat: fangnux


Update GETTING_STARTED.md

fixes a small typo, hope it's OK to submit this PR without opening an issue

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Fix badge case sensitivity

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@6c117cd). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #19   +/-   ##
=========================================
  Coverage          ?   80.47%
=========================================
  Files             ?        8
  Lines             ?      420
  Branches          ?        0
=========================================
  Hits              ?      338
  Misses            ?       69
  Partials          ?       13

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 6c117cd...a581fdb. Read the comment docs.


How to add my (Kurdish) language to moment?

Hi!
I have translated momentjs to Kurdish.
How can i send it to you?
Thanks

Hi @kardoqadir - Please do the following:

Make a file src/locale/ku.js. Copy the contents from this file https://github.com/moment/moment/blob/develop/src/locale/en-gb.js and change it to the Kurdish language.
Make a file src/test/locale/ku.s. Copy the contents from this file https://github.com/moment/moment/blob/develop/src/test/locale/en-gb.js and change it to the Kurdish language.
You will need to commit that code and put it online so you can make a pull request. You can find tutorials online about this.

Let me know how far you get and if you get stuck.


Fix Visual Studio compile errors

@nick-thompson, I thought this had been fixed but looks like there are a couple VS errors with -Werror etc.

Ah, thanks!


Automation from and to

Hi, I have just started using and working with the HomeAssistant.
I am trying to use a automation rule. Below is my script.
automation:
trigger:
platform: state
from: "off"
to: "on"
entity_id: switch.TV
action:
service: homeassistant.turn_on
entity_id:
- switch.Ceiling
according to the script when the TV state goes from "off" to "on", it should trigger the action. But what is happening is when i switch off TV (i.e off to on), it action is getting triggered. Is there something wrong in my understanding or script ?

@rohitranjan1991 You have to specify all actions that should happen. If you want to turn off the lights when the tv turns off you have to sepcify a rule for that as well.
I think you probably want it the other way around though.
Turn on tv => turn off lights.
Turn off tv => turn on lights
Here is an example of how to do it
automation:
  - alias: Turn on ceiling lights when the TV turns off
    trigger:
      platform: state
      from: "on"
      to: "off"
      entity_id: switch.TV
    action:
      service: homeassistant.turn_on
      entity_id: switch.Ceiling

  - alias: Turn off ceiling lights when the TV turns on
    trigger:
      platform: state
      from: "off"
      to: "on"
      entity_id: switch.TV
    action:
      service: homeassistant.turn_off
      entity_id: switch.Ceiling

Thanks got it to work.


how to start new proactive conversation dialog without ending to current ongoing dialog

SDK Language:
SDK Version: <3.6>
Development Environment:
Node.js + npm version
6.9.5 + 4.5.0
Issue Description
Let's say user is currently doing conversation with bot, In between we want to send some survey to user through proactive message (bot to user). After feeling survey user should get back the old conversation state,from which point he started survey.
Or In simple work how to start new p
how to start new proactive conversation dialog without ending to current ongoing dialog

@aakashkag Are you using .NET or Node SDK?

Node js

Duplicate of https://stackoverflow.com/questions/44618516/how-to-start-new-proactive-conversation-dialog-without-ending-to-current-ongoing

see answer on Stack Overflow


Generate (or at least verify) CRD client code as part of build

The Helm operator uses a bunch of client code that's generated by a tool. The definition file from which it generates is checked in to the repo, as is the generated code, and these may easily get out of sync, e.g., if someone changes the definition but forgets to regenerate the client code.
We could just generate this code during the build. There may be downsides:

if it takes a long time, and the dependencies can't be expressed well in the Makefile, this may make builds intolerably long
we may not want to be sensitive to changes in the definition, since it is itself an artefact that's deployed (though this suggests to me that it's carefully versioned itself)

An alternative would be to verify that the generated code matches the definition, during CI. For example, by regenerating it from the definition and checking it's the same as what's checked in.

Done, err, a while ago.


Sticky navbar or back to top button

Should we add a back to top button or sticky navbar?

Good question, I'm not a fan of sticky navs for reading things. Especially on mobile. Just takes up a small chunk of the screen. I am open to it if the community votes against me 😂

I'd like a back to top button

Any examples of what that might look like?


feat: revert "feat: remove .metadata.image from schema (#2606)"

This reverts commit ed2f876dc0ff2fed647b64d62f5a0843d41eed75.
Description
We received feedback that people do have uses for the .metadata.images field. Adding it back
Checklist before merging

[ ] Test, docs, adr added or updated as needed
[ ] Contributor Guide Steps followed

Closing for now, current proposed solution is an annotation field

Target use case: populating an Android UI w/ thumbnail images of packages from Base64 encoded strings.
Eventually this would be better lived as an OCI annotation, .metadata.image is the best place until the annotation spec is implemented.


Slack AppMention events do not get fired reliably

I've added a slack app to my slack desktop. I also added an event handler in my java code to handle AppMention events.
These are the permissions/subscripts I gave to my slack app:
scopes:
bot:
- app_mentions:read
- chat:write
- chat:write.customize
- im:history
- im:read
- im:write
- chat:write.public
- channels:read
- channels:history
- groups:history
settings:
event_subscriptions:
bot_events:
- app_mention
- message.im
When I mention my slack app with @bot_name message in a private channel that I added it to, expected behavior is that it would trigger an AppMention event. Instead it throws a warning as
2022-02-01 18:40:54.041Z [socket-mode-message-processor-worker-61] WARN  com.slack.api.bolt.App:1107 - No BoltEventHandler registered for event: message
---
[Suggestion] You can handle this type of event with the following listener function:

app.event(MessageEvent.class, (payload, ctx) -> {
  return ctx.ack();
});

It sometimes triggers AppMention events too but not always.
The Slack SDK version
com.slack.api:bolt-socket-mode: 1.15.0
Java Runtime version
java version : 11.0.5
OS info
ProductName:	macOS
ProductVersion:	11.6

Hey @Gayathri92 - Based on the fact that sometimes you get AppMention events and sometimes you don't makes me think that the issue might be in where you're sending that message with @mentions the app.
Is the private channel where you are experiencing the issue a DM with the app itself? Per the documentation, you would receive a regular message event https://api.slack.com/events/app_mention. The relevant lines are:

Messages sent to your app in direct message conversations are not dispatched via app_mention, whether the app is explicitly mentioned or otherwise. Subscribe to message.im events to receive messages directed to your bot user in direct message conversations.

I notice in this case you do have the message.im event enabled, so to handle this you would need to add an app.event handler as the error message suggests.

Hey @srajiang, thanks for the response. I mentioned my app in a private "channel". This should be different from sending a direct message to the slack app right ? Correct me if I'm wrong.

Yes @Gayathri92 that's right. A private channel is different than the DM wit the bot itself, so it looks like you have covered your bases there. To summarize it looks like you have:

A private channel where you have your bot included as a member
Your AppMention event handling code sometimes fires, and sometimes you receive the above error, and this can be triggered by the exact same user action (sending a message in the private channel which @-mentions your app)

If that's the case, that would be error server-side and not likely to be due to bolt. We can confirm this by looking at the even payloads coming from Slack. Can you try gradle run -DslackLogLevel=debug and share what it looks like when you receive the app mention event and what it looks like when you receive the message event?

@srajiang Something interesting happened which I did not anticipate. So looks like my teammate and I were testing with the same slack app and the code which adds an event handler. Looks like both of our event handlers were listening to the same slack app's app mention event. Would it have been possible that events were being triggered but sent to his event handler and not mine? I remember reading that a slack app can have 10 active socket connections open. What is expected in this scenario?

@Gayathri92

Looks like both of our event handlers were listening to the same slack app's app mention event.
At the moment, I'm a little unclear as to expected behavior for event payloads in that case. I will dig into this a little further.

In the meantime we strongly recommend for local development that each of you has your own separate development app. You can port your app's setup fairly straightforwardly by going to your app's configuration page -> App manifest -> and making a copy of the manifest.
You can then create a new app using that manifest which your team can use which will contain the configurations you have already set up for your app.

Hi @Gayathri92 - Looping back in here - I'm not finding any previous issues raised on Slack API side with AppMention vs. MessageEvent being fired inconsistently, so my best recommendation here is to give the modified local development setup I mentioned above a try and see whether that resolves your issue.

I also facing this issue sometimes, so the problem is your slack bot app is listened by multiple client code right? @Gayathri92 cc @srajiang

@yehezkiell Yes, the most common cause of this situation is that there are some old processes or hosts that are still receiving requests for the same app but you might totally forget about the running processes (or those processes are unexpectedly still alive). Refer to my response at https://github.com/slackapi/java-slack-sdk/issues/803#issuecomment-895768180 for more details.


Sample code to use swashbuckle with already IIS deployed web api

Could you please help me with sample swashbuckle code [if it supports]. We have deployed web api on IIS and scenario is I could not able to integrate it in web api code and build it.
Thanks in advance.

Please, can I ask that you stop opening issues which are duplicates of ones you previously created
#349, #358
In my responses to these, I've referenced yet another duplicate of this issue and provided some guidelines there #356. With time constraints, that's the best I can do for now, you'll have to dig deeper yourself.

ok


AWS IoT error  aws: Failed to read MQTT input: -128

Hi,
While trying out the AWS iot sample  for qemu_x86 I get the following error:
~/zephyrproject/zephyr$ west build --build-dir /tmp/aws_iot -t run
-- west build: running target run
[0/1] To exit from QEMU enter: 'CTRL+a, x'[QEMU] CPU: qemu32,+nx,+pae
SeaBIOS (version zephyr-v1.0.0-0-g31d4e0e-dirty-20200714_234759-fv-az50-zephyr)
Booting from ROM..
*** Booting Zephyr OS build v3.7.0-rc1-106-g012520d2d7e8 ***
[00:00:00.140,000]  aws: sntp_sync_time: Acquired time from NTP server:<PHONE_NUMBER>
[00:00:00.150,000]  aws: Resolved: <IP_ADDRESS>:8883
[00:00:00.620,000]  aws: mqtt_event_cb: MQTT event: CONNACK [0] result: 0
[00:00:00.620,000]  aws: Subscribing to 1 topic(s)
[00:00:00.670,000]  aws: mqtt_event_cb: MQTT event: SUBACK [7] result: 0
[00:00:00.670,000]  aws: PUBLISHED on topic "zephyr_sample/downlink" [ id: 1 qos: 0 ], payload: 13 B
[00:00:00.670,000]  aws: publish_message: Published payload:
7b 22 63 6f 75 6e 74 65  72 22 3a 30 7d          |{"counte r":0}
[00:00:00.680,000]  aws: mqtt_event_cb: MQTT event: DISCONNECT [1] result: -128
[00:00:00.680,000]  aws: Failed to read MQTT input: -128
[00:00:00.690,000]  aws: mbedTLS heap usage: MAX 47196/65536 (79) CUR 0 (0)
[00:00:01.710,000]  aws: Resolved: <IP_ADDRESS>:8883
[00:00:02.180,000]  aws: mqtt_event_cb: MQTT event: CONNACK [0] result: 0
[00:00:02.180,000]  aws: Subscribing to 1 topic(s)
[00:00:02.220,000]  aws: mqtt_event_cb: MQTT event: SUBACK [7] result: 0
[00:00:02.220,000]  aws: PUBLISHED on topic "zephyr_sample/downlink" [ id: 2 qos: 0 ], payload: 13 B
[00:00:02.220,000]  aws: publish_message: Published payload:
7b 22 63 6f 75 6e 74 65  72 22 3a 30 7d          |{"counte r":0}
[00:00:02.250,000]  aws: mqtt_event_cb: MQTT event: PUBLISH [2] result: 0
[00:00:02.250,000]  aws: RECEIVED on topic "zephyr_sample/data" [ id: 40688 qos: 0 ] payload: 45 / 4096 B
[00:00:02.250,000]  aws: handle_published_message: Received payload:
7b 0a 20 20 22 6d 65 73  73 61 67 65 22 3a 20 22 |{.  "mes sage": "
48 65 6c 6c 6f 20 66 72  6f 6d 20 41 57 53 20 49 |Hello fr om AWS I
6f 54 20 63 6f 6e 73 6f  6c 65 22 0a 7d          |oT conso le".}
[00:00:02.250,000]  aws: PUBLISHED on topic "zephyr_sample/downlink" [ id: 3 qos: 0 ], payload: 13 B
[00:00:02.250,000]  aws: publish_message: Published payload:
7b 22 63 6f 75 6e 74 65  72 22 3a 31 7d          |{"counte r":1}
[00:00:02.250,000]  aws: mqtt_event_cb: MQTT event: DISCONNECT [1] result: -128
[00:00:02.250,000]  aws: Failed to read MQTT input: -128
[00:00:02.250,000]  aws: mbedTLS heap usage: MAX 47196/65536 (79) CUR 0 (0)
[00:00:03.270,000]  aws: Resolved: <IP_ADDRESS>:8883
[00:00:03.740,000]  aws: mqtt_event_cb: MQTT event: CONNACK [0] result: 0
[00:00:03.740,000]  aws: Subscribing to 1 topic(s)
[00:00:03.780,000]  aws: mqtt_event_cb: MQTT event: SUBACK [7] result: 0
[00:00:03.790,000]  aws: PUBLISHED on topic "zephyr_sample/downlink" [ id: 4 qos: 0 ], payload: 13 B
[00:00:03.790,000]  aws: publish_message: Published payload:
7b 22 63 6f 75 6e 74 65  72 22 3a 31 7d          |{"counte r":1}
[00:00:03.820,000]  aws: mqtt_event_cb: MQTT event: PUBLISH [2] result: 0
[00:00:03.820,000]  aws: RECEIVED on topic "zephyr_sample/data" [ id: 40688 qos: 0 ] payload: 45 / 4096 B
[00:00:03.820,000]  aws: handle_published_message: Received payload:
7b 0a 20 20 22 6d 65 73  73 61 67 65 22 3a 20 22 |{.  "mes sage": "
48 65 6c 6c 6f 20 66 72  6f 6d 20 41 57 53 20 49 |Hello fr om AWS I
6f 54 20 63 6f 6e 73 6f  6c 65 22 0a 7d          |oT conso le".}
[00:00:03.820,000]  aws: PUBLISHED on topic "zephyr_sample/downlink" [ id: 5 qos: 0 ], payload: 13 B
[00:00:03.820,000]  aws: publish_message: Published payload:
7b 22 63 6f 75 6e 74 65  72 22 3a 32 7d          |{"counte r":2}
[00:00:03.820,000]  aws: mqtt_event_cb: MQTT event: DISCONNECT [1] result: -128
[00:00:03.820,000]  aws: Failed to read MQTT input: -128
[00:00:03.820,000]  aws: mbedTLS heap usage: MAX 47196/65536 (79) CUR 0 (0)
Can you please help me fix this ?
TIA.

mqtt_input() return -ENOTCONN (-128) in case underlying TCP/TLS connection was closed. If you're using qemu_86, it's fairly simple to monitor network traffic with wireshark, just attach it to the corresponding network interface. That should shed some light on whether is just the peer closing the connection for whatever reason, or some bug in the networking stack.

I got it to work with qos1. Which is not the default qos0 when run with qemu_x86. What is the correct config to use in the pro.conf or the KConfig ?

What is the correct config to use for qos1 in the prj.conf or the KConfig ?

There's CONFIG_AWS_QOS defined in the sample's Kconfig file.

by handling the mqtt disconnect event which is a noop in the original source code and using a return instead.

Looking at the sample's code, this change should literally make no difference, the callback returns anyway just after getting MQTT_EVT_DISCONNECT event.

@z3r0g2017 Do we need to keep this open, given you got the sample to work? I don't know what the bug would be here.
If you still need help here, please provide wireshark logs showing when the client disconnects. Otherwise, please close the issue.

Closing since the issue seemed to be on the reporter's side


Cannot add this as a custom repository - Home assistant says that it is not a compliant directory structure

I go into HACS and then try to add a custom repository: https://github.com/foxthefox/ioBroker.ecoflow-mqtt
I then says the repository structure for main is not compliant.
Am I doing something wrong?

The adapter is not meant to be directly used within HA.
You need an instance of iobroker running where you can install this adapter. Then you can use the gateway functionality to have the EF integrated into HA.

ok I thought it might be something like that.  I have an Ubuntu server.  I need to see if there are different versions of iobroker and take it from there.
I may ask some more questions.
thanks

If you have Ubuntu running, the installation should be straight forward.
Yes, please ask.

Ok I got iobroker installed as a container - pretty easy.
I worked out how to add your repository and it installed v1.04.
The readme link in iobroker is broken for your repository.
I'm struggling to find the configuration screen for you ecoflow app in iobroker (first time using iobroker)

I had to click on add instance - now making more progress.  Hopefully this might be useful for someone later.

Almost the last step I think.  I can't successfully add the mqtt broker to home assistant even though I am providing the iobroker IP and port as well as the user and pw set in the home assistant tab e.g. hamqttuser and pw.
The only other thing is that I am doing all this in portainer but I think the ports look good.

I still can't connect between containers or maybe it is the login info.  Marking this as closed as a I try and work it out.

Unfortunately I am not at home and can not post some screenshots. Basically you should use port 1883 and use type in the login credentials of HA in the adapter.

Have also a look into readme
https://github.com/foxthefox/ioBroker.ecoflow-mqtt?tab=readme-ov-file#ha-connectorgateway
You may need to activate autodiscovery.

Thanks I'll take a look,  I tried the hassio cloud integration yesterday and realised that it only updated when I had the app open on my phone and I guess that triggered data.
So no solution yet - I'll read your link.


Support towards other devices

It uses os.getcwd() to get the current directory.

ADMIN_FILE
DOCTOR_FILE
PATIENT_FILE
EMPLOYEE_FILE

These constants were defined two times, should we make it one time by defining as global?

I've made changes what you asked for!

Great,  after reviewing them I will merge. You don't need to make the
variables global.
On Sat, 24 Apr 2021 12:19 pm Mashiur Rahman, @.***>
wrote:

I've made changes what you asked for!
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/ahammadshawki8/Hospital-Management-System/pull/4#issuecomment-826042654,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANMOM66LFGVWG6IFWWT3CWTTKJPGHANCNFSM43PSSFZQ
.


Is there a way to run a task right after device reboot?

Great repo by the way.

@natimenashe were you able to run the task after reboot?

No, i didn't find another react native repo that perform task on device boot.
Due to lack of time i have implemented a workaround instead of running task on device boot.

you should avoid 'exact' in parameters and  use 'persist' for enabling on reboot.
It's clearly mentioned in read me.

you should avoid 'exact' in parameters and use 'persist' for enabling on reboot.
It's clearly mentioned in read me.

not working after reboot -- device redmi 7


python310Packages.apprise: 1.7.0 -> 1.7.1

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python310Packages.apprise is: Push Notifications that work with just about every platform
meta.homepage for python310Packages.apprise is: https://github.com/caronc/apprise
meta.changelog for python310Packages.apprise is: https://github.com/caronc/apprise/releases/tag/v1.7.1
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.7.1 with grep in /nix/store/bfmw5vwpii4qq51g283qkpbw1m4jb603-python3.10-apprise-1.7.1
found 1.7.1 in filename of file in /nix/store/bfmw5vwpii4qq51g283qkpbw1m4jb603-python3.10-apprise-1.7.1

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

8 total rebuild path(s)

8 package rebuild(s)

First fifty rebuilds by attrpath
apprise
changedetection-io
healthchecks
home-assistant-component-tests.apprise
moonraker
python310Packages.apprise
python311Packages.apprise
unifi-protect-backup

Instructions to test this update (click to expand)

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

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

Or:
nix build github:r-ryantm/nixpkgs/86530be0e330944072493b275ec534e229d7d2e5#python310Packages.apprise

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/bfmw5vwpii4qq51g283qkpbw1m4jb603-python3.10-apprise-1.7.1
ls -la /nix/store/bfmw5vwpii4qq51g283qkpbw1m4jb603-python3.10-apprise-1.7.1/bin

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

6 packages built:

apprise (python311Packages.apprise)
changedetection-io
healthchecks
moonraker
python310Packages.apprise
unifi-protect-backup

Maintainer pings
cc @marsam for testing.

Result of nixpkgs-review pr 278227 run on x86_64-linux 1

11 packages built:

apprise (python311Packages.apprise)
apprise.dist (python311Packages.apprise.dist)
changedetection-io
changedetection-io.dist
healthchecks
home-assistant-component-tests.apprise
moonraker
python310Packages.apprise
python310Packages.apprise.dist
unifi-protect-backup
unifi-protect-backup.dist


ARTEMIS-3303 Default thread pool size is too generous

https://issues.apache.org/jira/browse/ARTEMIS-3303

Need some discussion about:

min pool size
default pool size

What happen when different acceptors are being used?
This behaviour is still a bit static.

Im always cautious about such changes, after all one default for one org, is different to anothers use case in another org.

All fair points, and indeed I believe this should be a cautious and more conservative change but still, there are some historical motivations and experimental facts that can prove that what we set by default is no longer valid/usefull and that it was optimizing for context switches here, nor for throughout or latencies trafe-offs: there are some historical motivations and experimental facts that can prove this.

Re the Netty event loop sizing

historical facts: HornetQ and earlier versions of Artemis was blocking Netty threads, but that's no longer true. We can even choose to use Blockhound to enforce/check it on our CI, see https://github.com/netty/netty/pull/9687
experimental facts: generating a uniformly distributed load with clients >= cores using Core clients shown that the default configuration of Netty thread pool (3X number of cores) prevent scaling and is both hitting troughput and latencies. See https://github.com/apache/activemq-artemis/pull/3572#issuecomment-841788187 for some more details about it.

The motivation re the experimental facts seems related how Netty event loop group works:

Netty assign client connections in round-robin fashion to the configured Netty threads
each client connection can issue write/read events on the event loop (single) selector to wakeup for any work to do
if the number of Netty threads exceed the number of cores and the number of clients is <= Netty threads, each time such notification happen they have some chance (2/3 possibilities) the thread that's going to handle it won't be on cpu (because they exceed the amount of cores) and the OS is forced to deschedule some (random) thread in order to run the Netty thread responsible to handle the interrupt, causing un-necessary context-switches.

The netty default is of 2X the amount of cores for applications that heavily relies just on event loop processing, but Artemis it's not: even AMQP use I/O threads and need GC, compiler threads and sometime global threads to perform its job. Just using 3X is a waste of resources for the current Artemis version.

Re the global thread pool sizing

That's a bit more complex and depends by how ActiveMQThreadPoolExecutor works.
Just writing a simple program can help to spot what's the problem with it (very similar to the Netty one, but not the same).
   public static void main(String[] args) throws InterruptedException {
      ThreadPoolExecutor executor = new ActiveMQThreadPoolExecutor(0, 30, 60L, TimeUnit.SECONDS, new ThreadFactory() {
         @Override
         public Thread newThread(Runnable r) {
            Thread t = new Thread(r);
            System.err.println("created new thread: " + t);
            return t;
         }
      });
      ExecutorFactory factory = new OrderedExecutorFactory(executor);
      final int clients = 30;
      int bursts = 100;
      ConcurrentHashSet[] executingThreads = new ConcurrentHashSet[clients];
      ArtemisExecutor[] artemisExecutor = new ArtemisExecutor[clients];
      for (int i = 0; i< clients; i++) {
         artemisExecutor[i] = factory.getExecutor();
         executingThreads[i] = new ConcurrentHashSet();
      }
      ConcurrentMap<Thread, AtomicLong> executingT = new ConcurrentHashMap<>();
      for (int j = 0; j< bursts;j++) {
         for (int i = 0; i < clients; i++) {
            ConcurrentHashSet threadsSeen =executingThreads[i];
            artemisExecutor[i].execute(() -> {
               try {
                  TimeUnit.MILLISECONDS.sleep(1);
               } catch (InterruptedException e) {
                  e.printStackTrace();
               }
               threadsSeen.add(Thread.currentThread());
               AtomicLong counter = executingT.get(Thread.currentThread());
               if (counter == null) {
                  executingT.put(Thread.currentThread(), new AtomicLong(1));
               } else {
                  counter.lazySet(counter.get() + 1);
               }
            });
         }
         System.out.println("GC pause");
         Thread.sleep(100);
      }
      for (int i = 0; i< clients; i++) {
         artemisExecutor[i].flush(60, TimeUnit.SECONDS);
      }
      executor.shutdown();
      executor.awaitTermination(70, TimeUnit.SECONDS);
      System.out.println("Executing threads: " + executingT);
      System.out.println("Workload distribution per artemis executor:");
      for (int i = 0; i < clients; i++) {
         System.out.println("[" + (i + 1) + "] - " + executingThreads[i].size());
      }
   }

On my machine (12 cores with HT - 6 real cores) it prints 30 times
created new thread: ...
and
Executing threads:
{Thread[Thread-1,5,]=103,
Thread[Thread-20,5,]=99,
Thread[Thread-17,5,]=99,
Thread[Thread-11,5,]=101,
Thread[Thread-18,5,]=99,
Thread[Thread-14,5,]=100,
Thread[Thread-13,5,]=100,
Thread[Thread-21,5,]=99,
Thread[Thread-24,5,]=98,
Thread[Thread-28,5,]=98,
Thread[Thread-5,5,]=103,
Thread[Thread-30,5,]=97,
Thread[Thread-27,5,]=97,
Thread[Thread-6,5,]=103,
Thread[Thread-4,5,]=102,
Thread[Thread-23,5,]=98,
Thread[Thread-25,5,]=98,
Thread[Thread-8,5,]=102,
Thread[Thread-7,5,]=102,
Thread[Thread-3,5,]=103,
Thread[Thread-9,5,]=101,
Thread[Thread-10,5,]=102,
Thread[Thread-19,5,]=99,
Thread[Thread-12,5,]=101,
Thread[Thread-15,5,]=100,
Thread[Thread-26,5,]=97,
Thread[Thread-29,5,]=97,
Thread[Thread-2,5,]=103,
Thread[Thread-16,5,]=100,
Thread[Thread-22,5,]=99}
Workload distribution per artemis executor:
[1] - 17
[2] - 18
[3] - 17
[4] - 15
[5] - 13
[6] - 13
[7] - 17
[8] - 17
[9] - 18
[10] - 14
[11] - 13
[12] - 17
[13] - 15
[14] - 14
[15] - 17
[16] - 18
[17] - 16
[18] - 12
[19] - 17
[20] - 16
[21] - 16
[22] - 14
[23] - 17
[24] - 17
[25] - 17
[26] - 21
[27] - 20
[28] - 19
[29] - 22
[30] - 18

It gives some important info to understand how this thread pool works.
with small enough burst of tasks (but not that small, ~1 ms), issued by several core clients (30 for this test) with some pauses (100 ms is the g1gc default pause target):

the load is spread among all threads ie each thread is getting ~100 tasks each
each executor (client) is getting it's tasks executed by different threads (12->22 on 30 available)
the number of created threads depends how busy existing ones are

In short, if the global thread executor is going to perform mostly non-blocking operations (NOTE: the I/O executor is responsible for I/O blocking ops), with enough clients (clients > available cores) we're going to use the whole number of threads configured on the pool.
But if the max pool size exceed the available cores we will end up, similartly to the Netty case, to deschedule some at random, just to wake-up the next one in charge to handle a specific task.
There are few assumptions to be verified (what if ArtemisExecutor kept busy for too much time a specific Thread, global thread pool tasks cannot block? etc etc) and more tests to be performed, but this shouldn't stop from searching for better adapative (based on the machine spec) default IMO.

In short, I see no harm into reducing a bit the requirements for both thread pools, at least getting:

netty to use N cores
global thread pool to use N cores

Leaving the OS to handle, via context switches, the fairness of task executions among both.
I've decided (in this PR) to use half the core for both because of GC and background OS threads that can handle disk/networking tasks too.

I do indeed trust 100% your intent and belief that this is a great improvement, im just saying we need some stats and testing to back it all up, in theory yes perfect, but as we've learnt before the best of intentions caused issues for others.

I too would take the conservative approach on this change. I think it would make a great documentation update, and we can recommend to explicitly set values to balance io and workers across cores. It makes good sense.
Following happy user feedback, we can work to change the defaults in 2.19 or 3, ie: some point in the future.

@gtully @michaelandrepearce Agree with both of you: need some stats and proper use case load tests to back these new config although Netty thread pool config just doesn't sound "right" to me, but a workaround for the way HornetQ was using Netty event loops.
I'm going to prepare some deeper investigation on this right after the quorum vote work has completed + doing some historic research on the default config we use: I'm sure @clebertsuconic got some pointers about it.
Thanks both for the feedbacks, always useful and wise :)

can't you change ./artemis create to take the correct counting, and apply the new defaults on new created servers?
users moving older tested configurations wouldn't be affected by anything... new brokers would then use the "new defaults" and it would be up to the user to decide on what to do...
we can always log.info (" We recommend new values now.. please change your settings");

This sounds like a good suggestion to me, it avoids existing users getting any surprises of defaults changing beneath their feet, but for new servers, they get the new sparkly settings.
Like wise, I like the idea that if someone is using default, e.g. not explicitly setting, then an info or warn could alert a user to this tuning, so they can at their own will, update their settings to the new sparkly settings.

@franz1981 whats occuring with this, i think an agree-able way forward was suggested by @clebertsuconic , but since didnt see any further updates, wanting to start clearing down old / stagnant PR's a bit of spring cleaning so to say - so we focus on stuff thats actively working on / relevant .

I'm keen to re-implement it as suggested by @clebertsuconic , but after some extensive performance testing to be sure is just the right choice for most users. Closing this, to be reopened in the future


Unspecified value FloatingorClitic in Morphology->LocusOfMarkingPerMicrorelation->LocusOfMarkingBinned5

The list of values for LocusOfMarkingBinned5 doesn't include FloatingorClitic:
https://github.com/autotyp/autotyp-data/blob/88133f01232702659bac179baafbb99d3adc1727/metadata/Morphology/LocusOfMarkingPerMicrorelation.yaml#L345-L362
but the data does:
$ grep FloatingorClitic raw/autotyp-data/data/json/Morphology/LocusOfMarkingPerMicrorelation.json -m 1
        "LocusOfMarkingBinned5": "FloatingorClitic"

Thank you for the report! I have created #30 to track this and related issues. Should you want to report more problems of this kind, please post them there.


[bug] Need a fullpage refresh to get association groups populated for new devices

Version
Checklist:

[x] I am not using HomeAssistant. Or: a developer has told me to come here.
[x] I have checked the troubleshooting section and my problem is not described there.
[x] I have read the changelog problem was not mentioned there.

Build/Run method

[ ] Docker
[ ] PKG
[x] Snap package
[ ] Manually built (git clone - npm install - npm run build )

zwavejs2mqtt: 3.3.0.b2f3402
zwave-js: 7.2.2
Describe the bug
When a new device is added the list of association groups is not populated.

You have to do a fullpage refresh to fill the list.
To Reproduce
Steps to reproduce the behavior:

add new device
wait for it to complete the inclusion
go to groups and select the dropdown
now do a refresh of the page and the list should be populated

Expected behavior
List to be populated with the groups

Will look at this on Monday :)

PR i made for zwjs.


Install & setup

Where to install it and how?

I'm trying to get my devices from Shelly Cloud to Home Assistant.

This is a demo code repo, and not a support forum. Please use Google search for questions like this.
This repo has nothing to do with HomeAssistant


How do I train the Mediapipe model and compile the source code for the Solutions (Android) version? Also, I see that MediaPipe has an Android version, can it be used on a Java backend?

OS Platform and Distribution
windows10,android os 12 ,ubuntu 22
Browser and Version
No response
Any microphone or camera hardware
No response
URL that shows the problem
No response
Describe the actual behavior
Multiple actual behaviors
1、I would like to conduct secondary training on the existing model. Where can I find relevant training documents, as well as rules for using data and annotations?
2、I want to identify images from other places (such as the phase side or network video stream). How can I transfer image data from other places to Mediapipe? I can only find the compilation method for the framework on the official website, and the framework document only calls the camera and directly provides me with a method for identifying the results. However, I currently need to identify images from other places, and I cannot find the relevant documents in the framework (putting the images into the model to obtain the results). I can only find the docking camera and Mediapipe will help me handle everything. May I ask where I need to find the relevant documents
3、mediapipe 有android版本的java代码，但我没找到将这些代码植入java后台的文档，是因为不支持java后台调用吗？

Describe the expected behaviour
1、I hope to retrain the model myself to achieve better results in the environment I need
2、I hope to be able to recognize images from other places, such as albums. I couldn't find the relevant documents in the framework, but I found them in solutions. Is it the same thing as the framework? I was unable to find some solution code methods in the framework. May I know what I need to do to compile the solution version of the code myself

Standalone code/steps you may have used to try to get what you need
No response
Other info / Complete Logs
No response

Hello @jungyin
You can train the existing model of Image classification, gesture recognition and object detection only. Remaining models are not extensible with transfer learning. For example, you can follow customization guide here


get dbsnps_SET_RELEASE.tar.gz issue

The download link https://bamquery.iric.ca/download/dbsnps_SET_RELEASE.tar.gz is inaccessible or expired. How can I download the specific compressed file?

The download link https://bamquery.iric.ca/download/snps_mouse_SET_RELEASE.tar.gz is inaccessible or expired. How can I download the specific compressed file?

For the Genome Versions v26_88, v33_99, and v38_104, the specific files that need to be downloaded vary depending on the version. Here are the specific requirements and file naming conventions for each version

Hello, you need to form the URL by replacing SET_RELEASE by the release version you want. For example: https://bamquery.iric.ca/download/snps_mouse_GRCm39.tar.gz

Before to continue you must provide all the tissue information for the bam files annotated in the file : ./normal_mode_example/output/res/AUX_files/bam_files_tissues.csv. Please enter for each sample : tissue, tissue_type, shortlist (yes/no).

I have a question about this kind of error, is the format of the input file incorrect? What format should the correct input file be?Before to continue you must provide all the tissue information for the bam files annotated in the file : ./normal_mode_example/output/res/AUX_files/bam_files_tissues.csv. Please enter for each sample : tissue, tissue_type, shortlist (yes/no).

File "/home/wangbing/wangxiran/software/anaconda3/envs/BamQuery/bin/BamQuery/readers/read_input.py", line 154, in treatment_file
raise Exception("Sorry, You must provide peptides in the appropriate format mode : peptide/CS/manual ")
Exception: Sorry, You must provide peptides in the appropriate format mode : peptide/CS/manual

It is good to have a standard test input file when testing software. Can you provide one? This place always reports errors

Hi Wang,
Please, refer to this part of the documentation to have more information about how to fill the file : bam_files_tissues.csv
Also, please refer to this part of the documentation for sample inputs and guidance on how to provide input information to run BamQuery.
Thank you!


Use PropTypes from prop-types ( examples )

Remove warning from React about PropTypes, use prop-types instead.
Contains #1909 #1910 #1911

@szhigunov Thank you for fixing these warnings. Can you update this branch with master so I can merge it?


Heatmap previous and next buttons not working

Previous and next buttons are not working for calendars when rendering many calendars in the same page.

Fixed by giving each previous-next button a specific id per heatmap for each heatmap, and using that as a selector:
previousSelector: "#cal-previous-#{punchcard}"
nextSelector: "#cal-next-#{punchcard}"


[Screenshot] - Encode the screnshot URI using http library

One of the problems I think that we're facing is inconsistent representation of URI's. For example %20 should be represented as a <space>  ASCII character.

This needs to happen in the screenshot service when the screenshot is saved.

[ ] Use java.net.URLDecoder.decode() and then apply the slash replacement.

Hi @R-Sandor. I'll take this, if that's okay.

@smzoha Its all yours :smile:


Css Issue

Background-color in .white class is overriding background-color from bg-green,bg-blue and all respective classes.

Duplicate of #102. Please track there 🙃


ClusterLoader: Move overrides to separate directory

Overrides should be moved from clusterloader2/testing/density/ to clusterloader2/overrides.
Overrides should be split into provider category.

Given that we're fine with what we have now, I'm closing this one.


Boilerplate now supports Hybrid Web Apps

Just as an FYI, I've significantly upgraded the Electron.NET-React-Typescript-MobX boilerplate to support both conventional Electron.NET apps and Hybrid Electron.NET apps where the app loads a normal web page from the web into an Electron WebView and grants it a whitelisted subset of native Electron functionality.
After building and running the app (being careful to follow the Readme because there was a publishing step I couldn't figure out how to automate), you can also check out the web-hosted (no native Electron capabilities) copy of the web page that gets loaded into the WebView in the Hybrid app example part of the sample app.

Updated to add custom menu support and fix some race conditions/initialization issues with the WebView/HybridWebApp example (incl. better handling in the Readme of work-arounds for a couple current Electron.NET issues)


use IMMEDIATE mode for the defaultTxn in writeable WAL mode

Did you intentionally alter test.bim and if so in what way?

Did you intentionally alter test.bim and if so in what way?

Yes, I had to manually enable WAL mode.


[Discussion] Key-count

I have a question to version 1.6
I started a history with all transmitted keys for each version every day. But I did not get any keys for 3th to 6th December for Version 1.6 . It would be very helpfull if this number of keys could be posted here.
On 2th of December Key-Number for Version 1.6 was: 276750. Number of Keys on 7th was 278094.
Hope someone can help me and post the missing number of transmitted keys.

@DarkBlue-Night
There's a lot of detailed history on https://ctt.pfstr.de/.

@MikeMcC399
As you wrote - "lots of" .... I have no idea, how to find the numbers I've been looking for in all this data. I can't even see where to look for the Version 1.6 in special. I started to look for the number I have for 2th December - to have an option to find the equivalent number for the other days. But the number for 2th December is not in the sheet I expected it.

@DarkBlue-Night Scroll down and you should see a list of dates. E.g. you can click on plaintext for any data and it should show you the number of keys in the first lines of the text file.
Here the data for 2020-12-03 for example:
Exposure Notification Diagnosis Key Parser
This script parses published Diagnosis Keys.

File 'page/keys/2020-12-03.zip' read.
- Time window: 2020-12-03 00:00:00 UTC - 2020-12-04 00:00:00 UTC
- Region: DE
- Batch: 1 of 1
- # of keys in batch: 24186
- Signature Info:
verification_key_version: "v1"
verification_key_id: "262"
signature_algorithm: "1.2.840.10<IP_ADDRESS>"

As you can see, there are 24,186 keys in this batch.

Corona-Warn-App Open Source Team

@DarkBlue-Night
I hope you know that CWA 1.6 is not the current version, and it wasn't the current version on Dec 3 - 6 either, because CWA Android 1.7.1 was rolled out on Nov 27, 2020.
If the hints from @heinezen don't help, perhaps you can explain what you intend to do with the data?

@heinezen
24186 - is the number of keys which were submitted on 4th December - the next day of course - in Version 1.3 as a new daily "key-package". I have this number in my Version-1.3-Excel-Sheet. The link says "- Region: DE" - this is Version 1.3
In Version 1.6 you only get ONE key-package for one day. And this number is the one I'm looking for.
But I'm very thankful for your help !!

@DarkBlue-Night I can give you my numbers, but they seem to be different from yours ... so not sure if this is helpful ...
I assume you want these numbers just for statistical reasons? Because for your "productive" device that you carry with you, I strongly recommend that you follow the advice of @MikeMcC399 and upgrade to the newest available version.

cwa 1.7 supports hourly files and is able to perform several checks per day, which results in a faster turn-around time from upload of positive keys to a warning.
cwa 1.9 has an improved risk calculation formula based on Google's ENS version 2 API.

This said, here are my numbers as I see them in my log file (and I guess these are European numbers, so not only Germany).
I give you a few days overlap with your numbers so you can estimate how they align with yours.
27 Nov 20078
28 Nov 18498
29 Nov 9212
30 Nov 12667
01 Dec 28111
02 Dec 26910
03 Dec 24931
04 Dec 25309
05 Dec 19753
06 Dec 10656
07 Dec 14913
08 Dec 31940
09 Dec 35396
10 Dec 33271

@DarkBlue-Night I just noticed that your numbers are ~ factor 10 larger than mine.
So I guess you want accumulated number of keys of the last 14 days.
Till version 1.6, a single check per day was performed, and it covered the key files of 14 days into the past.
So try to apply this sum formula to the single-day numbers at https://ctt.pfstr.de/ and see if you get a match.
If the numbers still don't match, the reason might be All-European numbers vs Germany-only. I am not sure which of these numbers is shown at the given link.
Also, for your statistic project, you can consider to retrieve the numbers directly from the endpoint (but of course ony 14 days into the past). You know then exactly what you get (daily vs hourly files, German vs European).

@ndegendogo
"statistical reasons" - exactly !
I have a 1.6-sheet and a 1.3-sheet. I startet in August to document all transferd keys and of course - on my smartphone, I actualy use for contyct-tracking, I run CWA 1.9 ;).
I will check the numbers you gave me - on the first look, they seem perfect for me and match with the numbers I have calculated by myself.
So thanks a lot !!!!!!
I was just giving up on my 1.6-Sheet and so I missed some later numbers as well :(.
May I ask you, where from do you have this numbers you wrote ???
They are not from the link https://ctt.pfstr.de/   - there are the 1.3-Numbers I have in my sheet, but I can't find there the numbers you wrote.

@DarkBlue-Night

of course - on my smartphone, I actualy use for contact-tracking, I run CWA 1.9 ;).

😀👍

where from do you have this numbers

Well - I have iPhone, and so my ENF log looks different from Android, and it shows more details; even with 1.9 it shows numbers per key file, whereas Android shows only a single aggregated number
(if you perform the check between 00:00 UTC and 01:00 UTC, your 1.7 / 1.9 number should be aggregating over the past 14 days without new hourly files, compatible with your 1.6 numbers)

I have a 1.6-sheet and a 1.3-sheet

As far as I understand, the differences of these numbers are German numbers (1.3) vs European numbers (1.6). I have not checked myself, but was not aware that the difference is so small ... so this seems to tell us that only few keys are coming from the other countries? (I'll open a separate ticket with this question).

what do you mean with "from the endpoint"

As far as I know, the key files can be pulled via a REST interface. No password or special authorization required. And this is exactly what several statistics projects like Jan and Michael are doing. So all you need to know is the URI then you can pull the hourly files or the current daily files (Europe) or the "version-1.3" daily files (Germany).
Unfortunately I don't know the URI at the moment, it is documented somewhere - if I find it again I can post it here ...

so I missed some later numbers as well

no problem, I can fill in for your missing numbers - only don't wait too long before asking, because old ENF log entries are deleted after 14 days
Have fun!

@DarkBlue-Night see this discussion
but the URI should also be documented somewhere here in the cwa project

@ndegendogo
I appreciate your help so much !!! You really made my day !
The numbers you posted are exactly the one, I was looking for !!!
They fit exactly in my caluculation.
I'm always one day "behind" your numbers.
So I have calculated:
20078 keys for the 28 Nov - because I got 281430 new keys in Version 1.6 that day - I did not get 20078 keys - but I can calculate the "new" keys as the difference between the keys I get in version 1.6 and the keys from the last 13 days (calculated key-package from the 14th day is dismissed). The difference must be the "new" number of keys for that day. And your numbers are exactly the ones I calculated until 3th December.
But I missed numbers again - sometimes I got 0 keys transmitted. I don't know why :(
The last number I calculated is 31800 for the 17th of December.
When everything is as I think - you should have this number in your log for the 16th December.
Than I missed two days. And without this two days, the whole sheet breaks apart. Because I only calculate this numbers - without actually "knowing" them or see them somewhere.
If you can post the next two or threee numbers - would be great.
And if you find the URI - would be great as well. I will look into the posts from Jan and Michael. There are really a LOT OF NUMBERS ... Maybe I can find the system in this numbers.

(if you perform the check between 00:00 UTC and 01:00 UTC, your 1.7 / 1.9 number should be aggregating over the past 14 days without new hourly files, compatible with your 1.6 numbers)

This is exactly what I though !!! That there should be a match in the daily-key-numbers, which are transfered in Version 1.6 and the higher versions - once a day. Thanks a lot for this unquestioned answer !
--

@DarkBlue-Night See here section "Service APIs / Distribution Service" for description of the endpoint

@DarkBlue-Night is

You really made my day

😀 thanks - glad to be helpful

sometimes I got 0 keys transmitted. I don't know why :(

ooops - sounds not good. Does this happen on your 'productive' device with cwa 1.9.1?
If yes: consider to open a ticket for this.
And for your missing numbers: here are the last days, again with a bit overlap, so you can better synchronize:
13 Dec 13635
14 Dec 17302
15 Dec 31800
16 Dec 37643
17 Dec 55009
18 Dec 47796
19 Dec 42050

@ndegendogo
thanks a lot for your numbers - helps me a lot !! These numbers show me as well, that my kind of "calucate" is correct.
and yes - the "0 keys submitted" happens in 1.9 version.
today- yesterday -
started a couples of days ago - actually with the upgrade to 1.6  - where my inital problem started with the missing numbers from 3-6 December.
Since that - I have always two smartphone with me - one with the reliable 1.3 version - and one with the "today"-version, which is not so reliable for me.

yes - the "0 keys submitted" happens in 1.9 version

@DarkBlue-Night please open a new ticket for this issue so the developers can look deeper into this. Please mention also that your other device works more reliably, and provide all technical details (device type, Android version, cwa version, ...). And if possible also provide the exported ENS log files of both devices
Do you get any error messages when it fails? Or does it just fail silently?

Hey @DarkBlue-Night ,
Do you consider your original question solved? If so, we would close this issue.

But I missed numbers again - sometimes I got 0 keys transmitted. I don't know why :(

Regarding this: Would be good if you could make a separate bug report with more information for this in the issue tracker. If you have a Samsung device, it could be the same issue as https://github.com/corona-warn-app/cwa-app-android/issues/1817 .
Thank you

Corona-Warn-App Open Source Team

My "orginal" problem is solved - I got the numberes for the special days I was looking for.
But I still hope to get the information, where I can find 1.6-and higher Version "submitted keys" here on github.
I'm looking for something like that:
https://github.com/micb25/dka/blob/master/plots_en/plot_num_keys_submitted_last_6_weeks.png
These are 1.3-Version Numbers - and there should be an equiv for the others version somewhere here.
And is there a possibility to write a private message to someone if I have missing keys again? I cant find something like that.
But yes, you can close this issue.

is there a possibility to write a private message to someone if I have missing keys again

@DarkBlue-Night feel free to ping me again if you need these numbers.
I don't know if github supports something like private message - but, you could misuse this ticket even after it is closed, I will keep it watching ... and if I understand correctly, the cwa maintenance team has setup their robots / notifications to skip closed tickets - so hopefully you won't disturb them too much ...
Another question: have you ever tried programming yourself? Or considered to try it?
I am currently trying if I succeed to capture the key files directly from the endpoint. If you are interested we could exchange experience and information.

@ndegendogo, @DarkBlue-Night, no problem at all if you wish to continue in this thread. We can keep it open. DS

@ndegendogo
Could you pls. check my numbers for the last days, because as far as I see, I did not get new keys yesterday.
I write the keys I got the last days - should be always one day earlier in your log.
30.12.20 - I got: 523841 -> I calculate 46050 new keys in this package
31.12.20 - I got: 534940 -> I calculate 48742 new keys in this package
01.01.20 - I got: 514540 -> I calculate 34609 new keys in this package
02.01.20 - I got: 466744 -> I calculate 0 new keys in this package - !!!!!
01.01.20 - I got: 462727 -> I calculate 38033 new keys in this package
Would be very helpfull. Thanks a lot in advance

@ndegendogo
Could you pls. check my numbers for the last days, because as far as I see, I did not get new keys yesterday.
I write the keys I got the last days - should be always one day earlier in your log.
30.12.20 - I got: 523841 -> I calculate 46050 new keys in this package
31.12.20 - I got: 534940 -> I calculate 48742 new keys in this package
01.01.20 - I got: 514540 -> I calculate 34609 new keys in this package
02.01.20 - I got: 466744 -> I calculate 0 new keys in this package - !!!!!
01.01.20 - I got: 462727 -> I calculate 38033 new keys in this package
Would be very helpfull. Thanks a lot in advance

@DarkBlue-Night sure, I can give you my numbers. As you said, I am one day offset to your table:
29.12.: 46050
30.12.: 48742
31.12.: 34609
01.01.: 17977
02.01.: 20046
Please check if these numbers match your expectations. My first guess was that your last number (38033) should be the sum of my last two days, but this seems not true ...
At which time was your check on 02. Jan? The server packs the daily key files at ~ 00:00 UTC (which corresponds to ~01:00 local time Germany in winter). So if your check is between 00:00 and 01:00 UTC you should get clean daily numbers. For later checks you have already new hourly files of the current day.
By the way, I used my Christmas holiday and implemented a Python program, so I am now able to fetch the numbers directly from the server. 😀
If you are interested I could share this program (but you need to install a Python environment then).

@DarkBlue-Night sure, I can give you my numbers. As you said, I am one day offset to your table:
29.12.: 46050
30.12.: 48742
31.12.: 34609
01.01.: 17977
02.01.: 20046
Please check if these numbers match your expectations. My first guess was that your last number (38033) should be the sum of my last two days, but this seems not true ...
At which time was your check on 02. Jan? The server packs the daily key files at ~ 00:00 UTC (which corresponds to ~01:00 local time Germany in winter). So if your check is between 00:00 and 01:00 UTC you should get clean daily numbers. For later checks you have already new hourly files of the current day.
By the way, I used my Christmas holiday and implemented a Python program, so I am now able to fetch the numbers directly from the server. 😀
If you are interested I could share this program (but you need to install a Python environment then).

@ndegendogo
02.01. - is it really 20046 and not 20056 ?
I could kind of "recalculate" 20056, but 20046 is strange for me.

@ndegendogo
02.01. - is it really 20046 and not 20056 ?
I could kind of "recalculate" 20056, but 20046 is strange for me.

@DarkBlue-Night

02.01. - is it really 20046 and not 20056 ?

yes. I have double-checked the number with my cwa (iPhone), and with my Python program.

I try to install a Python-Environment.

😀 feel free to ask if you have any questions.

@DarkBlue-Night

02.01. - is it really 20046 and not 20056 ?

yes. I have double-checked the number with my cwa (iPhone), and with my Python program.

I try to install a Python-Environment.

😀 feel free to ask if you have any questions.

@ndegendogo
Ok, the problem is again, something with the "delivery" of the keys on my 1.6-Handy - like the original problem. Because today  - I got 0 keys in 1.6 again.
So I would need the correct number after 20046...
And I have installed Python already and I think it is running. (I get the >>> after calling python in the Windows PowerShell)
But I have no idea about Python. Not sure, if I know how to run your program.
 Do we have to use English for conversation?

@ndegendogo
Ok, the problem is again, something with the "delivery" of the keys on my 1.6-Handy - like the original problem. Because today  - I got 0 keys in 1.6 again.
So I would need the correct number after 20046...
And I have installed Python already and I think it is running. (I get the >>> after calling python in the Windows PowerShell)
But I have no idea about Python. Not sure, if I know how to run your program.
 Do we have to use English for conversation?

And I just notice, that I got on my 1.10.1-Handy in the night a package with 454098 keys, and now a second daily package with 0 keys as well...
I assume, that the 454098 are the number of keys, which should have been in the daily package for 1.6 - and this would make a 19005 keys in your program, right ?

And I just notice, that I got on my 1.10.1-Handy in the night a package with 454098 keys, and now a second daily package with 0 keys as well...
I assume, that the 454098 are the number of keys, which should have been in the daily package for 1.6 - and this would make a 19005 keys in your program, right ?

@DarkBlue-Night

English or German

Deutsch ist ok 😀

this would make a 19005 keys in your program, right ?

Genau. Heute früh habe ich das File vom 03. Jan bekommen mit 19005 keys.
Ansonsten können wir gerne hier bei mir weiterreden (und dieses Ticket hier schließen).

@DarkBlue-Night

English or German

Deutsch ist ok 😀

this would make a 19005 keys in your program, right ?

Genau. Heute früh habe ich das File vom 03. Jan bekommen mit 19005 keys.
Ansonsten können wir gerne hier bei mir weiterreden (und dieses Ticket hier schließen).


EDCN应该每次传入cross_in和初始第0层的cross_in，否则不符合DCN本身数学推导

Please refer to the FAQ in doc and search for the related issues before you ask the question.
Describe the question(问题描述)
A clear and concise description of what the question is.
Additional context
Add any other context about the problem here.
Operating environment(运行环境):

python version [e.g. 3.6]
tensorflow version [e.g. 1.4.0, 1.15.0, 2.10.0]
deepctr version [e.g. 0.9.2,]

大佬可知edcn.py中为何只用了离散类别特征，而不使用数值特征么？

Please refer to the FAQ in doc and search for the related issues before you ask the question.
Describe the question(问题描述) A clear and concise description of what the question is.
Additional context Add any other context about the problem here.
Operating environment(运行环境):

python version [e.g. 3.6]
tensorflow version [e.g. 1.4.0, 1.15.0, 2.10.0]
deepctr version [e.g. 0.9.2,]

大佬可知edcn.py中为何只用了离散类别特征，而不使用数值特征么？我看之前的dcn.py是两种特征都使用的，但这里RegulationModule却只用3维embeding的类别特征输入

刚刚看到论文相关部分，居然将数值特征都离散化处理了：For numerical features (e.g., bidding price, usage count), commonused approaches are discretization, including soft discretization
like AutoDis [4] and hard discretization via transforming numerical features to categorical features, such as logarithm discretization [13] and tree-based discretization [8].

连续数值离散化操作 应该还是很常见的
发自我的iPhone
------------------ 原始邮件 ------------------
发件人: shuDaoNan9 @.>
发送时间: 2023年3月16日 15:36
收件人: shenweichen/DeepCTR @.>
抄送: Jiakai Tang @.>, Author @.>
主题: Re: [shenweichen/DeepCTR] EDCN应该每次传入cross_in和初始第0层的cross_in，否则不符合DCN本身数学推导 (Issue #509)
刚刚看到论文相关部分，居然将数值特征都离散化处理了：For numerical features (e.g., bidding price, usage count), commonused approaches are discretization, including soft discretization
like AutoDis [4] and hard discretization via transforming numerical features to categorical features, such as logarithm discretization [13] and tree-based discretization [8].
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>

我也没看，这么多ctr 序列模型论文都看 太累了😭
发自我的iPhone
------------------ 原始邮件 ------------------
发件人: shuDaoNan9 @.>
发送时间: 2023年3月16日 16:06
收件人: shenweichen/DeepCTR @.>
抄送: Jiakai Tang @.>, Author @.>
主题: Re: [shenweichen/DeepCTR] EDCN应该每次传入cross_in和初始第0层的cross_in，否则不符合DCN本身数学推导 (Issue #509)
连续数值离散化操作 应该还是很常见的 发自我的iPhone
…
------------------ 原始邮件 ------------------ 发件人: shuDaoNan9 @.> 发送时间: 2023年3月16日 15:36 收件人: shenweichen/DeepCTR @.> 抄送: Jiakai Tang @.>, Author @.> 主题: Re: [shenweichen/DeepCTR] EDCN应该每次传入cross_in和初始第0层的cross_in，否则不符合DCN本身数学推导 (Issue #509) 刚刚看到论文相关部分，居然将数值特征都离散化处理了：For numerical features (e.g., bidding price, usage count), commonused approaches are discretization, including soft discretization like AutoDis [4] and hard discretization via transforming numerical features to categorical features, such as logarithm discretization [13] and tree-based discretization [8]. — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>
之前deepctr中的模型基本都是直接用归一化的数值特征，这里突然开始做离散化了，一开始没理解就只能去翻论文了，开始还想偷懒懒得看论文来着o(╯□╰)o
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>


Upgrade to solidity 0.4.24

The contracts currently use very old versions of the solidity compiler (0.4.8 and 0.4.11). Solidity has changed significantly since. We need to upgrade to 0.4.24, especially since it moves us closer to the 0.5 solidity release (#35)

TODOs:

Remove ^ pragma to lock versions
Set to 0.4.24
Need to re-update ABI


chore(main): release 0.6.0

:robot: I have created a release beep boop
0.6.0 (2023-03-24)
Features

add all descriptor module for CDK and RDKit #79 (0e28187)
add CDK descriptors for COCONUT #78 (d850fde)
add function to COCONUT descriptors based on toolkit #80 (a6db174)
add table preview & JSON,HTML toggle #76,#77 (7e2e063)

Bug Fixes

add nplikeliness for descriptors #74 (41eaa94)
descriptor dictionary order (fcdb1cb)
remove the if cond to check branch name (85fcda0)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/Steinbeck-Lab/cheminformatics-python-microservice/releases/tag/v0.6.0 :sunflower:


alt+left click shortcut for deleting selected link

Description
alt+left click shortcut for deleting selected link
Fixing 100 in SitSim
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

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have been merged and published in downstream modules

Shift Selection not working for nodes
when fixed, Alt should be considered to delete just the pressed link! (clear selection before it)


Bug: Poor contrast on the text box

--- Current line is 5, 5 lines total ---
*help edit
 HELP edit

Poor contrast on the text box.

Color contrast fixed.


Add .idea to .gitignore

.idea is a config folder created by JetBrains IDEs, notably RustRover, and is helpful to ignore for contributing.

I also use JetBrains IDEs, but I don't particularly want an artifact in this project that is IDE-specific.  I rely on contributors to be careful about keeping their IDE artifacts out of pull requests (e.g., by using a global git ignore for them).
So, thanks much for the suggestion, and I take your point, but I'm not going to include this change.


Added hook to rest_api_init to register metadata for use in REST

I'm using this patch in production and would greatly appreciate if it were rolled into your core. It allows you to read and write the two important patreon variables from REST, which helps my work flow with Patreon a lot.

This successfully address issue #100

Since the hooked function included in this PR can be included from any plugin or theme, there isnt a need to merge this into plugin's own code directly. Despite the PR is much appreciated, i will close this due to that reason.

how are you changing the Patreon level per post via API, would be good to know?

Since the hooked function included in this PR can be included from any plugin or theme, there isnt a need to merge this into plugin's own code directly. Despite the PR is much appreciated, i will close this due to that reason.

please explain how to add this to own theme if you are not going to include it in your plugin.


Android scrolling to textfield currently in focus is very inconsistent

I am using KeyboardAccessoryNavigation along with your library to scroll through fields in a redux form. This is a sample that incorporates what I'm doing: https://snack.expo.io/H1JsBYcc7
If you choose the Android simulator, then go to the Navigation View Example and navigate through all the fields, the last field is hidden despite being in focus. I have been troubleshooting this for a while and can't quite figure out why it's occurring. Wondering if you have any suggestions? If I tap on a field in the middle of the screen when the keyboard isn't visible, it scrolls to it as expected, but this is a very inconsistent behavior. Using the next button does not scroll to the textfields further down the page like it does currently in iOS.

Any updates on this?


The module don't work

Hi, i don't know if i have a problem with the version of the module, but when i copy-paste any statblock i have a lot of "error" on the debug screen.
I'm french, i have tried with french and english statblock and ... nothing.
Even i tried to use the bestiary compendium, i click on the button to add the monster on statblock-converter, and have error too.
Anyone can say me why ?
Thank you

The module seems to work fine (or as fine as it does with english) with different languages in its current state. Is this still a problem? I tested with French and German, if that matters.