Make Authelia available on Kubernetes using ingress-nginx

It would be great to have Authelia in a Kube cluster in only few commands (only one?).
Plus, in combination with kube-lego, certificates renewal can be handled automatically by the cluster.
https://github.com/kubernetes/ingress-nginx

I made it work with branch called kube. There is a README in example/kubernetes directory. Please give your feedback if you follow the steps, it would be greatly appreciated.

So I’ve got Authelia working mostly fine under Nginx-ingress in Kubernetes without this.
The only thing not working are redirects after login. What did you have to change to get that to work?
I’d rather not replace the whole Nginx-ingress template, but use annotations for config if I can.

Hello @damomurf , this statement might be missing in the nginx template:
auth_request_set    $redirect $upstream_http_redirect;

I'm really interested in your configuration though. Which version of nginx-ingress do you use and what is an example of ingress configuration working with Authelia? Can you please share it?

If you want to see all the changes I've done for version 0.9.0-beta.19 of the nginx controller to make it work, you can diff -u the two files in example/kube/ingress-controller/configs. It gives this:
--- nginx.tmpl	2017-11-29 02:03:17.000000000 +0100
+++ configs/nginx.tmpl	2018-03-04 12:32:14.106051659 +0100
@@ -647,8 +647,10 @@
             proxy_set_header            X-Scheme                $pass_access_scheme;
             {{ end }}

-            proxy_set_header            Host                    {{ $location.ExternalAuth.Host }};
-            proxy_set_header            X-Original-URL          $scheme://$http_host$request_uri;
+            proxy_set_header            Host                    $http_host;
+            proxy_set_header            X-Original-URI          $request_uri;
+            proxy_set_header            X-Real-IP               $remote_addr;
+            proxy_set_header            X-Forwarded-Proto       $scheme;
             proxy_set_header            X-Original-Method       $request_method;
             proxy_set_header            X-Auth-Request-Redirect $request_uri;
             proxy_set_header            X-Sent-From             "nginx-ingress-controller";
@@ -705,6 +707,12 @@
             # this location requires authentication
             auth_request        {{ $authPath }};
             auth_request_set    $auth_cookie $upstream_http_set_cookie;
+            auth_request_set    $redirect $upstream_http_redirect;
+            auth_request_set    $user $upstream_http_remote_user;
+            proxy_set_header    X-Forwarded-User $user;
+            auth_request_set    $groups $upstream_http_remote_groups;
+            proxy_set_header    Remote-Groups $groups;
+
             add_header          Set-Cookie $auth_cookie;
             {{- range $idx, $line := buildAuthResponseHeaders $location }}
             {{ $line }}

@clems4ever The ingress configuration I use is as follows:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: authelia-ingress
  namespace: default
  annotations:
    kubernetes.io/tls-acme: "true"
    kubernetes.io/ingress.class: "nginx"
    ingress.kubernetes.io/ssl-redirect: "true"
spec:
  rules:
  - host: login.domain
    http:
      paths:
      - backend:
          serviceName: authelia-service
          servicePort: 80
        path: /
  tls:
  - hosts:
    - login.domain
    secretName: authelia-tls

Everything works fine, except after logging in with Authelia, no redirect is sent to the originally requested URL. If there's already a valid session, everything works as expected.
I'm using the following docker image:
quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.9.0-beta.19
I might try with server-snippet annotations in the ingress and see if I can get them to add the auth_request_set variables?

Oh, and an Ingress requiring Authelia for auth looks like:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: prometheus-ingress
  annotations:
    kubernetes.io/tls-acme: "true"
    ingress.kubernetes.io/ssl-redirect: "true"
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/auth-signin: https://login.domain
    nginx.ingress.kubernetes.io/auth-url: https://login.domain/api/verify
spec:
  tls:
  - secretName: prometheus-tls
    hosts:
    - prometheus.domain
  - secretName: alertmanager-tls
    hosts:
    - alertmanager.domain
  rules:
  - host: prometheus.domain
    http:
      paths:
      - path: /
        backend:
          serviceName: prometheus
          servicePort: 9090
  - host: alertmanager.domain
    http:
      paths:
      - path: /
        backend:
          serviceName: prometheus
          servicePort: 9093

@damomurf , you can indeed try to add this header with annotations if possible. It would be awesome if it works.
But there is another thing I don't think would work without modification: the forwarding of username and group to the backend app because I think there is now way to specify proxy_set_header statement using annotations.
Thank you for the configurations anyway and keep me posted if you find a solution for this redirect issue. Otherwise maybe I can change a bit Authelia to use any relevant header to do the redirection. I already had a look at the full generated nginx configuration and nothing was really usable to do the correct redirection.

@clems4ever I'm not entirely clear on why any headers are required to make the redirect functional? The originally requested url gets passed as a parameter to the auth-signin url via the "rd" request parameter (where you see Authelias signin prompt). I would have thought Authelia would be able to remember that and send back a redirect to that URL once authentication had completed?

Awesome, thanks @clems4ever. Let me know if I can help by testing it further if you need.

It's now in master! All details are in the README under example/kube and in the new wiki I've written.


Configure websocket defaults

Thanks for the request :-) i'll look at it tomorrow or this weekend.

+1 on this PR,  would be useful

After the merge, I have changed it so the interface is not required. If the interface is not there, the defaults are used. This is to not force people to implement an interface if they don't need anything else but the defaults.
Thank you for your contribution. It has been released in version 1.1.0 of the bundle.


Warning from SOCP example

I have the following warning message from the socp model:
┌ Warning: MathOptInterface.VariablePrimalStart() is not supported by MathOptInterface.Bridges.Constraint.SingleBridgeOptimizer{MathOptInterface.Bridges.Constraint.QuadtoSOCBridge{Float64},MathOptInterface.Utilities.Model{Float64}}. This information will be discarded.
└ @ MathOptInterface.Utilities ~/.julia/packages/MathOptInterface/RmalA/src/Utilities/copy.jl:140

It may or may not be critical.

My purpose of adding this bridge was so that QC-relaxed problems could be solved with, say, Mosek. But the bridge couldn't verify the QCs as convex (possible the functions defining them are quasiconvex). I'll remove the use of this bridge from the master branch at least, since it is not productive for supported usage, and for this reason, I'll close the issue.
As you say, it may or may not be critical. My guess is that the issue prevents the user from setting initial primal values. If I recall correctly, the bridges used by the Mosek.jl interface prevent such initialization also.


generic tags not working when using matomo?

Hi,
I have successfully setup a matomo tracking server and wanted to integrate tracking inside my django project.:
settings.py:
MATOMO_DOMAIN_PATH = 'matomo.mydomain.com'
MATOMO_SITE_ID = '1'

and added all necessary generic template tags in my base.html:
{% load analytical %}
<!DOCTYPE html>

{% load static %}
{% load tags %}

<html lang="en">
<head>
    {% analytical_head_top %}
        <!-- here -->
        <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"
          rel="stylesheet" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh"
          crossorigin="anonymous">
        <link rel="stylesheet" type="text/css" href="{% static 'style.css' %}">

   {% analytical_head_bottom %}
</head>
<body>
    {% analytical_body_top %}
    {% navbar %}

    {% block content %}{% endblock %}

    {% footer %}

    <!-- Bootstrap core JavaScript -->
    <script src="https://code.jquery.com/jquery-3.5.1.min.js"
            integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0="
            crossorigin="anonymous">
    </script>

    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"
            crossorigin="anonymous">
    </script>

   {% analytical_body_bottom $}
</body>

But the matomo tracking code does not render. However, when I use the matomo tags, it works:
{% load matomo %}
{% matomo %}

Since there is no error output of any kind, I am wondering what I missed?
regards,
Philipp

Well.....
{% analytical_body_bottom $}
was the problem. I am obviosuly blind. It now works as expected.


How i can run middleware after dispatching Action?

For example: i have over 20 Actions, which return HtmlResponse \ JsonResponse. And now i want log json output. How i can do this?
Edit\Update all Actions?
And remove return new JsonResponse($data);?

You can take advantage of "onion" style middleware in Expressive - solution to your problem can look like this:
public function __invoke(ServerRequestInterface $request, ResponseInterface $response, callable $next)
{
    $response = $next($request, $response);

    if ($response instanceof \Zend\Diactoros\Response\JsonResponse) {
        // ... log JSON here
    }

    return $response;
}

This middleware should be registered with high priority (so that it will be always executed.

thnx, work :)


Hard crash on iOS calling getSubscriptions() for subscription with trial / promotional offer

Please use Discussion board if you want get some help out of it. Please report issue if there is a bug.

Version of react-native-iap
8.0.10
Version of react-native
0.67.2
Platforms you faced the error (IOS or Android or both?)
IOS
Expected behavior
Call getSubscriptions() without crashing
Actual behavior
Calling getSubscriptions() crashes the app.
Tested environment (Emulator? Real Device?)
Both
Steps to reproduce the behavior
Call getSubscriptions() within an app that's live on the App Store, which has a subscription with a promotional offer for a trial of 1 week.
I call this:
await RNIap.getSubscriptions(["supporter"]);

Then the console in Xcode says "Add new object : supporter", and crash occurs.
Here's a crash log from device: https://pastebin.com/JvXBmzqz
Let me know if anything else can help.

Hello @bitfabrikken Looking at the logs. Seems like this is the line where it blows up: https://github.com/dooboolab/react-native-iap/blob/main/ios/RNIapIos.swift#L776 Could it be that the discount has a strange price Locale?

Doesn't look like it can be null or have a strange value: https://developer.apple.com/documentation/storekit/skproduct/3043534-discounts

This is my proposed solution: https://github.com/dooboolab/react-native-iap/pull/1720

Please come back if this happens in 8.1.0.

Reopened because this is reverted in 8.1.1.

We are also seeing this crash in v8.6.5
EXC_BREAKPOINT:

