file templates don't trigger auto rebuild

When a component uses template_name for file templates, changing that templates doesn't trigger rebuilding tetra.
This seems due to the fact that Django (in debug mode) recompiles templates with every page refresh, so changes are seen immediately. In components, the template building is not done by a view, hence Django does not recognize it's changed...?
This has to be investigated further.

I can help look into this!

Still working on a way to do this via tetra, but as a workaround:
-- In apps.py
def watch_extra_files(sender, args, kwargs):
watch = sender.extra_files.add
watch_list = glob("app/templates//.html", recursive=True)
for file in watch_list:
if os.path.exists(file):
watch(Path(file))
class AppConfig(AppConfig):
name = 'app'
def ready(self):
    autoreload_started.connect(watch_extra_files)

So we could put this in tetra/apps.py - maybe the templates directory could be a setting? Thoughts @nerdoc ?

TETRA_TEMPLATES_PATH - if that is set, we setup the watcher extra files, otherwise we do nothing

from pickle import NONE
from django.apps import AppConfig
from pathlib import Path
from glob import glob
import os
from django.utils.autoreload import autoreload_started
from .templates import monkey_patch_template

monkey_patch_template()

def watch_extra_files(sender, *args, **kwargs):
    from django.conf import settings
    watch = sender.extra_files.add
    template_dir = getattr(settings, "TETRA_TEMPLATE_DIR", "app/templates")
    # List of file paths to watch
    watch_list = glob(f"{template_dir}/**/*.html", recursive=True)
    for file in watch_list:
        if os.path.exists(file):
            watch(Path(file))

class TetraConfig(AppConfig):
    name = "tetra"

    def ready(self):
        from .component_register import find_component_libraries
        from . import default_settings
        from django.conf import settings

        for name in dir(default_settings):
            if name.isupper() and not hasattr(settings, name):
                setattr(settings, name, getattr(default_settings, name))

        if not hasattr(settings, "TETRA_ESBUILD_PATH"):
            bin_name = "esbuild"
            if os.name == "nt":
                bin_name = "esbuild.cmd"
            if settings.BASE_DIR:
                setattr(
                    settings,
                    "TETRA_ESBUILD_PATH",
                    Path(settings.BASE_DIR) / "node_modules" / ".bin" / bin_name,
                )
            else:
                setattr(settings, "TETRA_ESBUILD_PATH", None)

        find_component_libraries()
        if hasattr(settings, "TETRA_TEMPLATE_DIR"):
            autoreload_started.connect(watch_extra_files)

def watch_extra_files(sender, *args, **kwargs):
    watch = sender.extra_files.add
    watch_list = glob("app/templates/**/*.html", recursive=True)
    ...

class AppConfig(AppConfig):
    name = 'app'
    ...

That's funny - I didn't know about how tetra uses the autoreload API. Your code uses a good way to jump into it.
But, your  example is nailed to "app", and is accessible globally by all apps then.
I think it is necessary that templates are NOT in a global template directory. This does not scale at all, and makes it impossible to use template in a plugin based application - where django apps bring their own templates (and components)
I definitely like the idea of using templates as files, even more than inline. Sam Willis originally made inline html templates work very cool within the BasicComponent python class, but it really has drawbacks, e.g. the caching, no translations possible in inline django_html code etc.
I for myself I like the idea very much @emilstenstrom used to compose django_components, in a dir:
├── components/
    │   └── calendar/
    │       ├── calendar.py
    │       ├── script.js
    │       ├── style.css
    │       └── template.html

So a close proximity of concerns is also reached. And a sane separation of concerns (html, js, css, py code) is done properly.
I am still inclined to implement that part for tetra too - one directory for one component. I would just change a thing, compared to django_components: the entry file should not be named script.js, style.css and template.html - with this you'll end up with 100 files named "template.html", all spreaded over your directories. when you are searching for the calendar component and search in your favourite IDE for "calendar", you  won't find the component, all template files have the same name.
So I think they should be named calendar.html, calendar.js, calendar.css, and calendar.html
Back to topic, I just wanted to give you a view about where the road maybe is going to, and you maybe can think in better terms of how to  design the code here.
TL;DR:
Assume that templates are at least part of a django app, and (on the long middle term) components could be directories with a template html file under e.g. "components". But definitely not globally. This may be added additionally (like django does), but I think it does not make too much sense, as we are a component library, right? :smile:
Maybe you could modify your code to recognize each app's template dir (this could be changed later easily when using the  "components" dir.

Chiming in from django_components here: I think using django_components Component class in tetra could solve the OPs question. We have autoreload enabled for components. The changes you wanted to do to the django_component structure are all configurable.

I think it is necessary that templates are NOT in a global template directory. This does not scale at all, and makes it impossible to use template in a plugin based application - where django apps bring their own templates (and components)

By default we read both from the global templates directory AND from all app directories inside apps. This means that you can have both global components, and app-specific ones, and mix them together as you wish.
We also have support for writing component libraries, where you can implement a set of components and then redistribute them: https://emilstenstrom.github.io/django-components/latest/#writing-component-libraries

I definitely like the idea of using templates as files, even more than inline. Sam Willis originally made inline html templates work very cool within the BasicComponent python class, but it really has drawbacks, e.g. the caching, no translations possible in inline django_html code etc.

We support both templates as files and inline templates. You can mix them as you see fit.

I am still inclined to implement that part for tetra too - one directory for one component. I would just change a thing, compared to django_components: the entry file should not be named script.js, style.css and template.html - with this you'll end up with 100 files named "template.html", all spreaded over your directories. when you are searching for the calendar component and search in your favourite IDE for "calendar", you won't find the component, all template files have the same name. So I think they should be named calendar.html, calendar.js, calendar.css, and calendar.html

The entry is really the calendar.py file. That file points to the names of all the components, so using calendar.css/html/js is just a search replace away. This was the original default format, and is still supported well. The reason why we switched away was to make components easier to rename, more DRY. But the other format is easily accessible.
Happy to answer any questions if you consider basing tetra on django_components.

Thanks for the feedback - agree I strongly prefer a model where the component python, js, html, css are all co-located in the same directory.
My second code snippet can be pretty easily adapted to:

Reload all html (and probably js/css in the future) files located in component directories that are found via find_component_libraries
Also read "TETRA_TEMPLATE_DIRS" which could be an array of additional directories to watch (either a global template directory, app specific directories, or whatever the user wants).

Is this closer to what you're thinking?

That's funny - I didn't know about how tetra uses the autoreload API.

To be clear, tetra doesn't currently use the autoreload API - that second snippet is a proposal for how we could start using it, along with a new setting I introduced (TETRA_TEMPLATE_DIRS).  Ignore https://github.com/tetra-framework/tetra/issues/74#issuecomment-2434139938 - that was just an experiment to see if it would work, not a proposal :-)

Chiming in from django_components here: I think using django_components Component class in tetra could solve the OPs question. We have autoreload enabled for components. The changes you wanted to do to the django_component structure are all configurable.

I think it is necessary that templates are NOT in a global template directory. This does not scale at all, and makes it impossible to use template in a plugin based application - where django apps bring their own templates (and components)

By default we read both from the global templates directory AND from all app directories inside apps. This means that you can have both global components, and app-specific ones, and mix them together as you wish.
We also have support for writing component libraries, where you can implement a set of components and then redistribute them: https://emilstenstrom.github.io/django-components/latest/#writing-component-libraries

I definitely like the idea of using templates as files, even more than inline. Sam Willis originally made inline html templates work very cool within the BasicComponent python class, but it really has drawbacks, e.g. the caching, no translations possible in inline django_html code etc.

We support both templates as files and inline templates. You can mix them as you see fit.

I am still inclined to implement that part for tetra too - one directory for one component. I would just change a thing, compared to django_components: the entry file should not be named script.js, style.css and template.html - with this you'll end up with 100 files named "template.html", all spreaded over your directories. when you are searching for the calendar component and search in your favourite IDE for "calendar", you won't find the component, all template files have the same name. So I think they should be named calendar.html, calendar.js, calendar.css, and calendar.html

The entry is really the calendar.py file. That file points to the names of all the components, so using calendar.css/html/js is just a search replace away. This was the original default format, and is still supported well. The reason why we switched away was to make components easier to rename, more DRY. But the other format is easily accessible.
Happy to answer any questions if you consider basing tetra on django_components.

Thanks Emil! Great insight and I see your approach in django_components is not far off from what I'm proposing (we both found the same stackoverflow thread!). This discussion is also good context - https://github.com/tetra-framework/tetra/issues/74#issuecomment-2436410898
If you don't mind I plan to adjust my approach to be a bit closer to what you're doing. @nerdoc - thoughts?

To be clear, tetra doesn't currently use the autoreload API - [...] - that was just an experiment to see if it would work, not a proposal :-)

Ah, yes, technically it's just hooking into AppConfig.ready() - hooking into the autoreload API would be really cool then.
@EmilStenstrom Ah, ok, that's a much better approach with .py as entry file, and right, renaming a component should be made easy, and the less files you rename, the better.
My thoughts about merging tetra/django_components (which is already a bit off-topic):

I think, especially in open source projects, working together is always better than the currently hyped business model "My NIH-project is better than all the others". So I like the idea very much to work together as close as possible, as much of the code is somehow duplicated, at least in function. There are a few things to consider. And a few ways how to combine them:

Tetra could e.g. replace its BasicComponent with DC, and add additional functionality - the Component API on top of it. I think this approach is feasible and wouldn't even change Tetra's API. I like the "library" concept of Tetra very much, although the API is a bit cumbersome. Putting components into directories would solve the "library" approach too - Tetra's internal usage of the Library class could even be kept, the whole thing just needs refactoring then.
Tetra could merge with django_components, one project is abandoned. Hm, this is maybe not the best way to deal with it.

@EmilStenstrom how do you think about it? I always thought in a way that duplicating work in open source projects is a BadIdea™. It would be some effort to align Tetra's and DC's aims, but I think it would be worth it. It would also allow users to use a framework of their choice (DC for basic "stacking" of components within HTML, Tetra+DC for additional "reactiveness").
There could be other benefits, as Tetra is very opinonated with its way of holding state, there may be other on-top frameworks emerging that keep state on the server etc., all basing on DC. DC is very flexible ATM regarding configurability. I for myself like the approach better to use one path that works for 95% of the users, and works well, and leave not too much open for "cosmetic" configuration, as it basically makes codebases that use different approaches ({% component "foo_bar" ... %}, {% FooBar ...%}) at least optically incompatible or incoherent. But flexibility has advantages too.
But it would mean we'd have to work together more closely and help out each other maybe (which, for my part, is perfectly ok).
...my 2 cents.