0  libswiftFoundation.dylib static Locale._unconditionallyBridgeFromObjectiveC(_:)
1  App          specialized RNIapIos.getDiscountData(_:) (RNIapIos.swift:795:37)
2  App          RNIapIos.getDiscountData(_:) (<compiler-generated>)
3  App          RNIapIos.getProductObject(_:) (<compiler-generated>)
4  App          thunk for @callee_guaranteed () -> () (<compiler-generated>)
5  App          thunk for @escaping @callee_guaranteed () -> () (<compiler-generated>)
6  libdispatch.dylib        __dispatch_client_callout
7  libdispatch.dylib        __dispatch_lane_barrier_sync_invoke_and_complete
8  App          RNIapIos.productsRequest(_:didReceive:) (RNIapIos.swift:445:15)
9  App          @objc RNIapIos.productsRequest(_:didReceive:) (<compiler-generated>)
10 StoreKit                 ___34-[SKProductsRequest _handleReply:]_block_invoke
11 libdispatch.dylib        __dispatch_call_block_and_release
12 libdispatch.dylib        __dispatch_client_callout
13 libdispatch.dylib        __dispatch_main_queue_callback_4CF$VARIANT$mp
14 CoreFoundation           ___CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__
15 CoreFoundation           ___CFRunLoopRun
16 CoreFoundation           _CFRunLoopRunSpecific
17 GraphicsServices         _GSEventRunModal
18 UIKitCore                _UIApplicationMain
19 App          main (main.m:7:12)

For visibility, the fix was reverted in PR https://github.com/dooboolab/react-native-iap/pull/1724

New attempt to fix this: https://github.com/dooboolab/react-native-iap/pull/1846

Unfortunately we haven't been able to deploy and verify this fix, as we've detected another crash after updating to 8.6.7 reported by @phillip-kic on https://github.com/dooboolab/react-native-iap/issues/1696

I'll close this as completed. I'll take a look at the other issue


npm install -D serve-static

gh-pages branch is missing serve-static

Hmmm... express is grabbing that for me when I run npm install.
├─┬<EMAIL_ADDRESS>│ ├─┬<EMAIL_ADDRESS>│ │ ├─┬<EMAIL_ADDRESS>│ │ │ └──<EMAIL_ADDRESS>│ │ └──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├─┬<EMAIL_ADDRESS>│ │ └──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├─┬<EMAIL_ADDRESS>│ │ └──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├─┬<EMAIL_ADDRESS>│ │ ├──<EMAIL_ADDRESS>│ │ └──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ ├─┬<EMAIL_ADDRESS>│ │ ├──<EMAIL_ADDRESS>│ │ ├──<EMAIL_ADDRESS>│ │ └──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS><------------------- THERE
│ ├─┬<EMAIL_ADDRESS>│ │ └──<EMAIL_ADDRESS>│ ├──<EMAIL_ADDRESS>│ └──<EMAIL_ADDRESS>
What version of express is getting installed for you?

Yea, same express version as you. Issue comes up with node run dev since the webpack-dev-server is requiring serve-static on line 4.
btw I'm on node v0.12.7 and npm 2.11.3 on this machine.

I'm on node 4.1.1 and npm 3.3.6.

That explains it, I wonder if the engines directive could somehow help point out dependencies? I haven't used it much myself.

I'm gonna close this, since it's not really a problem for this library, and someone using an older version of node or npm can probably figure out what they need to do to fix it.

I apologize. This is a silly thing to take a stand over. I'll add it. No harm in doing so.


feat(client/BpmnEditor): allow passing linting configurations via plugin

This allows parsing linting configuration to the Camunda Modeler.
Reference: https://github.com/bpmn-io/bpmn-js-bpmnlint#usage
Related by https://github.com/bpmn-io/camunda-modeler-linter-plugin/pull/5

@pinussilvestrus Let's have a quick chat regarding this tomorrow.
I'll meet you in our favorite chat tool.

:+1: I'll create an appointment for this.

Let's not merge this as is but consider a way how to create a generic extension point for the BPMN editor (and the others).
The idea would be that a plugin is simply a function of (options) => newOptions.
SKETCH:
// BpmnEditor.js

    const linterExtension = function(options) {

      return {
        ...options,
        linter: {

        }
      };
    };

    const additionalModulesExtension = function(options) {

      const additionalModules = options.additionalModules || [];

      return {
        ...options,
        additionalModules: [
          ...additionalModules,
          getPlugins('bpmn.modeler.additionalModules') || []
        ]
      };
    };

    const middlewares = [
      linterExtension,
      additionalModulesExtension

      // ...
    ];

    const modeler = new CamundaBpmnModeler(loadConfiguration(middlewares, {
      exporter: {
        name,
        version
      },
      moddleExtensions,
      position: 'absolute'
    }));

Closing in favor of https://github.com/camunda/camunda-modeler/pull/1434.


CitySelect filter refactoring

CitySelect filter не использует список, сортировка в БД

Codecov Report

Merging #208 (86666c4) into develop (04b4d2b) will increase coverage by 0.04%.
The diff coverage is 0.00%.

@@             Coverage Diff             @@
##           develop     #208      +/-   ##
===========================================
+ Coverage    86.15%   86.19%   +0.04%
===========================================
  Files          115      115
  Lines         3690     3688       -2
===========================================
  Hits          3179     3179
+ Misses         511      509       -2

Impacted Files
Coverage Δ

bbbs/afisha/filters.py
60.00% <0.00%> (+5.45%)
:arrow_up:

bbbs/afisha/models.py
92.10% <0.00%> (ø)

Continue to review full report at Codecov.

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


[Internal] Client Telemetry Public API Proposal

Background
As per latest discussion, to get align with Java API and avoid confusion with feature name. We decided to use "Client Telemetry" as a parent feature under which there will be 2 kind of telemetry covered as of now:
1. Send Client Diagnostic Metrics To Service : Sending telemetry metrics to Microsoft.

Read more about it here: https://github.com/Azure/azure-cosmos-dotnet-v3/blob/master/docs/observability.md#send-telemetry-from-sdk-to-service-private-preview

2. Distributed Tracing: Sending Activities with operation level or network level information to customer's APM tool like AppInsights (May be in future metrics will also be covered).

Read more about it here: https://github.com/Azure/azure-cosmos-dotnet-v3/blob/master/docs/observability.md#distributed-tracing-preview

We are fine if Java API and .Net API doesn't look exactly similar. Here idea is to make sure, it should not confuse customer.
Java Public API looks like this:
CosmosClientBuilder

CosmosClientTelemetryConfig

CosmosDiagnosticsThresholds

Proposed Public API in .Net SDK to control above features:
By default, both of the above features will be enabled in SDK.
Why?
1. Send Client Diagnostic Metrics To Service: It is controlled by portal hence enabling it in SDK, by default, will give seamless experience to the customer where they can just enable it from portal and we can see data flowing to us without any code change. There won't be any perf impact/overhead on sdk, if it is disabled on portal and enabled on SDK as Portal setting has higher priority.
2. Distributed Tracing: It works on subscription model, until unless there is no subscriber, it won't generate any activity. Hence no overhead. This feature flag is introduced to support appinsight SDK as customer cannot de-subscribe any activity source there.

Want to see distributed tracing in action?
OpenTelemetry Way:
https://github.com/Azure/azure-cosmos-dotnet-v3/tree/master/Microsoft.Azure.Cosmos.Samples/Usage/OpenTelemetry
AppInsight SDK Way:
https://github.com/Azure/azure-cosmos-dotnet-v3/tree/master/Microsoft.Azure.Cosmos.Samples/Usage/ApplicationInsights

In both the cases, there is a scenario where customer would want to disable individual telemetry from SDK.
Public APIs
CosmosClientBuilder

Class Name
Method Name
Return Type
Comment

CosmosClientBuilder
ClientTelemetryConfig(CosmosClientTelemetryConfig telemetryConfig)
Returns the client telemetry config instance for this builder
Single function to control/configure any kind of telemetry

CosmosClientTelemetryConfig

Class Name
Method Name
Return Type
Comment

CosmosClientTelemetryConfig
DisableSendingMetricsToService()
void
Disable sending telemetry data to the service i.e. Microsoft

CosmosClientTelemetryConfig
DisableDistributedTracing()
void
Disable Distributed Tracing feature, it means it will stop generating activities even if there are subscribers

CosmosClientTelemetryConfig
CosmosDiagnosticsThreshold(CosmosDiagnosticsThreshold options)
void
Options to configure threshold for distributed tracing (Later we can use this same config for opentelemetry metrics, similar to Java)

CosmosDiagnosticsThresholds

Class Name
Method Name
Return Type
Comment

CosmosDiagnosticsThresholds
NonPointOperationLatencyThresholdForDiagnosticEvent(TimeSpan span)
void
Set when LatencyOverThrehold event should be created for non-point operations

CosmosDiagnosticsThresholds
PointOperationLatencyThresholdForDiagnosticEvent(TimeSpan span)
void
Set when LatencyOverThrehold event should be created for point operations

I recommend DisableSendingMetricsToService() instead of DisableClientTelemetryToService() to avoid overloading "Client Telemetry". This also aligns better with the proposed feature name of "Send Client Diagnostic Metrics To Service"

Please check whether you really want to go down the road of putting the latency thresholds behind a class named explicity for tracing only
In Java DiagnosticThresholds have more meaning than for tracing - and I think it has proven to be very useful

used even to decide whether to emit Request-Level metrics - metrics can have dimensions based on replicaId - allowing to also restrict when to emit these metrics allows to avoid overloading the metric system with metrics having way too high cardinality on dimensions
used for distributed tracing
and used for logging (probably not relevant for .Net)

So, main ask is to check whether you forsee any ask to also use the same thresholds for metrics - and of course whether .Net needs mroe grnularity on thresholds than just latency (java allows customizing whether to consider a threshold violation based on StatusCode+SubStatusCode), RU-usage, payload size and latency

Eventually, Is distinction between metrics and push to client telemetry endpoint required?
If so do API needs to reflect that?

PointOperation: Very unintutive, how is it done for JAVA?

In Java API metrics means Open telemetry Metrics.
Thresholds are applicable only for the data which we are sending to customer

PointOperation: Very unintutive, how is it done for JAVA?

there it has similar name. Please refer above Java API screenshots in the description.

CosmosDiagnosticsThreshold: Is it applicable to all diagnostics or only for DistributedTracing?

Sounds like right now these thresholds will only apply to DistributedTracing, but eventually they may also apply to other metrics/ telemetry.
+1 on adding a threshold for RU charge and payload size.
How would a status code threshold work? We already filter out sending diagnostics for any successful request in Distributed Tracing, so would this be if they want further control over non-success scenarios or is the suggestion to give the user full control and we don't do any filtering by default?

@kirankumarkolli  These threshold configurations are applicable for events generated with diagnostics string as part of Distributed Tracing feature.
@jcocchi  regarding, adding a threshold for RU charge and payload size. Right now, we don't have any requirement or ask for .Net SDK. We need to discuss if we want to implement it. cc @kirankumarkolli
Regarding status code threshold, are you talking about SetFailureHandler function? From description, it sounds like that only, customer can filter the events by statuscode and substatuscode. @FabianMeiswinkel  can confirm it.

@kirankumarkolli  @jcocchi @FabianMeiswinkel are we closing on above proposal?

LGTM

Offline discussion

Looks like all the proposed changes are reflected in the above design now. Are we good to close on this?

With last discussion with Compute Team, they want us to disable this feature by default in SDK Private preview. So that Client Config API call can be limited to compute gateway. Hence changing DisableSendingMetricsToService() API to SendingMetricsToService(bool enabled)
cc @kirankumarkolli @jcocchi

If we change this to EnableSendingMetricsToService now, will it be confusing for customers if we switch back to DisableSendingMetricsToService for GA?


offpunk: 1.9.2 -> 1.10

Description of changes
https://git.sr.ht/~lioploum/offpunk/refs/v1.10
Things done

Built on platform(s)

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

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

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

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

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

[x] Fits CONTRIBUTING.md.

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

2 packages built:

offpunk
offpunk.dist

Thank you for your review. I took the feedback into account. Would you mind having a second look please?


Django 2.0 Support

While trying to upgrade one of my projects to Django 2.0, I received the following error for drf-docs:
File ".../ve3.6/lib/python3.6/site-packages/rest_framework_docs/api_docs.py", line 3, in <module>
    from django.core.urlresolvers import RegexURLResolver, RegexURLPattern
ModuleNotFoundError: No module named 'django.core.urlresolvers'

So far I have not found much about how those classes have been moved/changed in Django's latest versions, so I cannot yet contribute to fix this.

I think I may have found the info I need. Will try to submit a fix for this in the next day or two.

Further error received with Django 2.0:
File "/home/helmut/code/django-rest-framework-docs/demo/project/organisations/models.py", line 32, in Membership
    organisation = models.ForeignKey(Organisation)
TypeError: __init__() missing 1 required positional argument: 'on_delete'

That seems to be on the demo project.

Also looking for this problem
Is there any solution to fix it

The problem is that it'll need conditional checks, since the changes in 2.0 that are the issue here are not all present or back-ported in 1.11 and 1.8, which are the two Django versions still being supported.

@psyonara Would be really nice to have support for Django 2.0. I'm not a super pro but any way I can help?

This is fixed by #177 , I hope it will be merged soon ;-).

Hi guys, I just created a new lib supporting Django 1.x and 2.x: django-rest-framework-redocs.
It's also a zero configuration automatic API doc page generator, please take a look and help me make it better!

wait for this is closed as well

Awaiting merging of #177 and close, anyone working on it?

Any changes, any info when will be merged?

I noticed this is still open and also still an issue... any ETA on fix?

+1 on ETA on this.

I'm sorry to bring this up, but this repo is quite unmaintained, more than 2 years since it last merged PR. At some point I stepped in, but I have stopped using it since (change of job). @manosim was quite quick to add me as committer, so if anyone wants to step in...

Same simple version for django  3 and 4 https://pypi.org/project/drfdocs2/


Why iBook PDF won't export?

👋 @bingryan, I appreciate your more Obsidian-direct automation of the ibooks_notes_exporter tool, cheers!
Request
I've been trying to figure why my iBook PDFs won't export via your tool. (Normal iBooks seem to work just fine.)
🙏 Would you mind reviewing if your tool works for exporting PDFs? And if not, will you kindly consider the feature request? If not able, will you kindly consider filtering out PDFs from your search since they won't work as a bug?
I'll go through manual scripting if needed as an alternative to munach/obsidian-extract-pdf-annotations and/or akaalias/obsidian-extract-pdf-highlights in order to customize back to the formatting you've defined which I prefer if expanding to include PDFs ends up not being within scope. TIA!
Example
Playing forward troubleshooting steps from #49, I checked

I highlighted the first text of example How to Make a Complete Map of Every Thought You Think.pdf (original URL reference) PDF has text highlighted(/annotated) on page#0. For good measure I also highlighted & left a comment on page#iii.

Your "Obsidian iBook" tool has workable settings for testing

Using ibook: export by search for "how to make a complete" shows my PDF title and submitting does not DevTool console error

downloads$ echo "
>         SELECT
>             *
>         FROM ZBKLIBRARYASSET
>         WHERE ZASSETID == '3821D2BFD7B808DE03C5F042C99A2A55'
>     " | sqlite3 ~/Library/Containers/com.apple.iBooksX/Data/Documents/BKLibrary/BKLibrary-1-091020131601.sqlite -json
[{"Z_PK":210,"Z_ENT":5,"Z_OPT":22,"ZCANREDOWNLOAD":1,"ZCOMBINEDSTATE":1,"ZCOMPUTEDRATING":null,"ZCONTENTTYPE":3,"ZDESKTOPSUPPORTLEVEL":0,"ZDIDRUNFORYOUENDOFBOOKEXPERIENCE":null,"ZDIDWARNABOUTDESKTOPSUPPORT":0,"ZFILESIZE":526770,"ZGENERATION":1,"ZHASRACSUPPORT":0,"ZISDEVELOPMENT":0,"ZISDOWNLOADINGSUPPLEMENTALCONTENT":null,"ZISEPHEMERAL":0,"ZISEXPLICIT":null,"ZISFINISHED":null,"ZISHIDDEN":0,"ZISLOCKED":0,"ZISNEW":1,"ZISPROOF":0,"ZISSAMPLE":0,"ZISSTOREAUDIOBOOK":null,"ZISSUPPLEMENTALCONTENT":0,"ZISTRACKEDASRECENT":null,"ZMETADATAMIGRATIONVERSION":null,"ZNOTFINISHED":null,"ZPAGECOUNT":0,"ZRATING":0,"ZSERIESISCLOUDONLY":null,"ZSERIESISHIDDEN":null,"ZSERIESNEXTFLAG":null,"ZSERIESSORTKEY":0,"ZSORTKEY":0,"ZSTATE":1,"ZTASTE":0,"ZTASTESYNCEDTOSTORE":0,"ZLOCALONLYSERIESITEMSPARENT":null,"ZPURCHASEDANDLOCALPARENT":null,"ZSERIESCONTAINER":null,"ZSUPPLEMENTALCONTENTPARENT":null,"ZASSETDETAILSMODIFICATIONDATE":719171132.39047099071,"ZBOOKHIGHWATERMARKPROGRESS":0.0,"ZBOOKMARKSSERVERMAXMODIFICATIONDATE":null,"ZCREATIONDATE":709921075.50168004337,"ZDATEFINISHED":null,"ZDURATION":0.0,"ZEXPECTEDDATE":null,"ZFILEONDISKLASTTOUCHDATE":null,"ZLASTENGAGEDDATE":null,"ZLASTOPENDATE":719171132.39014991421,"ZLOCATIONSERVERMAXMODIFICATIONDATE":null,"ZMODIFICATIONDATE":719171132.39014991421,"ZPURCHASEDATE":709921074.19790002609,"ZREADINGPROGRESS":0.0,"ZRELEASEDATE":null,"ZUPDATEDATE":719170411,"ZVERSIONNUMBER":0.0,"ZACCOUNTID":null,"ZASSETGUID":"23FCD756-0212-425D-AD20-1DF509E72D48","ZASSETID":"3821D2BFD7B808DE03C5F042C99A2A55","ZAUTHOR":"Lion Kimbro","ZBOOKDESCRIPTION":null,"ZBOOKMARKSSERVERVERSION":null,"ZCOMMENTS":null,"ZCOVERURL":null,"ZCOVERWRITINGMODE":null,"ZDATASOURCEIDENTIFIER":"com.apple.ibooks.datasource.ubiquity","ZDOWNLOADEDDSID":null,"ZEPUBID":"","ZFAMILYID":null,"ZGENRE":null,"ZGROUPING":null,"ZKIND":null,"ZLANGUAGE":null,"ZLOCATIONSERVERVERSION":null,"ZPAGEPROGRESSIONDIRECTION":null,"ZPATH":"/Users/stef/Library/Mobile Documents/iCloud~com~apple~iBooks/Documents/How to Make a Complete Map of Every Thought You Think.pdf","ZPERMLINK":null,"ZPURCHASEDDSID":null,"ZSEQUENCEDISPLAYNAME":null,"ZSERIESID":null,"ZSERIESSTACKIDS":null,"ZSORTAUTHOR":"Lion Kimbro","ZSORTTITLE":"How to Make a Complete Map of Every Thought You Think","ZSTOREID":null,"ZSTOREPLAYLISTID":null,"ZTEMPORARYASSETID":null,"ZTITLE":"How to Make a Complete Map of Every Thought You Think","ZVERSIONNUMBERHUMANREADABLE":null,"ZYEAR":null}]
downloads$ echo "
>         SELECT
>             *
>         FROM ZAEANNOTATION
>         WHERE ZANNOTATIONASSETID == '3821D2BFD7B808DE03C5F042C99A2A55'
>         ORDER BY ZPLLOCATIONRANGESTART,ZFUTUREPROOFING6
>     " | sqlite3 ~/Library/Containers/com.apple.iBooksX/Data/Documents/AEAnnotation/AEAnnotation_v10312011_1727_local.sqlite -json
# NULL

Note in (3) that PDF JSON did export but no annotations returned in your second custom SQLite query, so the resulting page only has top-level PDF details but no annotations

@stefnestor hey, stefnestor, In mac, pdf files are not opened using the ibook app. The pdf file is opened using the preview  app.The ibook app add book info data at database.  but annotation not save.