OTOH, django_components already incldues some javascript parts, and has a big codebase with many possibilities, and Tetra is more streamlined with a much smaller codebase, and less option diversities.
This is not easy to combine, as @EmilStenstrom won't like to reduce features, and I wouldn't like to add too much config possibilities, but rather keep the KISS principle...

Okay I'll create a pull request to at least solve the immediate template reloading issue.
I like the idea of having auto discovery and components grouped by directory, but I also like the simplicity of tetra so could go either way on integration. I do feel like the goals of the project are slightly sifferent, but happy to help anywhere I can in that. Maybe a good discussion thread to pull into discussions.

Okay I'll create a pull request to at least solve the immediate template reloading issue. I will make it read from global and app specific template locations (similar to Django components) by default but create a setting that can take an explicit list of directories to watch that will override that default. Ideally it should just work without any config.
I like the idea of having auto discovery and components grouped by directory, but I also like the simplicity of tetra so could go either way on integration. I do feel like the goals of the project are slightly sifferent, but happy to help anywhere I can in that. Maybe a good discussion thread to pull into discussions.

I created a discussion where the directory layout components can be planned.

@gsxdsm I am working at an alternative template loading system too - maybe we could join forces here and not duplicate the work. Could we maybe continue discussing this in #75?

I'll mark this issue as closed, as @gsxdsm's #77 closes this issue - it is still in the components_as_dirs branch, which will be merged ASAP. There are a few showstoppers, summarized in https://github.com/tetra-framework/tetra/issues/76.
Thank you very much.


Gradle sanity check not performing proper lint checks

Issue type
Polishing
Problem description
Hi there, as I was trying to work on an issue within gradle i have found for some reason some of the linting checkstyles were commented out, I am not sure if this intentional by the team or not.
diff --git a/build-logic-commons/code-quality-rules/src/main/resources/checkstyle/checkstyle.xml b/build-logic-commons/code-quality-rules/src/main/resources/checkstyle/checkstyle.xml
index 6cbb4182e42..b4c5a7070a1 100644
--- a/build-logic-commons/code-quality-rules/src/main/resources/checkstyle/checkstyle.xml
+++ b/build-logic-commons/code-quality-rules/src/main/resources/checkstyle/checkstyle.xml
@@ -53,10 +53,10 @@
         <module name="WhitespaceAfter">
             <property name="tokens" value="COMMA, SEMI"/>
         </module>
-        <!--<module name="WhitespaceAround">-->
+        <module name="WhitespaceAround">
             <!-- everything except { and } -->
             <!--<property name="tokens" value="ASSIGN, BAND, BAND_ASSIGN, BOR, BOR_ASSIGN, BSR, BSR_ASSIGN, BXOR, BXOR_ASSIGN, COLON, DIV, DIV_ASSIGN, EQUAL, GE, GT, LAND, LE, LITERAL_ASSERT, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF, LITERAL_RETURN, LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE, LOR, LT, MINUS, MINUS_ASSIGN, MOD, MOD_ASSIGN, NOT_EQUAL, PLUS, PLUS_ASSIGN, QUESTION, SL, SLIST, SL_ASSIGN, SR, SR_ASSIGN, STAR, STAR_ASSIGN, TYPE_EXTENSION_AND"/>-->
-        <!--</module>-->
+        </module>

         <!-- Coding -->
         <module name="CovariantEquals"/>
@@ -86,7 +86,7 @@
         <module name="IllegalImport">
             <!--
                 We shouldn't use jdk.internal types.
-
+
                 com.beust and org.testng.collections has classes that look like Guava.

                 We prefer to import javax.annotation and fully-qualify references to org.jetbrains.annotations.

here is the output with some of the checkstyles enabled
$ ./gradlew test-base:checkstyleMain
Reusing configuration cache.

> Task :testing-base:checkstyleMain
[ant:checkstyle] [ERROR] /Users/Thomas/Projects/gradle/platforms/software/testing-base/src/main/java/org/gradle/api/internal/tasks/testing/junit/result/TestClassResult.java:64:11: 'if' is not followed by whitespace. [WhitespaceAround]
[ant:checkstyle] [ERROR] /Users/Thomas/Projects/gradle/platforms/software/testing-base/src/main/java/org/gradle/api/internal/tasks/testing/DefaultTestSuiteDescriptor.java:31:30: '+' is not preceded with whitespace. [WhitespaceAround]
[ant:checkstyle] [ERROR] /Users/Thomas/Projects/gradle/platforms/software/testing-base/src/main/java/org/gradle/api/internal/tasks/testing/filter/TestSelectionMatcher.java:246:10: 'else' is not preceded with whitespace. [WhitespaceAround]
[ant:checkstyle] [ERROR] /Users/Thomas/Projects/gradle/platforms/software/testing-base/src/main/java/org/gradle/api/internal/tasks/testing/filter/TestSelectionMatcher.java:246:10: '}' is not followed by whitespace. [WhitespaceAround]
[ant:checkstyle] [ERROR] /Users/Thomas/Projects/gradle/platforms/software/testing-base/src/main/java/org/gradle/api/internal/tasks/testing/filter/TestSelectionMatcher.java:246:14: 'else' is not followed by whitespace. [WhitespaceAround]
[ant:checkstyle] [ERROR] /Users/Thomas/Projects/gradle/platforms/software/testing-base/src/main/java/org/gradle/api/internal/tasks/testing/filter/TestSelectionMatcher.java:246:14: '{' is not preceded with whitespace. [WhitespaceAround]
[ant:checkstyle] [ERROR] /Users/Thomas/Projects/gradle/platforms/software/testing-base/src/main/java/org/gradle/api/internal/tasks/testing/worker/TestEventSerializer.java:222:20: 'catch' is not followed by whitespace. [WhitespaceAround]
[ant:checkstyle] [ERROR] /Users/Thomas/Projects/gradle/platforms/software/testing-base/src/main/java/org/gradle/api/internal/tasks/testing/worker/TestWorker.java:110:25: 'synchronized' is not followed by whitespace. [WhitespaceAround]
[ant:checkstyle] [ERROR] /Users/Thomas/Projects/gradle/platforms/software/testing-base/src/main/java/org/gradle/api/internal/tasks/testing/logging/JavaClassNameFormatter.java:34:14: 'while' is not followed by whitespace. [WhitespaceAround]

I am happy to raise PRs to help with the liniting(maybe something like one highlevel folder per PR) and after all that is done reenable the checkstyle, cause i think straight enabling the checkstyle will most likely cause the ci to fail.
Context (optional)
No response

This issue needs a decision from the team. They have been informed. Response time may vary.

@yctomwang A PR fixing that would be appreciated! Please uncomment the settings and fix the formatting where needed.

@ov7a thanks Vlad, I am happy to raise PR, in terms of the actual PR, do you guys want one mass PR with all the formatting fixed?

Yep, single PR would be the best.


How to deploy sql database changes with devops pipelines?

We are currently deploying our api using devops pipelines.
I can see that the doc shows how to deploy with visual studio, visual studio code and local git.
How do we setup a pipeline to deploy database changes, when the app is code first, (dotnet migration) from a devops repo?
Can it be done and is there a guide for this? Or must we do this manually?
We have used this guide so far:
https://docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/getting-started-with-ef-using-mvc/migrations-and-deployment-with-the-entity-framework-in-an-asp-net-mvc-application

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

ID: df55b676-8ff7-1470-3525-d0edfd406af6
Version Independent ID: ac264c26-7196-870b-760f-94a97ae437e8
Content: Deploy an ASP.NET Core and Azure SQL Database app to Azure App Service - Azure App Service
Content Source: articles/app-service/tutorial-dotnetcore-sqldb-app.md
Service: app-service
GitHub Login: @alexwolfmsft
Microsoft Alias: alexwolf

Hi @hrgell, thanks for bringing this to our attention. I have assigned the issue to the content author to evaluate and update  this doc as appropriate

#reassign:cephalin


Partition chart mixes up results

I've set up a partition chart with multiple levels of groupings:
shop -> sales owner -> sale/goal

Superset is not rendering this data correctly, despite the raw results being accurate.

Expected results
A partition chart with the following:
Karachi | Wali Mukhtar | Goal (some number)
| Adnan Shamim | Goal (some number)
| Jeremy Higgs | Sale (some mumber)
Actual results
Instead, entries from other sale owners are getting mixed in.

Screenshots
Added inline.
How to reproduce the bug
Config given above.
Environment
Running on Preset.

🏷 chart

I was able to fix this by reverting the changes to PartitionViz.nest_viz made in this MR https://github.com/apache/incubator-superset/pull/9943. Changing the dims from a tuple to a list means it isn't getting concatenated and so when evaluating partiiton charts with greater than 2 levels it breaks

rip partition charts

Looks like this was fixed, so i'm going to close it

@etr2460 where are you seeing the fix? i just upgraded to 1.1.0 and still see the same bug (the image im using is here https://hub.docker.com/r/amancevice/superset/)

This issue is still occurring. Has there been any movement regarding a fix?

reopen issue, svp

Can you please reopen this issue? Still having this problem for 3 levels! Thank you! :)

@etr2460 Can you please reopen this issue? The problem still exists and makes the partition graph useless for GROUP BYs > 2.

My guess issue is here:
https://github.com/apache/superset/blob/f2523b26fa140febe838624ae8508136d01d1389/superset-frontend/plugins/legacy-plugin-chart-partition/src/Partition.js#L202C15-L207
It sorts globally based on weight, but it should sort only within previous group. Some fix like taking weight as a tuple of all weights from root to current node should be enough. But I need to find out how to setup and debug superset locally.

Is this still an issue in 3.x and is anyone willing to take it on? It's at risk of being closed as stale again :)

The screenshots on this issue is ancient, and it seems to have gone stale again. If people are still facing this, I would warmly welcome a new issue to regroup with current screenshots/repo steps/context.


error in unloading C objects

Look back into problematic unloading in test-models.R
Also see if we want to make the unloading more easily accessible to users.

Here's a reproducible example; it fails both on Mac and Linux.
code <- nimbleCode({
a ~ dnorm(0,1)
})
m <- nimbleModel(code)
cm <- compileNimble(m)
dyn.unload(getNimbleProject(m)$cppProjects[[1]]$getSOName())