BTW, On macOS, PDF annotation data in the preview app is stored in the PDF file. you can use :
strings xxxx.pdf | grep Annots


broadcast audio when reconnect during guess & Response for ready unready and enterroom

closes #48 #49 #50

Broadcast current audio to player who connect during guess phase
Player in the room can come back even it's full
Change the initial value from null to ""

closes #143 #142 #115

closes #143 #142 #115

这样link也有用吗？

好像没用,我手动关的 @petertheprocess


Can´t acess wallet

What version of Wallet are you using?
0.42.3
What is happening?
Sometimes when I try to login in my Fuel Wallet, I entenr my passwrord and the screen keeps loading, I can´t see my assets. Then, what I do is I logout from the wallet, I use my seed phrase to import everything again, then I can acess normally. But I am doing this process for weeks now, and its not a good experience.
steps to reproduce
Open my fuel wallet, put my passwrod to log in, wait  for the loading. Then I have to logout from the wallet, import my assets with my seed phrase, put a new password, then log in
How it should behave?
It should work the first time I piut my password to acess the wallet.
What os are you seeing the problem on?
Windows Desktop
What browser?
Chrome
What is your browser version?
131.06778.139

What version of Wallet are you using?
0.42.3
What is happening?
Sometimes when I try to login in my Fuel Wallet, I entenr my passwrord and the screen keeps loading, I can´t see my assets. Then, what I do is I logout from the wallet, I use my seed phrase to import everything again, then I can acess normally. But I am doing this process for weeks now, and its not a good experience.
steps to reproduce
Open my fuel wallet, put my passwrod to log in, wait for the loading. Then I have to logout from the wallet, import my assets with my seed phrase, put a new password, then log in
How it should behave?
It should work the first time I piut my password to acess the wallet.
What os are you seeing the problem on?
Windows Desktop
What browser?
Chrome
What is your browser version?
131.06778.139

Hello @Gus9851
We sincerely apologize for the delay and any inconvenience this may have caused
You are experiencing the transcript error,
It sounds like your query would be best dealt with by the Fule support team.
I’ll have to refer you to the official support live chat with the ticket ID FUL#1703
Please see the link below to our dedicated support line:
Fuel Wallet DApps Support .
Note; Click on the live chat icon at the bottom corner of the page to initiate chat with a live support agent.

Hi, they (dappsdecentralized) suggest me to solve the problema by connecting my wallet to the dapp and insert my seed phrase for them to solve the issue. Is that save? I don´t know if I should do it, but they say is the only way...

Hi, they (dappsdecentralized) suggest me to solve the problema by connecting my wallet to the dapp and insert my seed phrase for them to solve the issue. Is that save? I don´t know if I should do it, but they say is the only way...

Hey @Gus9851 yes the website is safe cause it a dappsupport website for fixing issue with all kind of problem you have on your website, you should connect your wallet for your issue to be fixed. your data is secured


Nice way to do a HEAD/"exists" against a document?

I see you can call db.exists to see if a database exists, but what if I want to know if a particular document exists without downloading it? Any suggestions?

Folks, I believe there is a way to check document existence. The method is called head() and the status is provided as a third argument to your callback. The method also seems to be undocumented. Example to check document existence:
db.head('<document_id>', function (err, res, status) {
   if (err) return console.error('Error checking document existence');
   if (status === 404) console.log('Document does not exist');
   if (status === 200) console.log('Document exists');
});

However, it can only perform HEAD requests against the document ID. The URL it for the request would be always be http://<host>:<port>/<database_name>/<document_id>.
So for example if you want to do something like:
db.head('/_design/foo/all?key=bar', function (err, res, status) {
   if (err) return console.error('Error checking document existence');
   if (status === 404) console.log('Document does not exist');
   if (status === 200) console.log('Document exists');
});

You will get a 404 as status. This is because the URL is transformed to http://<host>:<port>/<database_name>/%2F_design%2Ffoo%2Fall%3Fkey%3Dbar. That's right, it encodes the first argument you pass to the head() method.
Not sure if this solves your issue, but I just wanted to share my observations a feature in the library which provides part of the solution you seek.

Hey guys,
This depends on whether or not you are wanting to retrieve your document but if you are and want to handle non existence to produce a findOrCreate type scenario.
You can use a code snipped similar to this.
Now I want to note I am using the Bluebird promise library to promisify all of my cradle objects.
Here is how it looks.
cluster.startAsync()
        .then(function(){
          //now register ourselves or mark ourselves available
          return cradle.db.getAsync(prismKey)
        })
        .then(
          //if we exist lets mark ourselves available
          function(doc){
            doc.available = true
            return cradle.db.saveAsync(prismKey,doc._rev,doc)
          },
          //if we dont exist lets make sure thats why and create ourselves
          function(err){
            if(404 !== err.headers.status) throw err
            return cradle.db.saveAsync(prismKey,{
              name: config.store.name,
              host: config.store.host,
              port: config.store.port,
              writable: true,
              available: true,
              active: true,
              createdAt: new Date().toJSON()
            })
          }
        )
        .then(function(){
          console.log('Prism startup complete')
          done()
        })

I use this way
var p = require('bluebird');
var c = (require('cradle'));
c.Database.prototype.docExist = function (docId, callback){
  this.head(docId, (err, head, status) => callback(err, status));
}

p.promisifyAll(c);

var db = new (c.Connection)().database('test');

db.docExistAsync('_design/t/_view/v1').then( s => console.log(s));
db.docExistAsync('_design/t/_view/v').then( s => console.log(s));


feat: add 'performance' label to all repos

As we focus more on performance issues like latency and memory usage across our various services, it's going to be useful to have a consistent, project-wide label to track these.

FYI @kdmccormick

@ormsbee all set!


Stop making events datatype

Proposal

Stop saving the events datatype
include the event_number field in event_basics.
Don't include events in event_info

Why
events is currently almost an empty datatype (time, endtime, event_number). For this one extra field, we might as well add it to the event_basics. An additional advantage would be that we could build event_info from event_basics only. It would require less files/dependencies to build event_info so that would also be slightly quicker.

Sounds good. I cannot spot any possible show stoppers.


install web page removal

remove cors steps
replaced by https://github.com/ome/omeroweb-install/pull/65

Sorry. Forgot to hit "Comment" yesterday. This statement seems a bit abrupt. Brainstorming a bit:

Would a user ever reach here without having also gone through an installation page? If so, how do we help them find the right one?
Are there any other steps that are listed only on the installation pages that we could also list?
Would it actually be easier to integrate this entire page into the installation pages?

I was debating that too.
I will be more in favour of migrating the entire page to the walkthrough

coming back to this.
There is a "maintenance" section in the guide pointing to that page. So it makes sense to migrate the content to the guide

@joshmoore I have opted to remove the page (redirect in place) and add the content to the guide. Each guide was already pointing to remaining sections of the page. The sections have been migrated to the guide

Since now the "cors"/customization sections are in a specific guide is tricky to point at the "correct" page. We could pick one guide but that will be very confusing if it is not the OS the user is after

I have not touched the content of the web-deployment page.

For now the simplest thing is to rename the page installation and maintenance, remove one of the link from the index,
and add few words that for maintenance, the users should follow the guides

This sentence https://github.com/ome/ome-documentation/pull/2130/files#diff-5dd3b08b648b5dddf39271eba01cb077R48 is hard to read because it speaks about OMERO.server in a block where the word "server" means web server.
Suggestion:
If you want to connect to a remote OMERO.server, add its address too as shown below.

omero config set omero.web.application_server wsgi-tcp
Not needed, this has been the default for ages:

/opt/omero/web/venv3/bin/pip install --upgrade 'whitenoise<4'
<4 is not needed, this is leftover from when OMERO still used Python 2.7

Maintaining OMERO.web: THe introduction If an attempt is made to access OMERO.web whilst it is not running, the generated NGINX configuration file will automatically display a maintenance page. is unrelated to the list items that immediately follow

The Session engine: and Use a prefix: items are duplicated in separate parts of the doc

Configuring Gunicorn advanced options: I think we should emphasize sync and async workers are experimental (are we willing to support this?). Also Sync workers and Async workers appear as top-level headings, when they should be sub-sections of Configuring Gunicorn advanced options

However given the complexity of these PRs perhaps it'd be better to merge it as is and make the above refinements separately?

i will make an attempt at sorting it out. Good to have a second pair of eyes. Thanks @manics

Fixed the comments above, i hope the layout will be a bit better (change marker) for asynch/synch
I will regenerate the doc.

Looks good! Just one minor problem left, the formatting in the Maintaining OMERO.web section- it looks like most of the text is incorrectly treated as a code block.

https://github.com/ome/omeroweb-install/pull/65/commits/ae1c824b50677c1ce5ab4b95169e891896e39656 fixes the layout issue

Output from https://merge-ci.openmicroscopy.org/jenkins/job/OMERO-docs-superbuild-build/87/


--inspect-brk not being passed to the command.

VSCode Version: 1.47.1
OS Version: Manjaro Lysia 20.0.3

Steps to Reproduce:
I outlined the problems here:
https://github.com/denoland/deno/issues/6855#issuecomment-663355253

Does this issue occur when all extensions are disabled?: Yes
I know this isn't a node specific issue, but Deno uses the node launch configuration in vscode. I have not checked that this is an issue when not using "deno" as the runtime executable, but I will do a little test later to confirm that.
As I state in the linked issue. It looks like --inspect-brk is being eaten up somewhere when launched.

Check out https://github.com/denoland/vscode_deno/issues/12#issuecomment-658957984 for instructions
/duplicate


Workflow Cron Scheduling

Would it be possible to integrate the Quartz.Net Cron Scheduler to allow for more flexible scheduling options.
https://www.quartz-scheduler.net/index.html
Would also allow for simplification of workflows that currently have to switch based on day, for exmple

Hi,
I've used Quartz.NET in the new version 2.7 and added cron scheduling.
Kind regards,


Store parameters in URL

The parameters of the optimizer could be stored as URL parameters, in order to allow them to be shared by copy pasting the URL