and one more tidbit: unloading a compiled RC function works fine (but unloading a compiled true nimbleFunction does not).
here's the RC function example that does not cause a seg fault when R exits:
nf <- nimbleFunction(
run = function(p = double(0)) {
returnType(double(0))
out <- 3
return(out)
}
)
project <- nimbleProjectClass(NULL, name = 'foo')
cnf <- compileNimble(nf, project = project)
dyn.unload(project$cppProjects[[1]]$getSOName())

I think I have this fixed, or least less of a problem.  In the past we have generated a very short finalizer function for each generated C++ class so that when we register an R external pointer to an object of the class we can provide a pointer to the finalizer function (R_RegisterCFinalizerEx).  I think the problem had to do with those finalizer functions getting taken away by dyn.unload but then the finalizer trying to call them (by function pointer) and finding nothing there and hence crashing.  I realized that in practice all of our generated classes inherit from base classes defined in CppCode, so we could rely on a single finalizer function in CppCode (i.e. loaded with the package) that calls a virtual base class destructor.  I made this change, so we no longer generate derived-class-specific finalizers (although the code to do so is still in the general cppDef system).  However this still did not fix the segfaults, and I am not sure why.  I am wondering if in R's termination sequence it might unload shared libraries before trying to clear all variables, and hence run into the same problem.  So next I turned off the "onExit" flag to R_RegisterCFinalizerEx.  Now during R's termination there is no attempt to call finalizers, so the problem does not occur, and the segfaults seem to not happen, at least in the examples I was using.  I believe the allocated C++ objects will be cleared anyway as part of an OS cleaning up memory when R terminates.

seems to work when I enable dyn.unload for test-models (in testBUGSmodel)
and test-mcmc.  That change is now on devel.
On Wed, Jul 29, 2015 at 5:03 PM, perrydv<EMAIL_ADDRESS>wrote:

Closed #52 https://github.com/nimble-dev/nimble/issues/52.
—
Reply to this email directly or view it on GitHub
https://github.com/nimble-dev/nimble/issues/52#event-368936413.


[Feature request] Forward To Gateway

At the moment when configuring dhcp you seem to only have the one option of selecting a default gateway. Alongside this, can you give users the option to use opnsense as a gateway and forward to the actual gateway on a different subnet.
Because, this would be especially useful when using opnsense with coaxial router/modems that don't give you many configuration options or similar situations.
For example, if your opnsense has an address of  <IP_ADDRESS>/24, and your default gateway is <IP_ADDRESS>, and in the dhcp config options you have <IP_ADDRESS> as the default gateway which then forwards all traffic to <IP_ADDRESS>.
Thanks

I'm not sure what your looking for here, how should the dhcpd.conf look like in your proposed scenario?

@AdSchellevis
Essentially what i would like to do is  configure opnsense as default gateway using dhcp. But, then forward all traffic to the actual gateway.
Also, where can i find the dhcpd.conf file.

@AdSchellevis
I imagine it would look the same but, traffic going to opnsense that's meant for the default gateway, would then be forwarded by opnsense to the actual default gateway, like using a proxy.

Sounds like you want to set the default gateway in OPNsense to the one you need to reach?

Yes, but only opnsense, the rest of the network should use opnsense as the default gateway.
Sorry, if i am explaining this badly.

/var/dhcpd/etc/dhcpd.conf

I'm quite sure the forums with a nice drawing is the better place where ppl can help you

@mimugmail

I'm quite sure the forums with a nice drawing is the better place where ppl can help you

Ok thanks for the suggestion, i have followed your advice.
https://forum.opnsense.org/index.php?topic=11621.0

let's close this issue, feel free to open a new one when the forum discussion leads to a feature request.


Celery task inconsistencies in prod

Lately Celery tasks which should check job status are either getting lost or squeezed out by other tasks. As such task status in PlantIT may not be updated. Could be due to accumulation of tasks overloading the worker as it doesn't seem to happen in dev environments. Need a fix ASAP.

We should also probably use the Eventlet Celery pool since tasks are primarily IO-bound (https://docs.celeryproject.org/en/stable/userguide/concurrency/eventlet.html)

Seems like these issues only surface on Sapelo2 so far. Some commands (in particular copying task config files, submitting tasks, checking status,) turn unresponsive sometimes for no good reason. Need to add timeouts/retries.

Task step timeouts added in b69dd96. Still need retries

We have timeouts and retries. Might try another Celery worker

Should be solved by 8b73a52
Turns out they do actually recommend not embedding the beat scheduler in the worker process, according to this it looks like that can cause issues
There is a distinct issue on Sapelo2, though, where copying task files stops indefinitely

Celery worker still gets bogged down whenever a task reaches soft timeout (in particular this is happening on Sapelo2)


Use SecretProvider mechanism for PSK storage

When in PSK mode the key should be retrieved using the secret provider mechanism so that in secure mode it can be in Vault.
For compatibility purposes, fall back to obtaining the key from configuration.

closed #34


how to hide result from hidden form?

Having ^{:nextjournal.clerk/visibility #{:hide}} or ^{:nextjournal.clerk/visibility #{:fold}} the form is hidden/folded but still result of evaluating it is rendered (which is confusing). Is there any way to hide result as well?

Hi @genmeblog, you can currently hide the result using the clerk/hide-result viewer, see
https://github.com/nextjournal/clerk/blob/d7b3e6602795b306bc75925fe70803db38fcfaa0/notebooks/visibility.clj#L22-L24
We're considering to make this accessible via metadata in the future https://github.com/nextjournal/clerk/pull/24#issuecomment-992206819

thanks for quick response!

The clerk/hide-result gets confused if one uses a var:
(clerk/hide-result (def blip (range 0 500)))
produces an output cell with the specified range.


Automoderator monitoring tools

Issue
It would be nice for moderators to have tools to monitor violations.

Automoderator v1 doesn't have any monitoring options
Automoderator v2 has a logs tab

While it's nice to have a logs tab on the control panel there is no monitoring features on the discord server itself.
Feature 1 : notification channel
Other moderation bots like MEE6 have a feature to report any violation in a channel so moderators can receive notifications on discord directly and all violations logged on a channel.

The idea would be that for each moderation tool and for all rules of Automoderator v1 and Automoderator v2 having dropdown button to select a notification channel.

Feature 2 : moderation logs commands
There is already automod Logs but it shows nothing to me while there was violation recently.

It says it's a alias of log commands but actually the logs gives a link to a dashboard with all messages on the server, which is not the same thing.
The automod ListViolations command requires a user to work. You can't do stuff like list all violation globally or for a channel or filter for a certain time range (less than 10, lays 24h, last 7 days, etc.)
Also it's not clear if those commands should for for automoderator v1, or v2, or both, or also for manual moderation commands like warnings.

Hi, thanks for writing in! However, we use the support server for suggestions and requests.
Nonetheless, let me address your comment.
Just so we're on the same page: (Automod) violations are not the same as warnings as per your screenshot -- violations are entirely internal to automod v2, meant as a way to track transgressions of tiered rulesets and similar. Thus, notifications for these are (as of now) not emitted, neither in DMs to the offending user nor in any channel.

Feature 1 : notification channel
Other moderation bots like MEE6 have a feature to report any violation in a channel so moderators can receive notifications on discord directly and all violations logged on a channel.

Such a feature already exists, called mod log. See here for a mention of it and here for a demonstration on how to set it up.
Additionally, here's a screenshot:

There are indeed suggestions with regards to having a channel where violations are sent to, though.

The idea would be that for each moderation tool and for all rules of Automoderator v1 and Automoderator v2 having dropdown button to select a notification channel.

That is just plain excessive
if you really want to, you can write some custom command code in the moderation DM field of each respective action

With the above in mind, there's no need to add yet another UI element given that that can already be done via custom commands.

Feature 2 : moderation logs commands
There is already automod Logs but it shows nothing to me while there was violation recently.

I think this should be cleared up as per the beginning of my comment. Violations are a wholly different thing, internal to auto-moderation.

It says it's a alias of log commands but actually the logs gives a link to a dashboard with all messages on the server, which is not the same thing.

That is not quite correct -- it says it has log as an alias, see the attached screenshot:

The automod ListViolations command requires a user to work. You can't do stuff like list all violation globally or for a channel or filter for a certain time range (less than 10, lays 24h, last 7 days, etc.)

You can list globally, as per the attached screenshot. The docs were generated at some point and never updated thereafter, or it is a typo.

The output of a global server listing would be something like this:

Also it's not clear if those commands should for for automoderator v1, or v2, or both, or also for manual moderation commands like warnings.

Automod v2 only.

violations are entirely internal to automod v2
...
I think this should be cleared up as per the beginning of my comment. Violations are a wholly different thing, internal to auto-moderation.

It's was automoderation violations but from automoderator v1 so I guess automod Logs works only for automod v2.

You can list globally, as per the attached screenshot. The docs were generated at some point and never updated thereafter, or it is a typo.

That's automod ListViolationsCount not automod ListViolations.
Thanks for the detailed answers.

Summary :

Feature 1 : notification channel

Already exists for kicks and bans
[Feature request] for automod v2 violations

Feature 2 : moderation logs commands

It's normal automod Logs showed me nothing as it was automod v1 violations and the command works only for automod v2 (my PR to clarify this on the doc https://github.com/botlabs-gg/yagpdb-docs/pull/3)
automod ListViolationsCount can work globally but automod ListViolations doesn't work globally
[feature request] to make automod ListViolations works globally
automod ListViolationsCount has a duration - max violation age but not automod ListViolations
[feature request] to make automod ListViolations have a max age duration filter option


Alternate MCC forumla to fix for numpy int64 overflows

Fix for #105.
Tested by comparing the old formula and the new formula and received exactly the same results. Interestingly the overflow doesn't occur with the standard python ints but only the numpy int64 types.

Fixed the PEP8 error. Travis is still saying there are issues, but I think those are in the underlying master branch

True, the underlying error seems to coming from the Xgboost module. I am facing the same issue.

Just a ping on whether we can integrate this into the code base as I'd like to remove the work arounds from my code. Thanks!


derivative of sigmoid at nnbp.m

I have a question in  nnbp.m.
case 'sigm'
d{n} = - nn.e .* (nn.a{n} .* (1 - nn.a{n}));
and
case 'sigm'
d_act = nn.a{i} .* (1 - nn.a{i});
derivative of sigmoid is
sigmoid(x)/dx = sigmoid(x)*(1-sigmoid(x))
so.. shouldn'T it be like below?
case 'sigm'
d_act =sigm( nn.a{i}) .* (1 - sigm(nn.a{i}));
thank you

In nnff.m, the sigmoid is already being calculated and stored in nn.a. Just need  to do 1-sigm(x) in back propagation.

Thank you.
I see, so this is why every iteration in training, nnff is also called before nnbp to update nn.a.
With Bishop notation in his book,  nn.a is rewritten to --->  z = sigmoid( nn.a )

Well its clear now :)


multicolumn indexing

I'm opening a draft PR for features to address https://github.com/AlgebraicJulia/ACSets.jl/issues/17. There's some junk/temporary files that I was using to test things with that are in this PR, but the relevant "proof of concept" code is in https://github.com/slwu89/ACSets.jl/blob/multicol-index/src/MultiColIndex.jl and https://github.com/slwu89/ACSets.jl/blob/multicol-index/test/MultiColIndex.jl contains some bare minimum examples that things are working with one indexed product, and one an indexed multi-relation.
On the dev meeting, it was suggested by @epatters that a good way to incorporate the new data structures would be to wrap the acset in another structure that contained information needed for indexing. This draft creates a new type IndexedSpanACSet which stores what I am calling "indexed spans", that is, (multi)spans that we want to generate a preimage cache for, and also stores those preimage caches. The indexed spans are stored in the type, as eventually I think we'll want to move as much of the search logic as possible to be done at compile time, but for now all of that logic is done at runtime.
incident is overloaded for the new type, and either looks up the key in the cache if that combination of homs is indexed, or does a simple runtime search if not.
In order to nicely integrate this feature with existing ACSet machinery, it seems that modifications to at least 4 methods are needed. If parts are added or removed to the legs of any indexed span, the keys of the preimage caches need to be updated, so add_part! and rem_part! are overloaded. On a second glance at the source, it seems that add_part! actually just calls add_parts! with a single argument, so it seems that the overload should be for the plural method. The other two are set_subpart! or clear_subpart!, which need to update values associated with keys when subparts are modified that are involved in an indexed span(s). I believe that overloading these 4 methods, and forwarding the rest of the methods in the acset interface to the underlying acset within the IndexedSpanACSet should be sufficient to get everything working, but this is one of many places I'm looking for some guidance.
There are many remaining questions besides obvious ones related to eventually getting this PR ready for review. One of them is how (assuming we want to) to allow multicolumn indexing to work where some of the parts in incident may be attributes, and we want to index backwards along some chain of attrs/homs until we get to the apex part(s) corresponding to them.
Tagging @kris-brown here as he gave me great help on my last PR, but happy to hear comments from others.

Closing, as I haven't had time to keep pursuing it, and https://github.com/AlgebraicJulia/GATlab.jl/pull/135 seems like the glorious future for acset like data structures.


Create make install

Hi,
is there any reason why the Makefile doesn't have a make install? Perhaps it would be great to install compiled binaries in the path.
Best

Unfortunately erlang/rebar way of managing deps creates a lot of problems if you will run app outside of the main directory. To create standalone file, it will be needed to migrate to rebar3, patch 3rd party deps and also a lot of pain. It's not worth the goal in the end. May be when I'll be 100% sure on all deps that will be used by erlamsa, I'll do it; but right now don't want to waste so much effort for such small feature.

Ok, I was afraid of that! Patched the Makefile to install the binary but this wasn't running properly from /usr/local/bin.
Should we close it then?

I better keep this open as a reminder :) And also may be some of rebar wizards will see it someday

Should work, but not sure whether it is fully correct :)

Please let me know if it works on linux, so I could close this issue


[Bug] Line Item Enhanced - Refunds not included

Is there an existing issue for this?

[X] I have searched the existing issues

Describe the issue
Noticing that no refunds are captured in this table
Relevant error log or model output
No response
Expected behavior
Refunds should display on the invoice or item id
Possible solution
Something to do with the transaction id.... i think using the charge id allows you to map it correctly. Trying to play around with it.
dbt Project configurations
Default
Package versions
Current Version
What database are you using dbt with?
snowflake
How are you running this dbt package?
dbt Cloud™
dbt Version
Current
Additional Context
I just think there is an issue with one of the joins. Take a look at charge_id
Are you willing to open a PR to help address this issue?

[ ] Yes.
[X] Yes, but I will need assistance.
[ ] No.

@rick1290 thanks for opening this issue and providing insight into the refunds not displaying as expected.
When looking at the ERD it looks like there is a possible connection via balance_transaction_id. However, to your point as well it looks like it could also map via the charge_id.

 Do you see the charge_id mapping the refunds appropriately? I'll also call out that we perform this same join in the stripe__balance_transactions model.

@fivetran-joemarkiewicz Charge Id indeed works..... and applies the refund to the invoice level. Balance transaction does not work or map correctly.
So I guess in this enhanced table - the REFUND would only apply at the header level it seems.

@rick1290 I wanted to let you know that I've been looking into this and agree there likely needs to be a change to properly account for refunds. However, I've seen some conflicting results when swapping the join with data on our end 🤔.
I'll continue to investigate and will share here once I have found a viable solution to this issue that will work for all use cases. Thanks!

Hi @rick1290! I made some changes to our stripe_line_item_enhanced model in a branch you can test out.
Since charges and refunds are both types of balance transactions, but a refund is tied to the charge, and this model is primarily bringing in balance transaction charges, I included an additional join to bring in balance transaction refunds so that they could exist at the same level.
I then summed the fee amounts from both refunds and charges, and changed the type to account for a charge that also has a refund.
Let me know your thoughts or if there is anything that is still not quite working for your use case!

Hi @rick1290 , just circling back here, were you able to test this new version of the stripe__line_item_enhanced model? Just want to make sure it works for your purposes. Let us know if you have any questions!

Hi @rick1290 ! We are planning to bring this task into our current sprint and work on this potential solution shortly. I just wanted to make sure that this proposed scoping made sense or if there are any nuances we might have missed.
If we don't hear back, we will keep you in the loop regarding development on this issue.

Hi @rick1290 , these updates are now live on the latest version of stripe on the dbt hub. Closing this ticket, but let us know if you have any questions, thoughts, or concerns, for refunds now properly being reflected.


The URL in this repository description is broken

http://schemas.datapackages.org/registry.csv doesn't exist anymore.

?
It has never existed. I only created the proxy for that domain yesterday, and started on the changes here in a dedicated branch yesterday, which I have not yet submitted as a PR, as well: https://github.com/dataprotocols/schemas/tree/feature/schemas.datapackages.org

I believe this can be closed as the URLs exist:
http://schemas.frictionlessdata.io/registry.csv
http://schemas.datapackages.org/registry.csv


Issues related to compiling AmberTools with clang-16

These errors are seen (in old,old,old xleap code):
These are the errors from the osx-64 and osx-arm64

2023-10-06T01:41:17.8020210Z /Users/runner/miniforge3/conda-bld/ambertools_1696552439471/work/AmberTools/src/leap/src/Wc/WcActCB.c:316:5: error: incompatible function pointer types passing 'void (Widget, XtGrabKind)' (aka 'void (struct _WidgetRec *, XtGrabKind)') to parameter of type 'PFVWidInt' (aka 'void (*)(struct _WidgetRec *, int)') [-Wincompatible-function-pointer-types]
2023-10-06T01:41:17.8021260Z                          XtPopup, XtGrabNone );
2023-10-06T01:41:17.8022180Z                          ^~~~~~~

2023-10-06T01:41:17.8025180Z /Users/runner/miniforge3/conda-bld/ambertools_1696552439471/work/AmberTools/src/leap/src/Wc/WcActCB.c:323:5: error: incompatible function pointer types passing 'void (Widget, XtGrabKind)' (aka 'void (struct _WidgetRec *, XtGrabKind)') to parameter of type 'PFVWidInt' (aka 'void (*)(struct _WidgetRec *, int)') [-Wincompatible-function-pointer-types]
2023-10-06T01:41:17.8026070Z                          XtPopup, XtGrabExclusive );
2023-10-06T01:41:17.8026340Z                          ^~~~~~~

2023-10-06T01:41:17.8103750Z /Users/runner/miniforge3/conda-bld/ambertools_1696552439471/work/AmberTools/src/leap/src/Wc/WcActCB.c:916:23: error: incompatible function pointer types passing 'void (Widget, const char *, XtCallbackList)' (aka 'void (struct _WidgetRec *, const char *, struct _XtCallbackRec *)') to parameter of type 'AddOrRemoveProc' (aka 'void (*)(struct _WidgetRec *, char *, struct _XtCallbackRec *)') [-Wincompatible-function-pointer-types]
2023-10-06T01:41:17.8104400Z                                 "WcAddCallbacks", XtAddCallbacks );
2023-10-06T01:41:17.8104690Z                                                   ^~~~~~~~~~~~~~

2023-10-06T01:41:17.8107390Z /Users/runner/miniforge3/conda-bld/ambertools_1696552439471/work/AmberTools/src/leap/src/Wc/WcActCB.c:926:26: error: incompatible function pointer types passing 'void (Widget, const char *, XtCallbackList)' (aka 'void (struct _WidgetRec *, const char *, struct _XtCallbackRec *)') to parameter of type 'AddOrRemoveProc' (aka 'void (*)(struct _WidgetRec *, char *, struct _XtCallbackRec *)') [-Wincompatible-function-pointer-types]
2023-10-06T01:41:17.8107970Z                                 "WcRemoveCallbacks", XtRemoveCallbacks );
2023-10-06T01:41:17.8108230Z                                                      ^~~~~~~~~~~~~~~~~

I don't have access to OSX machines, but have installed clang-16 on my linux (Ubuntu) box, and will see if there is some simple fix.  I don't think anyone understands what this code is doing.
Going forward, AmberTools has a significant number of function declataions without prototypes (cpptraj, etc.).  These will need to be addressed soon.

Are there other GUI programs bundled with AmberTools? I know that some people strongly prefer using xleap but my organization doesn't need it (and I on a personal level have some strong anti-GUI opinions).

Yes, we only have one compiler stack per platform, to avoid various ABI issues and keep our CI matrix sane

The issue is not just that clang doesn't accept certain constructs by default anymore, it's also that the C standard itself is getting stricter about the things that are allowed, and the compiler authors follow that. So if you have ancient code you rely on, the options are:

[good] fix the code
[ok] try to use an old C-standard version
[ok-ish] turn off the warnings where possible

Though the best might actually be to switch the GUI to a more modern stack (like wayland etc.) than X, which is just bitrotting in ever-escalating fashion. I realize that that's probably not a small operation though, so if there are few users of the GUI, -DBUILD_GUI=FALSE might also be a feasible solution.

Since ambertools (at least in this feedstock) is being built by CMake, the easiest would be to add -DCMAKE_C_STANDARD=90.
FWIW, here's the section about these changes in the clang 16 release notes.