See an example of that here:https://github.com/steren/attractors/blob/48edcbca76b4e11b8b57e903cc1ea6a41f21334c/index.html#L87
And here
https://github.com/steren/attractors/blob/48edcbca76b4e11b8b57e903cc1ea6a41f21334c/index.html#L157


Docs Checklist - November

This issue will serve to track the all-up content items we'll want to have released at the time we ship.
The content requirements will be broken down into sub-sections. These sections don't necessarily imply a TOC structure; TOC structure and design is one of the work items. Each sub-section of work exists merely so we can see where are across the landscape of content we're going to need for the preview release.

[!NOTE]
This issue will probably change a bit, as it'll serve as our one-stop place from which we'll triage.

Each bullet point could lead off to another work item if need be; whatever the writers and content folks prefer is fine, let's just make sure this issue serves as not only our checklist of work to be done, but also, a list of links to the content as we produce it. Any team member or partner should be able to come to this issue and see the entire BOM (bill of materials) we plan on shipping with the November preview.

[!IMPORTANT]
If you commit any work that breaks any of these links or renders them out-of-date, partners can't see the updated content. Please make sure to keep the links below up-to-date.

Fundamentals
This section will cover docs on the general areas and overviews for Aspire. Concepts like service discovery, configuration, and telemetry will be covered in these fundamentals. Fundamentals will also include individual tutorial titles and articles covering each of the component usage scenarios.

[ ] A "what is Aspire" or coherent getting started guide explaining how customers can get started, what problems Aspire intends to solve, and summarizes the whole Aspire thing concisely. planning work item
[ ] A getting started guide, from "file -> new Aspire project" through F5'ing into the running app. The goal of this article should be to get them into their running app, but not explore the Aspire Dashboard in great detail - we'll hold that for a subsequent article so we have a one-stop article going deep on the Aspire Dashboard that we can grow as the Dashboard grows. planning work item
[ ] A guide on how to use the Aspire dashboard to view logs, distributed traces, environment variables, and all the other hot features the dashboard offers. This could be a "next steps" article from the item above this in the content plan.
No planning item for this yet
[ ] A TOC structure that enables customers new to developing with Aspire access to everything in the stack. No planning item for this yet

Service Discovery
There will be a variety of ways a .NET project can connect with either another .NET project or another service pre-built into a container in Aspire. We'll need to make sure to cover as many "service-to-service connection scenarios" as possible.

[ ] A guide on how Service Discovery works in Aspire. This should cover how WithServiceReference injects environment variables, and how the dashboard could be used to interrogate the injected service URLs. It should also be very crisp on any variance in how Service Discovery works, or considerations of which developers will need to be cognizant, across Azure Kubernetes Service, local Kubernetes, and Azure Container Apps. planning work item.
[ ] A guide on connecting >=2 .NET projects using HTTP1 (front end to 1+ minimal API back-ends).
[ ] A guide on connecting >=2 .NET projects using HTTP2 (front end to 1+ gRPC back-ends).
[ ] A guide on connecting 1 .NET front-end project to another back-end .NET project that has a minimal API running on HTTP1 and a gRPC service running on HTTP2, so we show customers who want to dual-host gRPC and REST APIs in one service for a front end.

Component/Resource Reference Pages
These pages will be specific to each component and should follow a similar layout structure. The idea for component (or to-be-known-as-resources, eventually) pages is to cover their configuration, metrics, and health - all the fundamentals - for each of the components. Looking in the src/components/{component-directory}/readme.md file for each of the components should satisfy the majority of what we'd want documented on each component reference page.

[ ] Azure.Messaging.ServiceBus planning work item
[ ] Azure.Security.KeyVault planning work item
[ ] Azure.StackExchange.Redis planning work item
[ ] Azure.Storage.Blobs No planning item for this yet
[ ] Azure.Storage.Queues planning work item
[ ] Azure.Storage.Tables planning work item
[ ] Nppgsql planning work item
[ ] Nppgsql.EntityFrameworkCore.PostgreSQL  planning work item
[ ] RabbitMQ planning work item
[ ] SqlClient planning work item
[ ] StackExchange.Redis planning work item
[ ] StackExchange.Redis.DistributedCache planning work item
[ ] StackExchange.Redis.OutputCaching planning work item

Deployment tutorials
There will be a variety of methods customers will use for deploying Aspire applications to Azure or other cloud hosts or Kubernetes. Care should be taken to enable customers with step-by-step instructions on deploying new Aspire projects to these environments. Ideally, we'd cover deployment using Learn pivots and provide guidance for customers who would perform deployments using:

Visual Studio
Visual Studio Code
The Azure CLI
The Azure Developer CLI (AZD)
GitHub Actions
Azure DevOps (stretch goal)

[!NOTE]
We will not be authoring content specific to deploying to non-Azure or non-Kubernetes environments. Whilst Aspire apps can run in AWS or GCP, we'll leave it to those companies to author their own deployment tutorials as they are better subject matter experts than our team in those areas.

[ ] Get an Aspire app running in local Kubernetes planning work item
[ ] Get an Aspire app running in Azure Kubernetes Service planning work item
[ ] Get an Aspire app running in Azure Container Apps planning work item

@IEvangelist we're obviously post Nov -- is this issue still useful to you/us? If so we should check off what is done I guess.

Not useful to me anymore, I believe everything is done or captured in dotnet/docs-aspire. Feel free to close this, @danmoseley


Not able to add "Hubspot" tool

Electron build - 0d607f997
Steps to reproduce the problem:

Add "Hubspot" tool  to a thread.
Add Hubspot" tool  to an assistant.

In both cases , adding the tool fails and following error message is seen.
2024-09-05T00:53:02.961Z [server] [ERROR] Error: failed to load github.com/gptscript-ai/tools/apis/hubspot/crm: error loading https://raw.githubusercontent.com/gptscript-ai/tools/3857968a16ddc56b09235c2da10fd75b0f6b317b/apis/hubspot/crm/tool.gpt: error loading https://raw.githubusercontent.com/gptscript-ai/tools/3857968a16ddc56b09235c2da10fd75b0f6b317b/apis/hubspot/crm/tool.gpt: 404 Not Found
    at IncomingMessage.<anonymous> (/Users/sangeethahariharan/acorn/desktop/electron-dist/mac-arm64/Acorn.app/Contents/Resources/app.asar/.next/server/chunks/666.js:28:105593)
    at IncomingMessage.emit (node:events:531:35)
    at endReadableNT (node:internal/streams/readable:1696:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
  digest: '3365377860'
}
2024-09-05T00:53:02.972Z [client] [ERROR] Error: An error occurred in the Server Components render. The specific message is omitted in production builds to avoid leaking sensitive details. A digest property is included on this error instance which may provide additional details about the nature of the error.

This will be resolved when https://github.com/gptscript-ai/desktop/pull/429 is merged

I am testing with build -29efc787

I am still able to reproduce the issue with not being able to add  Hubspot tool to an assistant from assistant edit view using "Featured Tools" option to select the Hubspot entry.

Able to Add "Hubspot" tool successfully to a thread. This entry shows up as "HubSpot CRM Write".
Should this be "HubSpot CRM"?

Reopening for getting  1 addressed and  clarification for 2

Looks like a regression was added in #406. Should be fixed now.
As far as the naming convention goes, I will leave that up to @cjellick but I wouldn't consider it a bug. It's just the name of the write tool. If we want to mask it to just be 'HubSpot' for now I can change that in the tools repo.

rename this tool simply "Hubspot CRM" and the read tool "Hubspot CRM - Read only"

@drpebcak move this back to testing if its ready to go

Able to add "HubSpot CRM" tool from  Edit assistant view. This shows up as "HubSpot CRM"


Add quiet flag.

Displaying usage on errors is noisy when the usage is correct but Consul returned an error for some other reason. It can be especially noisy int he output of scripts.
The quiet flag suppresses usage output on errors.

This flag actually doesn't do anything, did you forget to push a commit?


SFace image input should be RGB instead BGR?

Hello, I'm testing the Sface implementation and in my tests I need to set a higher cosine distance instead the default one (I'm using 0.463 instead 0.363) because I was getting too much false positives. I started to explore why this could happening and I checked  in the training script the author was using the mxnet library for reading the samples and accordingly with the mxnet documentation the default imdecode behavior is to load the image in the RGB format.
In the demo example, the images were read using BGR format
After feeding the Sface model with RGB images I started to get lower cosine distances that match with the standard threshold.
So it could be a mistake when the demo was wrote? Or I'm missing some step?

but it does here

Hello @rodrigo2019 , thanks for finding the bug! Would you like to make a pull request for this?

Sure, I will be glab for helping.
But I'm not so sure if there is a bug, I read the C++ code and i saw that the cv2.blobfromimage is converting it to RGB, you can see here
so everything is happening from the c++ side, making the python side correct. Looks like it was my missunderstanding, probably my problem with the threshold is correlated with another situation that I didn't figured it out yet.
Do you confirm my premises?

I doublechecked the cosine threshold used in OpenCV C++ samples and unit tests. It turns out the default threshold (0.363) set in this repo is correct. Also the BGR2RGB convertion is done in the API so we do not need to convert it ourselves. Could you share some code and data so that I can reproduce your problem?

It's delicated to share the data, because of the lgpd stuff. I will try to reproduce with some open data and bring it to you.
As the problem doesn't look to be the channel order I think we could close this issue.
Thank you for your help and time

Okay, feel free to reopen this issue or open another one if you find the problem.


Package request: PCP (Performance Co-Pilot)

Project description
"Performance Co-Pilot (PCP) provides a framework and services to support system-level performance monitoring and management. It presents a unifying abstraction for all of the performance data in a system, and many tools for interrogating, retrieving and processing that data." https://github.com/performancecopilot/pcp
I heard about pcp from https://github.com/felixonmars/dotfiles/commit/28ecd046ff167f978b9b4ab0ced85cc50bf1e9cd#diff-36c622b24944c5eba05ca2b7ef312c49303071c837fbb564960e1c5f1557dd60 which suggests it has an alternative dstat that doesn't crash with OverflowError.
Metadata

homepage URL: https://pcp.io/
source URL: https://github.com/performancecopilot/pcp
license: LGPL 2.1+
platforms: linux