Scott Brozell is looking to possible fixes, i.e. making the pointers acceptable

Judging from the docs, this is mostly being more judicious about what the types in the function signature are, w.r.t. adding resp. removing * / &.
W.r.t. standardese, I found the following reference:

The rationale for reporting errors is C11 <IP_ADDRESS>p9:
"If the function is defined with a type that is not compatible with the type (of the expression) pointed to by the expression that denotes the called function, the behavior is undefined."

If need be we can carry a patch for that locally, no need to republish.

The first two errors are complaining that type XtGrabKind, an enum in X11/Intrinsic.h, is not the same type as int.
The second two errors are complaining about const-ness, ie, passing a const char * to a char *.
So technically these do flag potentially buggy code, but as a practical matter this is merely routine code for its era.
I'm not sure i know where to put in the syntactic sugar, ie, casts, to make the compiler happy, but i have ideas; however, i did not find an already available clang 16 compiler nor have i tried to install it yet.  (To really fix the code to make it bullet proof would likely take lots of study, at least from me.)

Fixed in the Amber repo, merged into master, will be released with Amber24.

BTW, fixing the code was necessary to support oneAPI compilers, so this was a beneficial side effect.


Ensure dock is showing before showing dialogs

Fixes #758

Click the Kap menu bar icon, then in the floating controls view, click ... and then select "Open Video". The open panel shows for a second and then disappears.

So, this was the main issue. I've noticed this with any electron dialogs. I narrowed it down, to it happening where the dock is not showing and the dialog is not attached to a window (similar to the app not being key). Same went for the permissions dialogs.
Added a utility to ensure we show the dock before we open the dialog, and then hide it (if it wasn't showing already)

If I drag and drop a video on the Kap menu bar icon, the destination dropdowns in the editor are empty

This was an issue with yarn fixed in #763

"Open Video" is missing in the "File" menu in the Kap editor.

I can't reproduce this 🤔 When I'm in an editor, when I click File, I see the Open Video option:

Branched off of #763, which fixes most of the weird issues relating to plugins

Click the Kap menu bar icon, then in the floating controls view, click ... and then select "Open Video". The open panel shows for a second and then disappears.

This happens for me.

Hmm, I can't reproduce, but I'll try to see if the artifact is any different

@sindresorhus
For the latest artifact in this PR, when I follow the steps, the open window dialog shows behind my last active app (Kap activates, shows the dialog, then deactivates so the dialog goes behind that last active app) but it doesn't completely go away like it used to. I can try making it so we close the croppers after we've shown the dock, so maybe it doesn't lose focus in the meantime. Hopefully that will keep it at the top.

Okay, so I was able to reproduce the issue when running in the terminal, but not the packaged app, which was a small tell. I figured that the issue was that closeAllCroppers for some reason takes a bit longer to finish (the window.destroy() is not async, but I don't think it completes all events before returning. So, after closing all the croppers, we have a window-all-closed event that hides the dock. That had a timing issue with showing the dock for the open dialog which was causing the window to disappear sometimes. Similar issue we had with the about window. Used the same solution as we had there, adding a small delay after closing the croppers, which seems to work consistently for me both when running locally and packaged. Also the window now correctly stays on top

Can you fix the merge conflict?

I figured that the issue was that closeAllCroppers for some reason takes a bit longer to finish

Yes, everything is a bit slower in dev as everything runs in dev mode, including React and Next.

I figured that the issue was that closeAllCroppers for some reason takes a bit longer to finish (the window.destroy() is not async, but I don't think it completes all events before returning.

Worth opening an Electron issue?

adding a small delay after closing the croppers, which seems to work consistently for me

👍 Yup. Works well now.

@sindresorhus Should be fixed 👍

Worth opening an Electron issue?

I don't know. The docs don't explicitly say that when you call window.destroy() the method doesn't return until all app events are called and finished. So I guess it might be async by nature (not the method itself, but the logic) which is causing the race issue we had here

I don't know. The docs don't explicitly say that when you call window.destroy() the method doesn't return until all app events are called and finished. So I guess it might be async by nature (not the method itself, but the logic) which is causing the race issue we had here

I would argue that is a bug then, they either need to:

Better document how it works.
Fix the race condition.
Make the method return a promise.


Turn Marker Compatability

When using Quick Combat with Turn Marker and starting a quick combat, the combatant with the last name in alphabetical order has an additional, irremovable turn marker. This error does not happen if combat is started traditionally.
How to reproduce:

Install both modules.
Start combat between a few NPCs using CTRL+C.

fixed the issue, should work now.


Varargs positional arguments consume unmatched options

This is an extension of https://github.com/remkop/picocli/commit/b287f782c419de1e55ef56d4547e0fd67b13f215
When consuming arguments for a varargs positional argument you check that the next arg isn't a recognised option, but not whether it resembles an option.
Thus mycmd --real-option arg and mycmd arg --real-option are handled symmetrically (one positional arg and one option consumed), but mycmd --no-such-option arg and mycmd arg --no-such-option are not (1 unmatched, 1 positional and 0 unmatched, 2 positional respectively).

This issue is similar to https://github.com/remkop/picocli/issues/639 (which started out about multi-value options with arity = "*" consuming values that resemble options, and later found that single-value options that take a String parameter will also consume a value that resembles an option).
So, yes, currently values that "resemble" options are consumed, and only values that exactly match an option name will cause a varargs option or positional parameter to stop consuming values.
One idea to improve this is to have a consumeUnmatchedOptionsInVarargs property in ParserSpec (and perhaps CommandLine.get/setConsumeUnmatchedOptionsInVarargs methods). This property would be true by default, to keep the current behaviour.
When this property is set to false, a value that "resembles" an option would be treated as unmatched input, which would either throw an UnmatchedArgumentException (resulting in a nice user-facing message) or cause the value to be added to the unmatched arguments list, depending on how the application is configured via CommandLine.setUnmatchedArgumentsAllowed(true/false).
This is on the roadmap but I won't be able to spend time on it in the near future. If this interests you, and you feel like helping to improve this, please consider submitting a pull request. 😉

I think consumeUnmatchedOptionsInVarargs is effectively a duplicate of unmatchedOptionsArePositionalParams, no? Personally I'd view the current situation as a bug (most argparse-type libraries (that support intermixed positionals and options at all) would object to somearg --somenonsense the same as --somenonsense somearg, but obviously your call as to the primacy of expected behaviour for newcomers vs. not surprising upgraders.

I think consumeUnmatchedOptionsInVarargs is effectively a duplicate of unmatchedOptionsArePositionalParams, no?

The problem is that while processing varargs, the parser is not watching for unmatched options.  The unmatchedOptionsArePositionalParams property only takes effect when an arg is recognized as an "unmatched option". I think these need to be separate parser properties.

I'd view the current situation as a bug

Varargs have limitations. I would agree we have a bug if a vararg option would consume subcommands or real options. With arguments that "look like options" I think the current behaviour is one reasonable way to do it.
That said, I am happy to improve things. At some point I will probably add a configuration like we discussed above to make the parser check for arguments that "look like options" before letting varargs consume such arguments. I just don't know when I will get to it.
If this is important to you, I encourage you to dive in and contribute a PR. It may be easier than you think! :wink:

Looking at this and similar issues (#639 and #1055) now.
Reading your comment again I like your idea of consistently rejecting both  mycmd --no-such-option arg and mycmd arg --no-such-option unless unmatchedOptionsArePositionalParams=true, rather than introducing another parser option.

Fixed in master.
This will be part of the next picocli 4.4 release.


MQTTMessageLogger: Wrong logger class

https://github.com/andsel/moquette/blob/1ba9eb3613bc79d28c5d45d9c0984033d36d83af/broker/src/main/java/io/moquette/broker/metrics/MQTTMessageLogger.java#L41

Thanks, you are right  checked in with 2416347beadf1c571a621a950f7bfb1406d928b1


Improve UX when scanning an address

When I scan a QR code that contains the sendto information (see #174), it should take me directly to the enter amount screen, not to the selection of the account.

[ ] That send screen should populate the profile attached to the username or 0x address provided (it shows "anonymous" atm).
[ ] The amount should be prefilled if defined in the QR code (it is not at the moment).

When scanning a QR code that specifies the 0x address:

When scanning a QR code that specifies the username:

It should instead directly go to that screen:

Here is a QR code you can use to test:

https://live.citizenwallet.xyz/wallet.pay.brussels/fridge/pay?sendto=fridge@wallet.commonshub.brussels?description=Drinks&amount=3.00
And another one that leaves the amount undefined:

https://live.citizenwallet.xyz/wallet.pay.brussels/fridge/pay?sendto=fridge@wallet.commonshub.brussels?description=Drinks

comment to self: this happens using the main scanner

Your message is mostly clear, but here’s a more concise version to make it even easier to follow:
@xdamman The URL you posted:
https://live.citizenwallet.xyz/wallet.pay.brussels/fridge/pay?sendto=fridge@wallet.commonshub.brussels?description=Drinks&amount=3.00
doesn’t follow the standard format. Normally, a single ? denotes the start of query parameters, and each parameter should be separated by an &.
Due to this, the app’s URL parser is unable to extract the amount value correctly. I’ll modify the parser to expect a format like this:
<EMAIL_ADDRESS>&description=Drinks &amount=3.00
This way, it will correctly parse sendto, description, and amount.

doesn’t follow the standard format. Normally, a single ? denotes the start of query parameters, and each parameter should be separated by an &.

You are absolutely right, sorry it was a typo!

@xdamman i have a question about this
Does the fridge username actually belong to the wallet.pay.brussels community?
How the URL is created implies the fridge username belongs to the wallet.commonshub.brussels community. But within wallet.commonshub.brussels the fridge username does not exist.

Yes, usernames are scoped to communities.

The preference of the account address to

Yes, usernames are scoped to communities.

I edited the QR code above to match

Just tested the latest version 1.0.66 (214).
It works but it automatically takes the first account instead of giving me the choice if I have more than one.

(it should only give me the choice to pick the account in the case when it has to switch community)


switch to c++14

replaced optional with pair
used experimental::filesystem for path operations
added a StringData function which does what c++17 str.data() does

Unfortunately I don't know how to fix this. Guess we can close.


add array bracket notation support

this works now:
const obj = { a: [ { b: 'cool' } ]};
const val = dotProp.get(obj, 'a[0].b'); // val === 'cool'

Also see https://github.com/sindresorhus/dot-prop/issues/71

This will need docs and more tests.

Also see #71

Yeah, I saw that when looking through back issues to see if this was brought up anywhere. The title of 71 matches what this PR does, but the content of the issue seems somewhat unrelated (claims to backwards incompatibility breaks and other stuff)

This will need docs and more tests (for each method).

I didn't do that in the initial PR because all of the public methods (get, set, has) use the same underlying  getPathSegments to resolve the path, so they seemed redundant. That said I'm happy to add them if you really feel those tests aren't redundant.  Can you give me a sense of how the depth of testing you want for each public method?

I have significantly underestimated the complexity of making this change. :(


docs: various updates all over

Codecov Report

Merging #1721 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #1721   +/-   ##
=======================================
  Coverage   56.82%   56.82%
=======================================
  Files         148      148
  Lines       27609    27609
=======================================
  Hits        15689    15689
  Misses      11126    11126
  Partials      794      794

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 6c70a1c...3684f32. Read the comment docs.


Not showing output after running

What happened?

Steps to reproduce problem

Additional info
Browser
Browser:
Version:
Are you using any extensions/plugins that affect website behavior
(particularly those that affect iframes, such as ad blockers)?
Are there any warnings or errors in your browser's JavaScript console?
If so, paste them below:
[paste warnings or errors here]

Machine
Operating system:
Version:
Your code
What code was in the editor, if any, when the failure occurred? You
can paste it in below:
// Paste code here.

DartPad's output
Did DartPad print anything to the console pane? If so, paste it below:
[paste console output here]

If you were running Flutter code, you can also paste an image of the
Flutter output directly into this bug report.

@jashwanthbunny007, it looks like you didn't fill out any of the information requested by our issue template. We need that information to correctly diagnose the problem and fix it.
Can you reproduce the issue locally again, and fill out the fields above relating to browser, OS, error messages, and so on?


refactor(projects): use json fetcher to list and get project

Current dependencies on/for this PR:

main

PR #70

PR #71   👈

This comment was auto-generated by Graphite.


helloworld sample update

Please provide a description of this PR:

update helloworld to use gunicorn

gunicorn is standard practice for deploying flask apps

bind TCP6 by default but offer a fallback option if necessary

at this stage most any systems in use will probably handle translation of IPv4 to applications which are listening IPv6 in Kubernetes but I included instructions in the Dockerfile to fall back to IPv4 explicitly
went ahead an moved the app itself to listening on localhost (IPv4) since gunicorn is handling IPv6 traffic coming from outside the container. This is to simplify overriding runtime config to use (only) IPv4 if for some reason it's required.

introduce a dual stack manifest for helloworld on k8s

@ilrudie: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

lint_istio
577dae3e547270c5640ffc254908239391ca4434
link
true
/test lint

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

@ilrudie: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

lint_istio
3f3a50820b51344c89c699da044b943402fbee82
link
true
/test lint

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

Have you tried building the new images, per the README, and verify that they pass the Tests section?

I ran through the full README.md for helloworld using 1 of my new images and 1 of the existing images. They behaved the same way during the test on a KinD cluster with metallb and a metrics server so HPA functions.

Thanks for testing.

I pushed the update

Thank you!
On Tue, Jun 20, 2023 at 6:47 PM John Howard @.***>
wrote:

I pushed the update
—
Reply to this email directly, view it on GitHub
https://github.com/istio/istio/pull/45355#issuecomment-1599677110, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAKB6KYEBL74UG2LIB5DZJDXMISAPANCNFSM6AAAAAAY7J5JHM
.
You are receiving this because you were mentioned.Message ID:
@.***>


Any idea what happened to the elasticsearch package?

I was trying to install this package and got the error
Failed to download elasticsearch/elasticsearch from dist: The "https://api.github.com/repos/elastic/elasticsearch-php/zipball/2d302233f2bb0926812d82823bb820d405e130fc" file could not be downloaded (HTTP/2 404 ):
 {"message":"Not Found","documentation_url":"https://docs.github.com/rest/repos/contents#download-a-repository-archive-zip","status":"404"}
  Now trying to download from source

I had a look and https://packagist.org/packages/elasticsearch/elasticsearch mentions that it's gone.
I know this is not technically an issue of this package, but it is causing installing this package to fail installation. I'm just wondering if there's any idea as to what has happened since that seems to be the official elasticsearch php package.

the same happend with me!!


chore(dsl)!: remove toYaml()

Part of #1208.
There's going to be a single way of writing the YAML to file. In practice, it turned out that toYaml() is used very sparingly.

#1435  👈
main

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

Join @krzema12 and the rest of your teammates on  Graphite

Merge activity

May 9, 3:54 AM EDT: @krzema12 started a stack merge that includes this pull request via Graphite.


TypeError on fresh loading Source Academy

story-xml-player.js:23 Uncaught (in promise) TypeError: Cannot read property 'append' of null
    at Object.init (story-xml-player.js:23)
    at startGame (create-initializer.js:20)
    at initialize (create-initializer.js:66)
    at game.js:1
    at Game.<anonymous> (index.tsx:44)
    at Generator.next (<anonymous>)
    at fulfilled (NavigationBar.tsx:70)

This is annoying to see every time we fresh load Source Academy.

@chrisjwelly can you take a look at this?

Handled by https://github.com/source-academy/cadet-frontend/pull/667
and beyond SWS3012 by the Engagement team.


Agent/skypilot

Tracking issue
https://github.com/flyteorg/flyte/issues/3936
Why are the changes needed?
Skypilot agent

What changes were proposed in this pull request?
Please refer to the diagram

How was this patch tested?

Setup process
sky_test.py
from flytekit import task, workflow, Secret
from flytekitplugins.skypilot import SkyPilot, SkyPilotFunctionTask
# import sky
from flytekit.configuration import Config, SecretsConfig, SerializationSettings
import flytekit
import textwrap

IMTERNAL_IMAGE = "flytesky/plugins:skypilot"  # "cr.flyte.org/flyteorg/flytekit:py3.10-latest"

@task(
    task_config=SkyPilot(
        cluster_name="t2",
        # prompt_cloud=True,
        resource_config={
            "instance_type": "e2-small",
            "use_spot": True,
        },
        container_run_type=0,
        job_launch_type=0,
        setup=textwrap.dedent(
                """\
                    python -m pip install -e /flytekit
                    pip install numpy==1.26.4
                """
        )
    ),
    container_image=IMTERNAL_IMAGE,
)
def t3(a: int) -> int:
    return (a + 3)

@workflow
def wf(a: int = 3):
    r = t3(a=a)
    r2 = t3(a=r)
    return r2

if __name__ == "__main__":
    wf()

To test it locally or in sandbox environment, users need to run python sky_server.py
pyflyte --verbose run  --remote  sky_test.py  wf --a "3"
Screenshots
Check all the applicable boxes

[ ] I updated the documentation accordingly.
[ ] All new and existing tests passed.
[ ] All commits are signed-off.

Related PRs

Docs link

encountered StopIteration bug when using remote s3, still investigating

IMTERNAL_IMAGE = "flytesky/plugins:skypilot"
@task(
    task_config=SkyPilot(
        cluster_name="t2",
        # prompt_cloud=True,
        resource_config={
            "instance_type": "e2-small",
            "use_spot": True,
        },
        container_run_type=1,
        job_launch_type=1,
        # stop_after=3
    ),
    container_image=IMTERNAL_IMAGE,
)
def t3(a: int) -> str:
    return str(a + 3)

@task(
    task_config=SkyPilot(
        cluster_name="t4",
        resource_config={
            "ordered": [
                {
                    "cloud": "gcp",
                    "accelerators": "T4:1",
                    "instance_type": "n1-standard-2"
                },
                {
                    "cloud": "gcp",
                    "accelerators": "P4:1"
                }
            ]
        },

        container_run_type=0,
        setup="python -m pip install torch",
    ),
    container_image=IMTERNAL_IMAGE
)
def cuda_task() -> str:
    import torch
    return f"cuda on: {torch.cuda.is_available()}"

@workflow
def ml_wf():
    res = cuda_task()
    print(res)

container_run_type:
- 0: use image as vm image or pull in vm
- 1: use docker run
 Currently `1` is more recommended as skypilot alters your original image.
job_launch_type:
- 0: launch a cluster
- 1: launch a controller cluster to manage your job

Does this work?

Does this work?

Hi, it works when we run in sandbox or locally. Otherwise,  we might need to add a new deployment and pvc in flyteagent to deploy the fastapi server


fix homepage documentation regression

Summary
This fixes #3466. I was wanting to learn more about Jest this morning and saw that the descriptions of the two sections were the same. I assumed they shouldn't be and found the former version of the description.

Test plan
N/A, just a string change.

Codecov Report

Merging #3467 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff           @@
##           master   #3467   +/-   ##
======================================
  Coverage    64.1%   64.1%
======================================
  Files         179     179
  Lines        6647    6647
  Branches        5       5
======================================
  Hits         4261    4261
  Misses       2384    2384
  Partials        2       2

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 993e64a...b882f56. Read the comment docs.

Thank you!


API Lifecycle Weekly - January 13th, 2022

This is a weekly public meeting to discuss the different areas of the API lifecycle and governance, push forward discussions around how the API lifecycle applies to OpenAPI and AsyncAPI, and work on extensions, platform ops collections, tooling, and blueprints that will help the community be more successful.
Agenda:

Templates (Workspace) - Explore more templates that we can develop, how we can turn templates, standards, and common practices into more of a production.
State of the API (Report)- Discuss how we can make the State of the API report more hands-on, with regular storytelling and discussions around the findings.
Platform Ops (Specifications, Design, Mocking, Documentation, Environments, Testing, Security, Monitoring, Discovery, Workspaces, Client, Source Control, CI/CD, Gateway, APM, Orchestration, Observability, Governance, Analytics, Teams,Change, Automation)

PlatformOps  - Defining what it means, and how we are using reference, capability, and workflow collections.

Governance (Workspace) - Move forward with storytelling around linting rules.

api.linting.org - Updated to use subdomain for API.
rules - Updated all rules to use API.
Platform Governance - Defining the message around governance.

Please add any agenda items you’d like to discuss below, and we will meet weekly, and push forward projects, stories, collections, and tools to support our work.
Meeting:

January 13th, 2022 - 9:30 AM PST
Zoom

Could you share the link to the recording?

Here you go @meenakshi-dhanani , the recording of the video - https://www.youtube.com/watch?v=hTJgiJTVgBg


Update Games List.json

Added: Dante's Inferno, CoD MW2

@KastroMugnaio Edited the icons as they weren't in 1024x1024 resolution


ACCT_IndividualAccounts does not change Account owner when contact owner changes

Hi,
We are trying to implement TDTM in our org and have found following problem.
Line:
if (c.OwnerId != oldContacts[i].OwnerId) { 						mapContactIdContactOwnerChange.put(c.Id, c); 					}
does not pick up the change.
c.OwnerId and OldContacts[i].OwnerId are the same at the time when trigger fires, they both have the value of the old OwnerId.
I tried following test method and it fails at the last assertion:
`@isTest
public static void changeOwner () {
	Profile p = [SELECT Id FROM Profile WHERE Name = 'Standard User'];
	User u1 = new User (Alias = 'standt1', Email =<EMAIL_ADDRESS>			EmailEncodingKey = 'UTF-8', LastName = 'Testing', LanguageLocaleKey = 'en_US',
			LocaleSidKey = 'en_US', ProfileId = p.Id,
			TimeZoneSidKey = 'America/Los_Angeles', UserName = 'test1@ahpra.gov.au');
	insert u1;

	Contact con = new Contact (
			FirstName = 'Test',
			LastName = 'Contact_forTests',
			Email =<EMAIL_ADDRESS>			OwnerId = UserInfo.getUserId()
	);
	insert con;

	con = [select AccountId, OwnerId from Contact where id = :con.Id];
	Account newAcc = [select id, OwnerId, Primary_Contact__c from Account where id = :con.AccountId limit 1];

	//change owner of the contact
	con.OwnerId = u1.id;
	Test.startTest();
	update con;
	Test.stopTest();

	con = [select AccountId, OwnerId from Contact where id = :con.Id];
	System.assert(u1.Id == con.OwnerId, 'Current user is not the owner of the contact');

	newAcc = [select id, OwnerId from Account where id = :con.AccountId limit 1];

	System.assertEquals(con.OwnerId, newAcc.OwnerId, 'Account\'s owner id should be the same as contact\'s');

}

`
Regards,
Kamil

@Kamilsz  - My recommendation is that you ensure the account has a record type. Here is a related Issue: https://github.com/SalesforceFoundation/HEDAP/issues/221
As a side note - Issues like this should be brought up in the Power of US Hub HEDA group and not in Github. Here is a PUB post that explains how Github should be used: https://powerofus.force.com/0D58000003LK7N3
Thank you! :)


Date Picker Issues with Carbon v5

Date Picker Range Issues with Carbon v5
Detailed description
If you load the data picker with pre configured data ranges and click and the date picker and click outside the values in the date picker shown in UI gets reset but actual values still remain intact.
Replicable even in https://angular.carbondesignsystem.com/?path=/story/components-date-picker--range
Also while loading and below console error is logged

We resolved this with PR https://github.com/carbon-design-system/carbon-components-angular/pull/2681. Please try updating to the latest version of carbon-components-angular. If you still see this issue, delete your node_modules and reinstall.

@abinovarghese Closing the issue, feel free to reopen or comment if you still run into this issue.


WiFi scan example

Just a simple example.

Thanks @UncleRus.
That functionality we have been missing in the examples. Will come in handy for new users.


[Storage] [DataMovement] Add BlobType option to BlobStorageResourceContainerOptions

This change adds a new option, BlobType, to BlobStorageResourceContainerOptions which allows users to specify which type of blob they would like to upload when uploading to a container.
Resolves #32731

API change check
API changes are not detected in this pull request.

/azp run net - storage - tests

If the live test Mac pipeline tests fail, that's kinda expected cause there's a known issue for that.


Update wasmparser on the 3.0.0 update branch

This is a PR to update the jake/wasmtime branch which updates Wasmtime to 3.0.0. I believe the main blocker on that PR was a failing multi memory test which was due to the wasmparser used by wizer being too old. This updates wasmparser across the "great module linking removal" which necessitated deleting a lot more code in wizer related to module linking. To the best of my knowledge that's in line with the original intention of https://github.com/bytecodealliance/wizer/pull/65 so I'm hoping it's ok.
I'll note that I applied a mostly hack-and-slash approach to deleting module-linking code. I'm not intimiately familiar with everything deleted here.

Also it seems prudent to further update various dependencies to their latest versions but for now I figure it's best to land the Wasmtime 3.0.0 update first and then try to go further from there.


https://docs.gradle.org/current/userguide/publishing_maven.html#publishing_maven:relocation

Issue type
Wrong or misleading information
Problem description
relocation docs use create instead of register
Context (optional)
No response
Page with the problem
https://docs.gradle.org/current/userguide/publishing_maven.html#publishing_maven:relocation

I don't know why they use create.    I assume that your question is why it should change. From what I can tell by the Java doc the register function is the lazy variant of create. I am of the opinion that the lazy variants should be recommended before the non lazy ones. Be lazy unless you have a reason not to be.

This issue needs a decision from the team responsible for that area. They have been informed. Response time may vary.

There seems to be an inconsistency w.r.t. create/register between task containers and other kinds of containers. For instance, registering a publication will cause publication tasks not to be registered.

I know they aren't effectively lazy... I've assumed that was just a detail. Are you saying using it actually breaks something?

Yes, depending on the container, using register vs create can cause configuration to be silently ignored unless the container or element is realized.  For a lot of dependency management containers, we end up realizing everything so it doesn't necessarily matter.

Is that actually the case here? I mean the artifact seems to be created in my case so I'm kind of making the assumption that it's created correctly.
It's definitely sounds like a reason why there shouldn't be two apis; regardless of whether an API is actually used under the hood eagerly or lazily. Of course lazy should be preferred generally speaking.

Yes, we have several places where we end up looking at the publication container in an eager way that makes create/register behave the same in the end.
The issues with two different APIs on the container is a cross-cutting issue and we're not likely to make any changes before 9.0 and that needs to be settled across all the different containers (not just the publications one).
Docs wise, I think it's worse to use register right now because it makes it seem like you should use register everywhere.


Double check last message

Check last message on fetch conversation list after unsending the last message

This might be needed to be fixed on server-side

closing this in favor of https://github.com/Criptext/Monkey-Socket/issues/3


Scroll so that text cursor remains visible

Closes https://github.com/emilk/egui/issues/165
This was very easy to implement thanks to https://github.com/emilk/egui/pull/1247

Good catch - fixed!


Perf-test get_used_symbols and its variants

There are numerous variants of get_used_symbols(). We need to perf-test them and keep only the most performant one. The remaining variants should be removed.

The performance of different implementations of the method get_used_states (implemented by @kilohsakul) was tested on real-world and random automata. Interestingly, the performance improves with repeated calls to the method (to get the average performance). Sometimes it even changes which implementation is the fastest. Therefore we measured the average performance and the performance of the first call.
Tested implementations:

vec - using get_used_symbols_vec() with std::vector
set - using get_used_symbols_set() with std::set
sps - get_used_symbols_sps() with utils::SparseSet
bv1 - get_used_symbols_bv() with utils::BitVector and without preallocation of the returned vector
bv2 - get_used_symbols_bv() with utils::BitVector and with preallocation of the returned vector
chv - get_used_symbols_ch() with BoolVector that is inherited from std::vector<uint8_t>

Tested automata:

Random Tree Automata
Automata for Regualr Expression .*{n}
Tabakov-Vardi Random Automata
ARMC Automata
Netbench Symbolic Automata
Automata for Email Validation
Automat for Regular Expressions

_STATIC_DATA_STRUCTURES_
Static data structures drastically improve the performance of the sparse set. However, we present only the results of benchmarks without the static data structure, as the sparse set is not our preferred choice for the get_used_states implementation.
Cactus Plot With and Without _STATIC_DATA_STRUCTURES_

Overall
The vector implementation (vec) we currently use seems to be the slowest variant. The bitvector (bv1, bv2) and  BoolVector (chv) implementations appear to be the best. It is necessary to confirm this by running experiments with Z3-Noodler.
Results
Random Tree Automata
Automata were generated with 20 branches, each containing $|\Sigma|$ symbols with p symbols per transition. The depth of each branch was determined as $d \sim |\Sigma| / p$.
Runtime
Runtime based on the alphabet size $|\Sigma|$ and the number of symbols per transition $p$.

Cactus Plot

Scatter Plot Matrix

Automata for Regular Expression .*{n}
Automata were generated for different n and the size of the alphabet $|\Sigma|$.
Runtime
Runtime based on the alphabet size $|\Sigma|$ and the number of self-loops.

Cactus Plot

Scatter Plot Matrix

Tabakov-Vardi Random Automata
Automata were generated using the function crrate_random_nfa_tabakov_vardi() with different numbers of states, alphabet size $|\Sigma|$, and transition density.
Runtime
Runtime based on the alphabet size $|\Sigma|$, transition density, and the number of states.

Cactus Plot

Scatter Plot Matrix

ARMC Automata
Cactus Plot

Scatter Plot Matrix

Netbench Symbolic Automata
Cactus Plot

Scatter Plot Matrix

Automata for Email Validation
Cactus Plot

Scatter Plot Matrix

Automat for Regular Expressions
Cactus Plot

Here, the **vec** variant was the best on average but not so good regarding the single run.
Scatter Plot Matrix


LIN-479 Add option for get_code to write to a notebook cell.

Description
Adds a new configuration option, new_cell: bool, to lineapy.get_code that writes code to a new notebook cell.
Type of change

[X] New feature (non-breaking change which adds functionality)
[X] This change requires a documentation update(?)

How Has This Been Tested?
notebooks tested

[X] jupyter ipython
[X] VSCode ipython
[X] kaggle
[ ] colab (doesn't appear to work)

I think this may fail in colab for security reasons... I can get the nb instance and the write_payload function exists on it, but writing to it has no effect.

pages work in colab, but they don't work in vscode notebooks

Can we convert this to a draft PR? This is a pretty important UX change, so let's take some time to think through the UX implications. Also, please add some tests.


Split core obographs/bioontology package into its own top level package

In the top level we have (in order of dependency)

biolink - the flaskrest code
obographs - general purpose ontology library
biogolr - wrapper for golr
prefixcommons - curie util

The last 3 can be combined into a general purpose python library for working with ontologies and ontology associations.

The bulk of the code that will form its own repo is here:
https://github.com/biolink/biolink-api/tree/master/obographs
It already has its own README.md, setup.py etc.
obographs is not an ideal name any longer, it started as a wrapper for the obographs json format, but is now more of a general purpose ontology / associations library, with bindings to SPARQL, etc. We'll change this to something else, perhaps ontobio (a bit generic, but there isn't something named like that on pypi)

These are now on pypi and are separate dependencies:

https://github.com/biolink/ontobio
https://github.com/prefixcommons/prefixcommons-py


Settings Not Applied Through WSServer

I'm using ACT with Cactbot and using the Browsingway plugin to display WSServer output in-game while in fullscreen mode. It seems that none of the changes that I make to Cactbot settings affect the version that's running with WSServer?
The real issue is that I would like to disable all sounds from the jobs module. I was able to get rid of the TTS by simply muting ACT but the job module still plays a loud system beep on procs and I can't find a way to disable it. I believe this is disabled through this setting:

but WSServer seems to be ignore it.
Ideally, I would like to completely disable everything other than raid timelines and alerts but I'm not sure if this is possible?

Sorry for the extremely belated comment here.  There should be no differences here.  There is only one set of cactbot settings, and it applies to all cactbot overlays connected to the same ACT instance.
I would recommend loading the url in a browser (vs browsingway) and looking at devtools and seeing if there are any console messages or suspicious errors.  That might be a good first step here.


[DOC] Instructions #6 need more explanation about event hub ENTITIES and partition count

Not sure what's these two info for. Is it an description of existing event hub or an instruction that elk will execute?

@yaweiw


feat(middleware): enable middleware on http method

Hi @metrue
I want to know your use cases for this PR.
In some cases, it's good that we can write app.use('GET', '*', ...). But I think this feature is not necessary in most cases. For example, the CORS middleware must handle some methods like OPTIONS for preflight. Not only one method. So, I should not specify the method byapp.use. These are just my thought.

Hi @yusukebe
I think there're middlewares only work for a specific HTTP method on same resource (PATH),  take a /posts of blog application API as an example,
POST    /posts    ---> create a blog post
GET      /posts    --->  fetch the blog posts

We may enable a authorization middleware for POST /posts, but open access for GET /posts, or we may enable a bodyParse middleware for POST /posts to construct the post payload, but disable it for GET /posts.

I marked this PR as a draft is because it's not elegant not for the codes but for the Hono interface for user,  and that's why I made another proposal

OK! Let's discuss it in the #189


Using SignalR with Finbuckle Multitenant library

I am trying to use SignalR in a ASP.NET Core 2.2.7 application that uses the Finbuckle Mutlitenant library.
Finbuckle allows me to specify a Route template with a tenant placeholder like
routes.MapRoute("default", "{__tenant__}/{controller=Home}/{action=Index}/{id?}");
I tried the following
configure.MapHub<ComplianceHub>("/{__tenant__}/complianceHub");
But this does not work, as it would appear the MapHub url needs to be a static URL for the Javascript client to connect to.
Would it be possible to apply a template to the MapHub url?
Or would it be best to move my SignalR implementation to a standalone microservice that gets called by the Javascript client with the required tenant data?

Ok I have got it working now by using a separate micro service, but if there is any information about using a route template for the hub URL i would be very interested.


feat(schematic): modified docker image when running schematic APIs with uWSGI

Related to: https://sagebionetworks.jira.com/browse/FDS-1346
Context
The goal of this PR is to make sure schematic can work well with uWSGI.
Even though a lot of content in this docker image would need to get changed when adding nginx, I still want to make a PR to make sure that we have schematic+uwsgi working if there's anything wrong with nginx and we want to trouble shoot by isolating uswgi and nginx.
Changelog

Thomas already have uswgi working with schematic APIs. To make sure that all the endpoints work properly, I modified permission of some folders. I previously did it like this PR: https://github.com/Sage-Bionetworks/schematic/pull/1142/files#diff-d04806eafd231d6405de22d8c29951c269796bcea02a3fc8116c48f33e96ac6d but I think the way that i have now is clearer.
I updated the uswgi.ini so that it looks like our current set up in schematic.

Test
Get into the right dir
cd apps/schematic/api

Build a docker image:
docker build -t schematic_api .

Run docker container:
docker run -p 7080:7080 schematic_api

Should then be able to visit http://localhost:7080/api/v1/ui/#/
I tested all the endpoints and make sure that they could return expected output.

Since Nginx has gotten added. This PR is no longer needed.


proxy.golang.org: github.com/go-redis/redis 6.15.4

What version of Go are you using (go version)?

$ go version

go version go1.13rc2 linux/amd64

Does this issue reproduce with the latest release?
Yes, I'm using the latest RC
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/pierre/.cache/go-build"
GOENV="/home/pierre/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/pierre/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/home/pierre/.gimme/versions/go1.13rc2.src"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/home/pierre/.gimme/versions/go1.13rc2.src/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build984822954=/tmp/go-build -gno-record-gcc-switches"

What did you do?
I've noticed that it is impossible for me to get github.com/go-redis/redis 6.15.4.
It prints the error message:
verifying<EMAIL_ADDRESS><EMAIL_ADDRESS>reading<EMAIL_ADDRESS>410 Gone

I don't have any issue with version 6.15.3
<EMAIL_ADDRESS>is working fine
<EMAIL_ADDRESS>is returning an error
Of course, I know that this package is "incompatible" (it seems to be fixed in v7, but it's still in beta).
Do you have any idea why this version is not working ?
I don't see a lot of difference between these versions.
https://github.com/go-redis/redis/compare/v6.15.3...v6.15.4
Could it be caused by the change in go.mod ? (they added go 1.13)
Thank you.

There's a couple things going on here, I think. First is the new validation added in 1.13, described in the "version validation" section of https://tip.golang.org/doc/go1.13. That would normally reject both v6.15.3+incompatible and .4+incompatible. However, you probably upgraded from 1.12 and already had both versions in your module cache. That bypasses the validation, which only takes place on fetch.
Second is that sum.golang.org was running 1.12 for quite a while, which allowed these bad versions to be recorded permanently in the log. They were purged from proxy.golang.org, so you'll see that both<EMAIL_ADDRESS>and<EMAIL_ADDRESS>return the same error as the failing sum.golang.org URL. However, it was not feasible to purge them from sum.golang.org, so the (invalid) cached version will live forever there.
Long and short of it is, these go-redis versions are not usable in module mode in 1.13 without some replace hackery, and you'll get much clearer error messages if you clear your module cache. Hope that clears things up, and sorry for the trouble.

And 6.15.2 is working, because it doesn't have a go.mod file !
I understand now. Thank you for your explanation. :+1:
I will open an issue to go-redis, and mention this current issue.
(Originally, I thought it was an issue with the proxy)


Block annotations zod stripping fields

I am validating a sanity webhook response. I have an annotation that is an internalLink to some other content.
I have the groq query setup to resolve some data on the referenced document, but those resolutions are getting stripped when zod validates.
Is there a setting I need to set somewhere in my schema or on the @sanity-typed zod parser to allow those fields to come through?

No.
The zod parsers only validate against documents and (unfortunately) nothing more or less. Any resolving against other documents (or any groq operations besides returning full documents) won't work against these generated zods.
I had thought of a creating generated zods for groq queries but... its a lot https://github.com/saiichihashimoto/sanity-typed/issues/306

Are you saying that you don't see internalLink after the zod at all? Or that your groq query resolves to the actual referenced document and you're not seeing that document after the zod?

In my snapshot tests, I parse an example webhook response that I would get, and with the zod updates, the internalLink field appears to have been stripped after it is validated.
I should probably make a repro

Before you do, just double check you're<EMAIL_ADDRESS>preferably on 2.0.1

Well, perhaps then this is a feature request. I feel like the utility of @sanity-typed/zod gets very limited if it won't let fields passthrough. I think it is good for it to validate the fields it does find, so it makes those type safe, but the nature of groq and sanity is that there are other untyped values floating around that a dev could validate themselves if they want to use them.
The example being this query:
 {
  ...,
  // resolve the first category
  "category": categories[0]->,
  // include the CRUD operation
  "operation": delta::operation(),
  // resolve referenced documents for proper routing
    body[]{
      ...,
      markDefs[]{
        ...,
        _type == "internalLink" => {
          "slug": @.internalLink->slug
        },
        "postType": @.internalLink->_type
    }
  }
}

I am able to append category and operation onto the zod schema and have it validated.
I am able to have a union of different schema's that I can discriminate by _type.
But I don't know how to crack open or to override how zod would treat markDefs? At the very least I want to keep those fields around, and I wouldn't mind putting together a zod schema to find them?
--- 1 hour later...
I added this to my schema... it was either this or an any 🤷
  .and(
    zod
      .object({
        body: zod
          .array(
            zod.object({
              markDefs: zod
                .array(
                  zod
                    .object({
                      _type: zod.string(),
                      _key: zod.string(),
                      href: zod.string().optional(),
                      reference: zod.string().optional(),
                      postType: zod.string().nullable().optional(),
                      slug: zod
                        .object({
                          _type: zod.literal("slug"),
                          current: zod.string(),
                        })
                        .optional(),
                    })
                    .optional()
                )
                .nullable(),
            })
          )
          .nullable(),
      })
      .nullable()
  )


Combining 2 dif. models using Merge layer, but I cant access all the layers.

I combined  the outputs of 2 different CNN_ networks , each has 2 different layers,  into a third model .I combined them using Merge layer (mode='concat')  , but I cant access all the layers.
here is en example of my code:
    modelA = Sequential(name = "A")
    modelA.add(Convolution2D(......))
    modelA.add(MaxPooling2D(....))
    modelAadd(Flatten())

   modeB = Sequential(name = "B")
   modelB.add(Convolution2D(.....))
   modelB.add(MaxPooling2D(----))
   modelB.add(Flatten())

   merged = Merge([modelA, modelB,], mode='concat')

    model = Sequential()
    model.add(merged)
    model.add(Dense(---))
    model.compile(----)

I need to freeze the layer of the first model.  and do fine tunning and transfer learning etc. I also need to visualize the feature maps of theses layers.
The code is fine, it works well. the only problem is that  I cant  access the the layers of modelA and modelB
Any suggestions.

Both
for l in modeB:
    l.trainable = False

or
for l in model.modeB:
    l.trainable = False

Doesnt work.

from keras.models import Sequential
from keras.layers import Merge, Dense
modelA = Sequential(name = "A")
modelA.add(Dense(10, input_shape=(50,)))
modelA.add(Dense(20))

modelB = Sequential(name = "B")
modelB.add(Dense(11, input_shape=(50,)))
modelB.add(Dense(21))

merged = Merge([modelA, modelB,], mode='concat')

model = Sequential()
model.add(merged)
model.add(Dense(22))

model.summary()

>>Total params: 2,467
>>Trainable params: 2,467
>>Non-trainable params: 0

modelA.layers[1].trainable = False

model.summary()

>>Total params: 2,467
>>Trainable params: 2,247
>>Non-trainable params: 220

Thank you! Much appreciated.