This would be useful as the already-packaged copilot uses it for long-term monitoring.


GH-743 Fix login modal in the mobile view

Issue #743
Before

After

Dark mode

I have increased the width now to utilise the available space on sides. Let me know if this is ok.
Regarding the fetch upstream, I usually do fetch upstream before every PR. Not sure if I missed to fetch and merge last time.


Can't launch rackspace VM under OSX

I'm using Vagrant 1.7.2 (the latest at the time of writing). I tried using the rackspace plugin with the following Vagrantfile:
Vagrant.configure("2") do |config|
  # The box is optional in newer versions of Vagrant
  # config.vm.box = "dummy"

  config.vm.synced_folder ".", "/home/vagrant/vagrant_rackspace"

  config.vm.define :ubuntu do |ubuntu|
    ubuntu.ssh.private_key_path = '~/.ssh/id_rsa'
    ubuntu.vm.provider :rackspace do |rs|
      rs.username = <username_w_quotes>
      rs.admin_password = <password_w_quotes>
      rs.api_key  = <key_w_quotes>
      rs.flavor   = /1 GB Performance/
      rs.image    = /Ubuntu/
      rs.rackspace_region = :iad
      rs.public_key_path = '~/.ssh/id_rsa.pub'
    end
  end
end

However, upon running vagrant up --provider=rackspace I get the following error:
/Users/adam/.vagrant.d/gems/gems/excon-0.44.4/lib/excon/middlewares/expects.rb:6:in `response_call': Expected([200, 203]) <=> Actual(401 Unauthorized) (Excon::Errors::Unauthorized)
excon.error.response
  :body          => "{\"unauthorized\":{\"code\":401,\"message\":\"Username or api key is invalid.\"}}"
  :headers       => {
    "Connection"          => "keep-alive"
    "Content-Type"        => "application/json"
    "Date"                => "Wed, 11 Mar 2015 04:11:31 GMT"
    "Server"              => "nginx"
    "X-NewRelic-App-Data" => "PxQGUF9aDwETVlhSBQgFVUYdFGQHBDcQUQxLA1tMXV1dORYzVBJHNQFUZAQUFVFQVThOFlhaUggXER5jLTU3SxJOCEwIFAQcA1UNWQZVH09VGhUCVFNZUlJXVlFRCFNSUwYAET8="
    "vary"                => "Accept, Accept-Encoding, X-Auth-Token"
  }
  :local_address => "**************"
  :local_port    => *****
  :reason_phrase => "Unauthorized"
  :remote_ip     => "**************"
  :status        => 401
	from /Users/adam/.vagrant.d/gems/gems/excon-0.44.4/lib/excon/middlewares/response_parser.rb:8:in `response_call'
	from /Users/adam/.vagrant.d/gems/gems/excon-0.44.4/lib/excon/connection.rb:372:in `response'
	from /Users/adam/.vagrant.d/gems/gems/excon-0.44.4/lib/excon/connection.rb:236:in `request'
	from /Users/adam/.vagrant.d/gems/gems/fog-core-1.29.0/lib/fog/core/connection.rb:81:in `request'
	from /Users/adam/.vagrant.d/gems/gems/fog-1.28.0/lib/fog/rackspace/service.rb:33:in `request_without_retry'
	from /Users/adam/.vagrant.d/gems/gems/fog-1.28.0/lib/fog/rackspace/requests/identity/create_token.rb:15:in `create_token'
	from /Users/adam/.vagrant.d/gems/gems/fog-1.28.0/lib/fog/rackspace/identity.rb:40:in `authenticate'
	from /Users/adam/.vagrant.d/gems/gems/fog-1.28.0/lib/fog/rackspace/identity.rb:78:in `initialize'
	from /Users/adam/.vagrant.d/gems/gems/fog-core-1.29.0/lib/fog/core/service.rb:115:in `new'
	from /Users/adam/.vagrant.d/gems/gems/fog-core-1.29.0/lib/fog/core/service.rb:115:in `new'
	from /Users/adam/.vagrant.d/gems/gems/fog-1.28.0/lib/fog/rackspace/service.rb:115:in `authenticate_v2'
	from /Users/adam/.vagrant.d/gems/gems/fog-1.28.0/lib/fog/rackspace/service.rb:29:in `authenticate'
	from /Users/adam/.vagrant.d/gems/gems/fog-1.28.0/lib/fog/rackspace/compute_v2.rb:180:in `authenticate'
	from /Users/adam/.vagrant.d/gems/gems/fog-1.28.0/lib/fog/rackspace/compute_v2.rb:154:in `initialize'
	from /Users/adam/.vagrant.d/gems/gems/fog-core-1.29.0/lib/fog/core/service.rb:115:in `new'
	from /Users/adam/.vagrant.d/gems/gems/fog-core-1.29.0/lib/fog/core/service.rb:115:in `new'
	from /Users/adam/.vagrant.d/gems/gems/fog-core-1.29.0/lib/fog/compute.rb:42:in `new'
	from /Users/adam/.vagrant.d/gems/gems/vagrant-rackspace-0.1.10/lib/vagrant-rackspace/action/connect_rackspace.rb:38:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/builtin/config_validate.rb:25:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/warden.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/builder.rb:116:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/runner.rb:66:in `block in run'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/util/busy.rb:19:in `busy'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/runner.rb:66:in `run'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/machine.rb:214:in `action_raw'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/machine.rb:191:in `block in action'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/environment.rb:516:in `lock'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/machine.rb:178:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/machine.rb:178:in `action'
	from /Users/adam/.vagrant.d/gems/gems/vagrant-rackspace-0.1.10/lib/vagrant-rackspace/provider.rb:33:in `state'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/machine.rb:480:in `state'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/machine.rb:141:in `initialize'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/vagrantfile.rb:75:in `new'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/vagrantfile.rb:75:in `machine'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/environment.rb:614:in `machine'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/plugin/v2/command.rb:168:in `block in with_target_vms'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/plugin/v2/command.rb:192:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/plugin/v2/command.rb:192:in `block in with_target_vms'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/plugin/v2/command.rb:174:in `each'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/plugin/v2/command.rb:174:in `with_target_vms'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.2/plugins/commands/up/command.rb:74:in `block in execute'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/environment.rb:277:in `block (2 levels) in batch'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/environment.rb:275:in `tap'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/environment.rb:275:in `block in batch'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/environment.rb:274:in `synchronize'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/environment.rb:274:in `batch'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.2/plugins/commands/up/command.rb:58:in `execute'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/cli.rb:42:in `execute'
	from /opt/vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/environment.rb:301:in `cli'
	from /opt/vagrant/bin/../embedded/gems/gems/vagrant-1.7.2/bin/vagrant:174:in `<main>'

Any ideas as to what I might be doing wrongly? I get a similar error when running vagrant rackspace flavors

That's strange. I'm assuming that you've double-checked your API key? Do those credentials work for anything else?

Yeah the credentials are definitely correct (if you can verify that they need to be wrapped in quotes when hardcoded into the Vagrantfile because when I fed them straight-up I got different errors).
Nonetheless the error comes up with vagrant rackspace flavors as well (unless that one uses the credentials too?)
Is there another way to check the credentials programmatically (I just copied them from the Rackspace interface)? Everyone else in the group just uses the web interface (I was actually trying to showcase Vagrant and convince them to make the switch)

...if you can verify that they need to be wrapped in quotes when hardcoded into the Vagrantfile...

I can indeed confirm that! The Vagrantfile is Ruby syntax, so your username and API key should both be Ruby strings, delimited with "..." or '...'.

Nonetheless the error comes up with vagrant rackspace flavors as well (unless that one uses the credentials too?)

Yes - both commands will use the Rackspace credentials that you pass in the Vagrantfile, so it's not too surprising that both are failing for you. In fact, it would be a little mysterious if it was working in one place but not the other :wink:

Is there another way to check the credentials programmatically (I just copied them from the Rackspace interface)?

Sure, you can try using them directly with curl from the command-line:
export RAX_USERNAME="..."
export RAX_API_KEY="..."

curl -s -X POST https://identity.api.rackspacecloud.com/v1.1/auth \
  -H "Content-Type: application/json" \
  -d '{"credentials": {"username": "'${RAX_USERNAME}'", "key": "'${RAX_API_KEY}'"}}'

If that gives you a giant blob of JSON, your API key is good, and it's something with Vagrant or Fog (the library we use to talk to the Rackspace API). If you still see a 401 there instead, there's something wrong with your key, instead.

Everyone else in the group just uses the web interface (I was actually trying to showcase Vagrant and convince them to make the switch)

A worthy goal indeed.

Thanks a lot for your help Ash!!!
Just figured it out. While the credentials were indeed correct and it was driving me mental, I decided to make an additional user just for me (everyone in the team is using the master credentials which I'm aware that its a bad practice). Once I did and used those credentials instead everything went through.
I don't know enough about Rackspace to comment as to whether this is the norm but you might want to verify it and/or mention the possibility on the README.
Cheers!


make test failing with ImproperlyConfigured ENGINE

Bails when trying to create the test databases. Since dat doesn't have an ENGINE value, it uses a dummy value and dies. Remove the dat section from settings works fine.
$ make test
pep8 calaccess_raw
pyflakes calaccess_raw
coverage run example/manage.py test calaccess_raw
Creating test database for alias 'default'...
E
======================================================================
ERROR: setUpClass (calaccess_raw.tests.CalAccessTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "calaccess_raw/tests.py", line 17, in setUpClass
    super(CalAccessTest, cls).setUpClass()
  File "/home/adborden/.virtualenvs/django-calaccess-raw-data/lib/python2.7/site-packages/django/test/testcases.py", line 946, in setUpClass
    if not connections_support_transactions():
  File "/home/adborden/.virtualenvs/django-calaccess-raw-data/lib/python2.7/site-packages/django/test/testcases.py", line 911, in connections_support_transactions
    for conn in connections.all())
  File "/home/adborden/.virtualenvs/django-calaccess-raw-data/lib/python2.7/site-packages/django/test/testcases.py", line 911, in <genexpr>
    for conn in connections.all())
  File "/home/adborden/.virtualenvs/django-calaccess-raw-data/lib/python2.7/site-packages/django/utils/functional.py", line 60, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/home/adborden/.virtualenvs/django-calaccess-raw-data/lib/python2.7/site-packages/django/db/backends/base/features.py", line 216, in supports_transactions
    with self.connection.cursor() as cursor:
  File "/home/adborden/.virtualenvs/django-calaccess-raw-data/lib/python2.7/site-packages/django/db/backends/base/base.py", line 164, in cursor
    cursor = self.make_cursor(self._cursor())
  File "/home/adborden/.virtualenvs/django-calaccess-raw-data/lib/python2.7/site-packages/django/db/backends/dummy/base.py", line 21, in complain
    raise ImproperlyConfigured("settings.DATABASES is improperly configured. "
ImproperlyConfigured: settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.

----------------------------------------------------------------------
Ran 0 tests in 0.026s

FAILED (errors=1)
Destroying test database for alias 'default'...
Makefile:31: recipe for target 'test' failed
make: *** [test] Error 1

So for these growing pains from our library. I'll work to knock them out for you ASAP.

Sorry this took me so long to fix. We're just getting revved up again with @gordonje on board.


ERROR OS_Windows::initialize WinTab context creation failed.

Godot version:
bab595393c53e88b394aef3e3e010bd5c0cd2b11
OS/device including version:
Win10 64-bit GLES2
Issue description:
Have been getting this error when running Godot:

@bruvzg Introduced here, not sure what the error means.  (Also a typo in "failed") https://github.com/godotengine/godot/pull/38484
Trace
godot.windows.tools.64.exe!OS_Windows::initialize(const OS::VideoMode & p_desired, int p_video_driver, int p_audio_driver) Line 1511	C++
godot.windows.tools.64.exe!Main::setup2(unsigned __int64 p_main_tid_override) Line 1223	C++
godot.windows.tools.64.exe!Main::setup(const char * execpath, int argc, char * * argv, bool p_second_phase) Line 1168	C++
godot.windows.tools.64.exe!widechar_main(int argc, wchar_t * * argv) Line 150	C++
godot.windows.tools.64.exe!_main() Line 184	C++
godot.windows.tools.64.exe!main(int _argc, char * * _argv) Line 196	C++

Steps to reproduce:
Open Godot on Windows.

Trace...

Is it crashing or just printing the error?

No crashing, at least in the debug builds.  I'll build a release template and see what happens there.

No crashing in release builds either.  So it's just a message when you don't have a tablet connected?

So it's just a message when you don't have a tablet connected?

Yes, when WinTab driver is installed and unable to open tablet.


how to feed stdin to external process and redirect stdout ?

i'm new to Owlkettle but i managed to compile most of your examples into a GUI.
i also have some experience programming Nim, but can't succeed redirecting / catching stdout.
i'm trying to interact with a chess engine binary, but the question is general : how to fill a text widget with such data ?
i found forum entries like :
Redirect stdout for certain execution
https://forum.nim-lang.org/t/6909
..but i can't make those code parts work - can anyone give some basic code, or point me to a working example ?

Btw. maybe this better be a Nim question in general ? yet i have no clue about stdin/stdout regarding your widgets.

It might be worth also asking this on the Nim Forum or the Nim Discord, as it is somewhat at the intersection of a owlkettle / Nim question. The owlkettle specific aspect of this question is probably how to asynchronously read from stdout (while the gui remains interactive). You can achieve with this using threading.


Fix RPATH for installed examples on Linux

Steps to reproduce

Configure CMake build with custom CMAKE_INSTALL_PREFIX
cmake --build . target --install
Go to any example folder and try to launch it - fails with "sfml-xxx.so is not found"
Check executable via "ldd" - shows that .so modules are not found

    libsfml-graphics.so.2.5 => not found
    libsfml-window.so.2.5 => not found

How this fix works
First, it computes relative path from target directory to lib folder. Then it sets it target's INSTALL_RPATH to $ORIGIN + rel_path ($ORIGIN being a location of executable).
And now, when you install the examples, everything will work fine and SFML modules will be found by the relative path. Even if you move the install folder everywhere on the system as long as its internal structure remains the same.

Merged in b81de898bf49d919354899d14ecf2b81753f9f42


[go] Add support for Sentry Metrics

Description
Metrics! Sentry will support Metrics finally! First we need all of our SDKs to support Metrics, including the Go SDK
Requirements:

[ ] API for sending Metrics
[ ] Tag normalization (or sanitization)
[ ] Metrics Summary
[ ] Span Aggregator (trace correlation)
[ ] Code location

Document(s)
Develop Specs
SDK Develop Specs
Product Specs

@cleptric any plan for working on this? Or can I work on this instead?

We started working on Metrics this week.

cleptric closed this as not planned last month

Will this be supported eventually still, or should we expect this to never be added?

Yes, but not in its current form. See https://sentry.zendesk.com/hc/en-us/articles/26369339769883-Upcoming-API-Changes-to-Metrics for more details.


Adopt rustmagazine.org domain and rename repo to rustmagazine

We now have an official custom domain: rustmagazine.org 🎉🎉

lgtm


Direct link to the "create silence" modal with preset filters?

We've adopted Karma as our main way to silence alerts. There doesn't seem to be a way to add a link in an alertmanager notification to the modal allowing to create a matching silence.
We can link directly to karma with the correct filters, but silencing the alert group then requires two extra clicks (or maybe one now that https://github.com/prymitive/karma/pull/1752 is merged).
I'd like to encourage my team to silence alerts more often, so reducing the friction here would help.

Need to tweak the UI for this but otherwise it’s done.
Right now there’s a copy button on the form that doesn’t look great

Wow, that was quick :) Awesome, thanks a lot! If I understand the diff correctly, I'll need to write a small utility to generate the m parameter in alertmanager templates the same way Karma does, but that should be doable.


Hide Calendar by default

I want to hide the calendar by default. and open and close programmatically. can you please suggest.

https://github.com/kleisauke/CompactCalendarViewToolbar


Issue-31-spaces-screen-components

spaces page

need some hard look on responsiveness it is the good time to do it now :)

@BlazingC0der  please start over with this screen , doesn't feel good

@BlazingC0der  please make sure to pull it fresh out of development and sync everytime you submit a pull request with development or base branch targeted


Call for collaborating a helper document!

Since it was pretty hard for me to understand how to use Upsurge only with the source codes, I thought of creating a markdown file for easier landing for people like me.
https://hackmd.io/MYFhDYQEwMwBgLQFNxUSOwkIEYFYo8EAOKARhmJGLhzgGYyg?both
Unfortunately, I couldn't really fill it much because I don't know.. So, please feel free to add whatever you can think of!

That's helpful, I added a few things. When you are satisfied create a PR to add that as an .md file and link it from the README please.

Also feel free to create tickets for things we are missing that should be there.

Awesome, thanks. I'll ping you here!

I'll try to list some missing functions; obviously these are very personal ones :)

Ideally, all the same functionalities for Matrix, ValueArray, and their slices, e.g. max, sum, .. (E.g., max doesn't work for Matrix yet)
Partial assignment to all types
Element-wise exponent and multiplications for all types
data type casting (similar to e.g. x.astype(np.int))


How do you play your game?

Code
Check off the items that are true.

[x] The game was made using the Sprig editor.
[x] The game is placed in the in the /games directory.
[x] The code is significantly different from all other games in the Sprig gallery (except for games labeled "demo").
[x] The game runs without errors.
[x] The name of the file/game contains only alphanumeric characters, -s, or _s.
[x] The game name is not the same as the others from gallery

Image (If an image is used)

[ ] The image is in the /games/img directory.
[ ] The name of the image matches the name of your file.

Thanks for your PR!

Author: Nobody
What is your game about?
It's a fanmade game of the classic Crossy Road.
How do you play your game?
WASD keys to move around. i to start the game. l to mute music, j to start music. As you cross the road the game will get faster until you die.

Added the ability to dash with L.
Added a new map after player reaches a score of 25
Added 2 new cars
A Blue car that goes twice as fast and a purple car that randomly goes forward or backwards.
Cars are randomly generated after hitting certain points.


Unnecessary scroll-bars on the Create Asset confirmation screen

windows, right?

Yes, Chrome / Win7

Easy fix for 1209.


Allow watch override ignore directories

Why this feature is required (specific use-cases will be appreciated)?
Currently there is no way for Adonis CLI to watch for tmp, resources and public folders. Since they are hard-coded into ignore list.
It would be nice, if you can add them with --watch or files in them with --ext.
Since in underlying nodemon ignore list has power over watch list files and folders. nodemon faq
It would be especially good for .edge files development in resource files
Have you tried any other work arounds?
Tried adonis serve -w /resources/* which did not work.
Also adonis serve --dev --ext edge does not work
There is possibility to add custom script into package.json but it is not as clean as using Adonis CLI. It would require installing nodemon (or anything similar) and nodemon.json config file
Are you willing to work on it with little guidance?
Yes.
Already fixed it on my fork. Not sure if it is acceptable tho

The edge files doesn't need the server to be restarted, since they are compiled on every Http request (when CACHE_VIEWS=false).
Also, the resources folder is mainly in place for frontend related code, is their any specific reason you want to start AdonisJs server when your frontend code changes.
It will be nice to have some real world examples

Aaaah..  Disabling it and all works as intended
I can't figure out currently any more use-cases for it currently. If someone has any then it might come handy.
From my point of view it can be closed :slightly_smiling_face:


Problems with nested assembly

I am currently writing the complete geometry of our experiment using this tool. Currently the latest version is available here https://github.com/lobis/gdml/ and I plan to include it in this repository as a test once it is finished (if you agree of course).
I am trying to use all the features of Kotlin and the DSL in order to make it easier to build and to increase readability, any advice would be very welcome.
The problem I am encountering is that I am using nested assembly to organize my volumes. In my case I have defined a "veto" which is included into a "vetoLayer" which is also included into a "vetoGroup" (multiple stacked layers). I hope it is easy to see in https://github.com/lobis/gdml/blob/fb485903b4e31a98697e34bad756db40a333afdd/src/main/kotlin/main.kt I have marked the relevant portions with comments/TODO.
When I create them using the "vetoGroup" approach (assembly inside assembly inside assembly) I cannot see the volumes in root (you can run the included Gdml.C script to test this). I don't think I am doing something strange, if it works with 2 assemblies nested, it should work with 3, right? From the event viewer it looks like everything is already, the volumes appear, they also appear in the .gdml file.
Perhaps this is a limitation of root itself? Please, tell me if I am missing something.
Thanks, this tool is enabling me to create very complex geometries very easily!

I think this issue should be resolved. Can I close it?

I was gonna test this today (and close it if it passes) but feel free to close it if you have tested it yourself.

No, I have not tested it, but I do not completely understand the problem. Maybe it fixed itself after the latest changes. If not, I will have to dig deeper.

Okay so I have created an example to show this. As I said, perhaps this is a limitation of root, but I will document it anyway.
If I run the following code, it should produce a grid of 5x5 boxes, which it does.
import space.kscience.gdml.*
import java.io.File

val geometry = Gdml {
    structure {
        val material = materials.composite { "material" }

        val Box2DVolume: GdmlRef<GdmlAssembly> by lazy {
            val Box1DVolume: GdmlRef<GdmlAssembly> by lazy {
                val boxSolid = solids.box(1, 1, 1, "box")
                val boxVolume = volume(material, boxSolid, "boxVolume")
                return@lazy assembly {
                    for (i in 1..5) {
                        physVolume(boxVolume) {
                            name = "box$i"
                            position { z = 5 * i }
                        }
                    }
                }
            }

            return@lazy assembly {
                for (i in 1..5) {
                    physVolume(Box1DVolume) {
                        name = "box$i"
                        position { y = 5 * i }
                    }
                }
            }
        }

        val worldSize = 100
        val worldBox = solids.box(worldSize, worldSize, worldSize, "worldBox")

        world = volume(material, worldBox, "world") {
            physVolume(Box2DVolume, name = "Boxes")
        }
    }
}

@ExperimentalUnsignedTypes
fun main() {
    File("Setup.gdml").writeText(geometry.encodeToString())
}

And the GDML generated being:
<?xml version='1.0'?>
<gdml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://service-spi.web.cern.ch/service-spi/app/releases/GDML/schema/gdml.xsd">
    <define/>
    <materials>
        <material name="material-0"/>
    </materials>
    <solids>
        <box name="worldBox" x="100.0" y="100.0" z="100.0"/>
        <box name="box" x="1.0" y="1.0" z="1.0"/>
    </solids>
    <structure>
        <volume name="boxVolume">
            <materialref ref="material-0"/>
            <solidref ref="box"/>
        </volume>
        <assembly name="assembly-1">
            <physvol name="box1">
                <volumeref ref="boxVolume"/>
                <position name="box1.position" z="5.0"/>
            </physvol>
            <physvol name="box2">
                <volumeref ref="boxVolume"/>
                <position name="box2.position" z="10.0"/>
            </physvol>
            <physvol name="box3">
                <volumeref ref="boxVolume"/>
                <position name="box3.position" z="15.0"/>
            </physvol>
            <physvol name="box4">
                <volumeref ref="boxVolume"/>
                <position name="box4.position" z="20.0"/>
            </physvol>
            <physvol name="box5">
                <volumeref ref="boxVolume"/>
                <position name="box5.position" z="25.0"/>
            </physvol>
        </assembly>
        <assembly name="assembly-0">
            <physvol name="box1">
                <volumeref ref="assembly-1"/>
                <position name="box1.position" y="5.0"/>
            </physvol>
            <physvol name="box2">
                <volumeref ref="assembly-1"/>
                <position name="box2.position" y="10.0"/>
            </physvol>
            <physvol name="box3">
                <volumeref ref="assembly-1"/>
                <position name="box3.position" y="15.0"/>
            </physvol>
            <physvol name="box4">
                <volumeref ref="assembly-1"/>
                <position name="box4.position" y="20.0"/>
            </physvol>
            <physvol name="box5">
                <volumeref ref="assembly-1"/>
                <position name="box5.position" y="25.0"/>
            </physvol>
        </assembly>
        <volume name="world">
            <physvol name="Boxes">
                <volumeref ref="assembly-0"/>
            </physvol>
            <materialref ref="material-0"/>
            <solidref ref="worldBox"/>
        </volume>
    </structure>
    <setup name="Default" version="1.0">
        <world ref="world"/>
    </setup>
</gdml>

However, if I add one more assembly layer to produce a 5x5x5 array of boxes, I get the following
Code:
import space.kscience.gdml.*
import java.io.File

val geometry = Gdml {
    structure {
        val material = materials.composite { "material" }

        val Box3DVolume: GdmlRef<GdmlAssembly> by lazy {
            val Box2DVolume: GdmlRef<GdmlAssembly> by lazy {
                val Box1DVolume: GdmlRef<GdmlAssembly> by lazy {
                    val boxSolid = solids.box(1, 1, 1, "box")
                    val boxVolume = volume(material, boxSolid, "boxVolume")
                    return@lazy assembly {
                        for (i in 1..5) {
                            physVolume(boxVolume) {
                                name = "box$i"
                                position { z = 5 * i }
                            }
                        }
                    }
                }

                return@lazy assembly {
                    for (i in 1..5) {
                        physVolume(Box1DVolume) {
                            name = "box$i"
                            position { y = 5 * i }
                        }
                    }
                }
            }

            return@lazy assembly {
                for (i in 1..5) {
                    physVolume(Box2DVolume) {
                        name = "box$i"
                        position { x = 5 * i }
                    }
                }
            }
        }

        val worldSize = 100
        val worldBox = solids.box(worldSize, worldSize, worldSize, "worldBox")

        world = volume(material, worldBox, "world") {
            physVolume(Box3DVolume, name = "Boxes")
        }
    }
}

@ExperimentalUnsignedTypes
fun main() {
    File("Setup.gdml").writeText(geometry.encodeToString())
}

GDML:
<?xml version='1.0'?>
<gdml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://service-spi.web.cern.ch/service-spi/app/releases/GDML/schema/gdml.xsd">
    <define/>
    <materials>
        <material name="material-0"/>
    </materials>
    <solids>
        <box name="worldBox" x="100.0" y="100.0" z="100.0"/>
        <box name="box" x="1.0" y="1.0" z="1.0"/>
    </solids>
    <structure>
        <volume name="boxVolume">
            <materialref ref="material-0"/>
            <solidref ref="box"/>
        </volume>
        <assembly name="assembly-2">
            <physvol name="box1">
                <volumeref ref="boxVolume"/>
                <position name="box1.position" z="5.0"/>
            </physvol>
            <physvol name="box2">
                <volumeref ref="boxVolume"/>
                <position name="box2.position" z="10.0"/>
            </physvol>
            <physvol name="box3">
                <volumeref ref="boxVolume"/>
                <position name="box3.position" z="15.0"/>
            </physvol>
            <physvol name="box4">
                <volumeref ref="boxVolume"/>
                <position name="box4.position" z="20.0"/>
            </physvol>
            <physvol name="box5">
                <volumeref ref="boxVolume"/>
                <position name="box5.position" z="25.0"/>
            </physvol>
        </assembly>
        <assembly name="assembly-1">
            <physvol name="box1">
                <volumeref ref="assembly-2"/>
                <position name="box1.position" y="5.0"/>
            </physvol>
            <physvol name="box2">
                <volumeref ref="assembly-2"/>
                <position name="box2.position" y="10.0"/>
            </physvol>
            <physvol name="box3">
                <volumeref ref="assembly-2"/>
                <position name="box3.position" y="15.0"/>
            </physvol>
            <physvol name="box4">
                <volumeref ref="assembly-2"/>
                <position name="box4.position" y="20.0"/>
            </physvol>
            <physvol name="box5">
                <volumeref ref="assembly-2"/>
                <position name="box5.position" y="25.0"/>
            </physvol>
        </assembly>
        <assembly name="assembly-0">
            <physvol name="box1">
                <volumeref ref="assembly-1"/>
                <position name="box1.position" x="5.0"/>
            </physvol>
            <physvol name="box2">
                <volumeref ref="assembly-1"/>
                <position name="box2.position" x="10.0"/>
            </physvol>
            <physvol name="box3">
                <volumeref ref="assembly-1"/>
                <position name="box3.position" x="15.0"/>
            </physvol>
            <physvol name="box4">
                <volumeref ref="assembly-1"/>
                <position name="box4.position" x="20.0"/>
            </physvol>
            <physvol name="box5">
                <volumeref ref="assembly-1"/>
                <position name="box5.position" x="25.0"/>
            </physvol>
        </assembly>
        <volume name="world">
            <physvol name="Boxes">
                <volumeref ref="assembly-0"/>
            </physvol>
            <materialref ref="material-0"/>
            <solidref ref="worldBox"/>
        </volume>
    </structure>
    <setup name="Default" version="1.0">
        <world ref="world"/>
    </setup>
</gdml>

Root visualization:

After creating this example, I can see that the generated GDML seems to be correct, so most likely this is an error on ROOT (or perhaps a limitation documented somewhere).
So looks like we are limited to two layers of assembly...
I will close the issue

I have also created a post in the ROOT forum asking for clarification: https://root-forum.cern.ch/t/limit-on-assembly-depth-in-gdml-defined-geometry/44291

The ROOT experts answered the question, as we expected it is a ROOT problem, it has to do with the visualization level, which by default is set to 3. In order to view the geometry in root one would have to do:  gGeoManager->SetVisLevel(4); for this particular case, or increase it more if there is more depth.


Warn if any of the capacity ratios are higher than default

The ratios and their defaults are:

nearfull_ratio (default: 0.85)
backfillfull_ratio (default: 0.90)
full_ratio (default: 0.05)

Except for emergency cases (had to recover from a "too full" situation), these should be set to their defaults. Otherwise cluster could get too close to its capacity before being warned.

lets maybe start by including this information in the summary and we can choose whether or not to raise an issue but need to avoid doing so unnecessarily


Fix OSD link

Found by @skibish

deployed @skibish and @vmarkovtsev at https://sourced.tech/careers/
sorry for the waiting
Many thanks @skibish for helping us to spot the bug!