getting internal server error 500 after executing workflow when is used openstack pack or mistral runner

can you please help us or analyse what could be the RC why we are getting always 500 as separate openstack commands are able to connect to openstack + execute particular action
workflow:
ubuntu@ansible-node:/opt/stackstorm/packs/mmuransky/actions/workflows$ cat wf-ref.yaml
---
version: '2.0'

mmuransky.wf-ref:
    description: OpenStack communication test
    type: direct

    input:
      - vm_name
      - image_ref
      - flavor_ref

    output:
      vm_id: <% $.vm_id %>

    tasks:
      create_vm:
        action: openstack.server.create server_name=<% $.vm_name %> image=<% $.image_ref %> flavor=<% $.flavor_ref %> nic='net-id=abe198df-fb28-42b5-8e86-a6b11f6312e8'
        publish:
          vm_id: <% task(create_vm).result.id %>
        on-success:
          - wait_for_instance

      wait_for_instance:
          action: openstack.server.show id=<% $.vm_id %> status='ACTIVE'
          retry:
            delay: 5
            count: 15

ubuntu@ansible-node:/opt/stackstorm/packs/mmuransky/actions/workflows$
metadata
ubuntu@ansible-node:/opt/stackstorm/packs/mmuransky/actions$ cat wf-ref.yaml
---
description: Test Workflow (OpenStack communication nr2)
enabled: true
runner_type: mistral-v2
entry_point: workflows/wf-ref.yaml
name: wf-ref
pack: mmuransky
parameters:
  vm_name:
    required: true
    type: string
  image_ref:
    required: true
    type: string
  flavor_ref:
    required: true
    type: string
ubuntu@ansible-node:/opt/stackstorm/packs/mmuransky/actions$

output from execution
ubuntu@ansible-node:/opt/stackstorm/packs/mmuransky/actions$ st2 execution get --detail 599c3cd37d0507671e9eb585
+-----------------+--------------------------------------------------------------+
| Property        | Value                                                        |
+-----------------+--------------------------------------------------------------+
| id              | 599c3cd37d0507671e9eb585                                     |
| action.ref      | mmuransky.wf-ref                                             |
| context.user    | stanley                                                      |
| parameters      | {                                                            |
|                 |     "vm_name": "test2_vm",                                   |
|                 |     "flavor_ref": "m1.small",                                |
|                 |     "image_ref": "ubuntu-14.04.5"                            |
|                 | }                                                            |
| status          | failed (0s elapsed)                                          |
| start_timestamp | Tue, 22 Aug 2017 14:16:51 UTC                                |
| end_timestamp   | Tue, 22 Aug 2017 14:16:51 UTC                                |
| result          | {                                                            |
|                 |     "traceback": "  File                                     |
|                 | "/opt/stackstorm/st2/local/lib/python2.7/site-               |
|                 | packages/st2actions/container/base.py", line 102, in _do_run |
|                 |     (status, result, context) = runner.run(action_params)    |
|                 |   File "/opt/stackstorm/st2/local/lib/python2.7/site-        |
|                 | packages/retrying.py", line 49, in wrapped_f                 |
|                 |     return Retrying(*dargs, **dkw).call(f, *args, **kw)      |
|                 |   File "/opt/stackstorm/st2/local/lib/python2.7/site-        |
|                 | packages/retrying.py", line 206, in call                     |
|                 |     return attempt.get(self._wrap_exception)                 |
|                 |   File "/opt/stackstorm/st2/local/lib/python2.7/site-        |
|                 | packages/retrying.py", line 247, in get                      |
|                 |     six.reraise(self.value[0], self.value[1], self.value[2]) |
|                 |   File "/opt/stackstorm/st2/local/lib/python2.7/site-        |
|                 | packages/retrying.py", line 200, in call                     |
|                 |     attempt = Attempt(fn(*args, **kwargs), attempt_number,   |
|                 | False)                                                       |
|                 |   File "/opt/stackstorm/runners/mistral_v2/mistral_v2.py",   |
|                 | line 233, in run                                             |
|                 |     result = self.start(action_parameters=action_parameters) |
|                 |   File "/opt/stackstorm/runners/mistral_v2/mistral_v2.py",   |
|                 | line 272, in start                                           |
|                 |     self._save_workflow(action_ref, def_yaml_xformed)        |
|                 |   File "/opt/stackstorm/runners/mistral_v2/mistral_v2.py",   |
|                 | line 125, in _save_workflow                                  |
|                 |     wf = self._client.workflows.create(def_yaml)[0]          |
|                 |   File "/opt/stackstorm/st2/local/lib/python2.7/site-        |
|                 | packages/mistralclient/api/v2/workflows.py", line 46, in     |
|                 | create                                                       |
|                 |     self._raise_api_exception(resp)                          |
|                 |   File "/opt/stackstorm/st2/local/lib/python2.7/site-        |
|                 | packages/mistralclient/api/base.py", line 143, in            |
|                 | _raise_api_exception                                         |
|                 |     error_message=error_data)                                |
|                 | ",                                                           |
|                 |     "error": "                                         |
|                 |                                                        |
|                 |     <title>Internal Server Error</title>                     |
|                 |                                                       |
|                 |                                                        |
|                 |

Internal Server Error

                    |
|                 |                                                              |
|                 |                                                       |
|                 |                                                       |
|                 | "                                                            |
|                 | }                                                            |
| liveaction      | {                                                            |
|                 |     "runner_info": {                                         |
|                 |         "hostname": "ansible-node",                          |
|                 |         "pid": 26155                                         |
|                 |     },                                                       |
|                 |     "parameters": {                                          |
|                 |         "vm_name": "test2_vm",                               |
|                 |         "flavor_ref": "m1.small",                            |
|                 |         "image_ref": "ubuntu-14.04.5"                        |
|                 |     },                                                       |
|                 |     "action_is_workflow": true,                              |
|                 |     "callback": {},                                          |
|                 |     "action": "mmuransky.wf-ref",                            |
|                 |     "id": "599c3cd37d0507671e9eb584"                         |
|                 | }                                                            |
+-----------------+--------------------------------------------------------------+
ubuntu@ansible-node:/opt/stackstorm/packs/mmuransky/actions$

mistral-server.log
--------------------
2017-08-22 07:18:06.980 18778 ERROR oslo_messaging.rpc.server [-] Exception during message handling: InvalidActionException: Failed to find action [action_name=create.yaml]
2017-08-22 07:18:06.980 18778 ERROR oslo_messaging.rpc.server Traceback (most recent call last):
2017-08-22 07:18:06.980 18778 ERROR oslo_messaging.rpc.server   File "/opt/stackstorm/mistral/local/lib/python2.7/site-packages/oslo_messaging/rpc/server.py", line 157, in _process_incoming
2017-08-22 07:18:06.980 18778 ERROR oslo_messaging.rpc.server     res = self.dispatcher.dispatch(message)
2017-08-22 07:18:06.980 18778 ERROR oslo_messaging.rpc.server   File "/opt/stackstorm/mistral/local/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 213, in dispatch
2017-08-22 07:18:06.980 18778 ERROR oslo_messaging.rpc.server     return self._do_dispatch(endpoint, method, ctxt, args)
2017-08-22 07:18:06.980 18778 ERROR oslo_messaging.rpc.server   File "/opt/stackstorm/mistral/local/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 183, in _do_dispatch
2017-08-22 07:18:06.980 18778 ERROR oslo_messaging.rpc.server     result = func(ctxt, **new_args)
2017-08-22 07:18:06.980 18778 ERROR oslo_messaging.rpc.server   File "/opt/stackstorm/mistral/local/lib/python2.7/site-packages/mistral/engine/engine_server.py", line 130, in start_action
2017-08-22 07:18:06.980 18778 ERROR oslo_messaging.rpc.server     **params
2017-08-22 07:18:06.980 18778 ERROR oslo_messaging.rpc.server   File "/opt/stackstorm/mistral/local/lib/python2.7/site-packages/mistral/engine/action_queue.py", line 70, in decorate
2017-08-22 07:18:06.980 18778 ERROR oslo_messaging.rpc.server     res = func(*args, **kw)
2017-08-22 07:18:06.980 18778 ERROR oslo_messaging.rpc.server   File "/opt/stackstorm/mistral/local/lib/python2.7/site-packages/mistral/engine/default_engine.py", line 55, in start_action
2017-08-22 07:18:06.980 18778 ERROR oslo_messaging.rpc.server     action = action_handler.build_action_by_name(action_name)
2017-08-22 07:18:06.980 18778 ERROR oslo_messaging.rpc.server   File "/opt/stackstorm/mistral/local/lib/python2.7/site-packages/mistral/engine/action_handler.py", line 93, in build_action_by_name
2017-08-22 07:18:06.980 18778 ERROR oslo_messaging.rpc.server     action_def = actions.resolve_action_definition(action_name)
2017-08-22 07:18:06.980 18778 ERROR oslo_messaging.rpc.server   File "/opt/stackstorm/mistral/local/lib/python2.7/site-packages/mistral/engine/actions.py", line 530, in resolve_action_definition
2017-08-22 07:18:06.980 18778 ERROR oslo_messaging.rpc.server     "Failed to find action [action_name=%s]" % action_spec_name
2017-08-22 07:18:06.980 18778 ERROR oslo_messaging.rpc.server InvalidActionException: Failed to find action [action_name=create.yaml]
2017-08-22 07:18:06.980 18778 ERROR oslo_messaging.rpc.server
2017-08-22 13:03:43.555 26277 WARNING oslo_db.sqlalchemy.engines [-] URL postgresql://mistral:***@localhost/mistral does not contain a '+drivername' portion, and will make use of a default driver.  A full dbname+drivername:// protocol is recommended.
2017-08-22 13:03:43.782 26277 INFO oslo_messaging.server [-] blocking executor handles only one message at once. threading or eventlet executor is recommended.
(END)

I was able to get this working by modifying the openstack.server.create action metadata file.
I had to add in the line pack: openstack and the reload the action.
Is the pack: openstack line necessary? Or is something broken with auto ref creation when the action has a . in the name?

i have did same test as you did but still getting 500.

edited openstack

description: null
enabled: true
entry_point: src/wrapper.py
name: server.create
pack: openstack
parameters:
availability_zone:
description: Select an availability zone for the server
type: string

reload changes
sudo st2ctl reload --register-all

execute:
sudo st2 run mmuransky.wf-ref vm_name='test2_vm' image_ref='ubuntu-14.04.5' flavor_ref='m1.small'

output from the task:
.
id: 599c41807d0507671e9eb58e
action.ref: mmuransky.wf-ref
parameters:
flavor_ref: m1.small
image_ref: ubuntu-14.04.5
vm_name: test2_vm
status: failed
error:

Internal Server Error

Internal Server Error

traceback:   File "/opt/stackstorm/st2/local/lib/python2.7/site-packages/st2actions/container/base.py", line 102, in _do_run
(status, result, context) = runner.run(action_params)
File "/opt/stackstorm/st2/local/lib/python2.7/site-packages/retrying.py", line 49, in wrapped_f
return Retrying(*dargs, **dkw).call(f, *args, **kw)
File "/opt/stackstorm/st2/local/lib/python2.7/site-packages/retrying.py", line 206, in call
return attempt.get(self._wrap_exception)
File "/opt/stackstorm/st2/local/lib/python2.7/site-packages/retrying.py", line 247, in get
six.reraise(self.value[0], self.value[1], self.value[2])
File "/opt/stackstorm/st2/local/lib/python2.7/site-packages/retrying.py", line 200, in call
attempt = Attempt(fn(*args, **kwargs), attempt_number, False)
File "/opt/stackstorm/runners/mistral_v2/mistral_v2.py", line 233, in run
result = self.start(action_parameters=action_parameters)
File "/opt/stackstorm/runners/mistral_v2/mistral_v2.py", line 272, in start
self._save_workflow(action_ref, def_yaml_xformed)
File "/opt/stackstorm/runners/mistral_v2/mistral_v2.py", line 125, in _save_workflow
wf = self._client.workflows.create(def_yaml)[0]
File "/opt/stackstorm/st2/local/lib/python2.7/site-packages/mistralclient/api/v2/workflows.py", line 46, in create
self._raise_api_exception(resp)
File "/opt/stackstorm/st2/local/lib/python2.7/site-packages/mistralclient/api/base.py", line 143, in _raise_api_exception
error_message=error_data)
start_timestamp: 2017-08-22T14:36:48.235794Z
end_timestamp: 2017-08-22T14:36:48.845907Z
result: See error and traceback.

@nmaludy I can confirm that your solution works (QualoZe0t accidently added the pack: openstack to different file.

Guys, the line action: openstack.server.show id=<% $.vm_id %> status='ACTIVE' caused the error. There is no status parameter in server.show action.

Please close the issue


[bug] "volumes

Do you want to request a feature or report a bug?

[ ] feature request
[ ] bug report

Please provide a sample input docker run command
nginx:
    ports:
        - '80:80'
    volumes:
        - '/var/run/docker.sock:/tmp/docker.sock:ro'
    image: nginx

What is the current output?*
some output

What is the expected/desired output?
some better output

Thanks for following this template and making decomposerize better for everyone else too!

My PC created this issue by mistake with unstable network...


Const overloads of rbegin/rend are missing

#include "plf_hive.h"

int main()
{
    const plf::hive<int> h;
    plf::hive<int>::const_reverse_iterator it = h.rbegin();
    plf::hive<int>::const_reverse_iterator jt = h.rend();
}

error: 'this' argument to member function 'rbegin' has type 'const plf::hive<int>',
but function is not marked const

Fixed in beta, thanks-

Fixed in beta.
On 23/04/2022 4:16 am, Quuxplusone wrote:

|#include "plf_hive.h" int main() { const plf::hive h;
plf::hive::const_reverse_iterator it = h.rbegin();
plf::hive::const_reverse_iterator jt = h.rend(); } |
|error: 'this' argument to member function 'rbegin' has type 'const
plf::hive', but function is not marked const |
—
Reply to this email directly, view it on GitHub
https://github.com/mattreecebentley/plf_hive/issues/5, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABE4FIVZCG6BTP5D5HI65MLVGLGHLANCNFSM5UCYW5AA.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


Add Check Processing to UDP health-check response

Add some checks to the response received from UDP health probes.  If system time is off by so much, then reject and remove from catalog or something.

This check should also have a timeout for the response rate of a health check.  If the health check takes too long to receive, remove node from your catalog

Added timeout for UDP receive connection for the health response.  See commit 46446dde36c25fcb072583be47172aa29e599c41

Not a priority, removing from milestone and backlogging


Use UMI for JS client

Goal
Leverage existing tooling to automate the generation of js client while allowing teams that use UMI to migrate by simply including the WNS plugin.
Proposal
Use UMI to generate JS sdk.

Is this straightforward? I'm not familiar with how we would do this.

Is this straightforward? I'm not familiar with how we would do this.

I'll get a POC up.

let me know if you'd like to join the WNS Dev Channel in Telegram


Bugfix/fix time added to everythingt

fixes #31
Its not an insanely elegant solution and doesn't cover every case (ex, a link targetSchema/Schema with custom properties requiring time), but it seems to do the trick!
I think if instead we do a 2 pass evaluation on the schema we could know better ahead of time if it is fully required or not.

Hey @FreekingDean, thanks for this! I'd not seen #31 (2014, eesh!).
I've seen other code generators (particularly gRPC) add issues like this by injecting something that does use the import but throws it away, like var _ = time.Time. What do you think about having schematic do the same? Looks like it could perhaps go at the end of imports.tmpl?

Hello! Sorry for the delay. That seems like something that would totally solve the problem in a much simpler way. :)

@FreekingDean looks like it also needed a go generate after updating the template, which I've pushed up. I verified that the generated code for the heroku schema still compiles correctly and now includes the time usage, so this looks good. Thanks for your contribution!


List mvnd on sdkman.io

Citing @gastaldi:

it would be nice to have it listed in sdkman.io

Volunteers?

Hi, would love to help out!

Thanks, @helpermethod !

This certainly looks doable, but would require standard application zip archives to be built for each platform. This could be done using the maven assembly plugin (as the project seems to be built with maven).

If it's okay for @ppalaga I could add the missing build step.

Yes, of course, adding maven assembly plugin is OK.
The question is whether we should keep publishing the plain (non-zipped) mvnd client executables on GH releases as we do today?
The unzipped mvnd client executables might be seen as easier to install for the people who do not want or can't use sdkman. OTOH, installing from the zipped ones is just one step more to document in the README. What do others think?

The question is whether we should keep publishing the plain (non-zipped) mvnd client executables on GH releases as we do today?

That's actually related but separate issue. We do not need to solve it here. But for the record: I would not mind if we stop publishing the non-zipped clients.

The native image is now packaged into a ZIP archive. Wasted endless hours trying to make the provision-maven-plugin work but finally gave up and used the maven-assembly-plugin 😭 .
I've also added additional steps to the GitHub workflow.

The zip files in https://github.com/mvndaemon/mvnd/releases/tag/0.0.3 should comply with the requirements of sdkman. What do we need to do next?

Hi, a PR for a DB migration needs to be created at https://github.com/sdkman/sdkman-db-migrations.

Hi @ppalaga,
got a little bit time today and will add mvnd to SDKMAN! as a candidate.

Hi @ppalaga,
the PR got successfully merged, sorry for waiting so long.
Looking good so far

On Mac OSX, it seems to be working but

BTW future versions of mvnd could be published via the Vendor API.
JBang and others do this too.

Hi @ppalaga,
not sure if this is related to the way SDKMAN! installs mvnd but on my Mac mvnd is not able to ever reuse a daemon

Hi @ppalaga, can we close this?

Great work, thanks @helpermethod !


problem 33

chore: problem 32 wip
feat: problem 32
chore: problem 33 wip

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

51 of 55 (92.73%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.2%) to 88.614%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/problem_32/mod.rs
51
55
92.73%

Totals

Change from base Build<PHONE_NUMBER>:
0.2%

Covered Lines:
1323

Relevant Lines:
1493

💛  - Coveralls


v0.12.0

Add support for User Agent restrictions within PlaybackRestriction
Add support for error severity and business exceptions
Add support for updated MP4 options
Fix issue with handling generated subtitle tracks
Add missing encoding_tier field to DeliveryReport

@jsanford8 Same comment from mux-csharp here - did you want to call out the license?


Oraxen Support and Salting

Is your feature request related to a problem? Please describe.
No
Describe the solution you'd like
Add support for Oraxen items.
Make an item out of pumpkin seeds or something named "Salt" that can be applied to foods to preserve them temporarily. An alternative to ice and fridges.
Describe alternatives you've considered
None
Additional context
None

Hello, I've taken your suggestion into account, but as I don't have a version of Oraxen, I can't really test the integration. If you have a version of Oraxen, would you agree to test the integration? That way I know I can start implementing it.
As for the salt, I think it's nice! I'll include it in a future update.

As i am trying to get my own salting mechanic working but i also use oraxen i will be down to supply you with oraxen so you can test it. Please add me on discord: bams7290


parentheses in selector cause loss of whitespace

sorry for the poor title, but this is what happens:
div > article p > :any(strong, b){
    color: red;
}

should be left untouched, but "article" and "p" are joined like so:
div > articlep > :any(strong, b){
    color: red;
}

Traced regression to 609c08586d583fc7d1db78b7edd8b4ac57fa5137 (v0.1.9)

The , was the trigger

#692 is fixing that


[stable/redis-ha] Adding secret list to the SA

What this PR does / why we need it:
I got this error from OpenShift: secret.secretName="something" is not allowed because service account redis does not reference that secret.
Which issue this PR fixes
NA
Special notes for your reviewer:
no
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Title of the PR starts with chart name (e.g. [stable/mychartname])

Thank you for the PR! Merging once I get the tests coming back green. @deblaci


Search boxes for datasets & workflows on the project page

Depending on how useful the search boxes are on the project list page (see https://github.com/fractal-analytics-platform/fractal-web/issues/382), we could also add search boxes for datasets & workflows on the project page (after unifying the "create button" approach, see https://github.com/fractal-analytics-platform/fractal-web/issues/383)
For this page (no mockup made so far)

New search boxes (f677e284c8acae44896fcc05e1eeb4d35d8e955e):


Remove point to PHP platform from composer.json

The main problem is to have v5.6.4 PHP version on my local machine I can't add other bundles depend of PHP >v5.3.9 (it points in platform section of composer.json) and I have next error when doing $ composer require knplabs/doctrine-behaviors:dev-master:
  Problem 1
    - Installation request for knplabs/doctrine-behaviors dev-master -> satisfiable by knplabs/doctrine-behaviors[dev-master].
    - knplabs/doctrine-behaviors dev-master requires php >=5.4 -> your PHP version (5.6.4-4ubuntu6.2) does not satisfy that requirement.

If we remove the platform information, some tests fails due to Doctrine. The 2.5 version of the ORM requires PHP 5.4, which breaks this application for PHP 5.3.

@javiereguiluz Yes, I see tests fails. I try to fix it over dependencies versions.
But I don't like this platform hack and believe we can rid it of. Lets see if I can do it.

@bocharsky-bw :+1:

this is not a platform hack. It is a way to tell composer that it should resolve dependencies compatible with PHP 5.3.9 rather than with your system PHP. The error message for mismatching php version is broken in composer though (it displays the wrong one)

And changing the Doctrine requirement is the wrong way to ensure PHP 5.3 compatibility. Any other package could bump the requirement in newer versions

It is a way to tell composer that it should resolve dependencies compatible with PHP 5.3.9 rather than with your system PHP.

My question is: why does Travis in PHP 5.3 environemnt installs Doctrine 2.5 which requires PHP 5.4?

@javiereguiluz it installs what is locked in the lock file

The symfony/symfony-standard don't use platform to test for PHP >=5.3.9. compatibility, so why symfony/symfony-demo should?
Anyway, with ~2.4.7 of doctrine/orm dependency all tests passed.

@stof so we shouldn't provide a .lock file because we want this application to work everywhere and we don't want to lock the specific versions.

@bocharsky-bw but why should we limit to ~2.4.7. Most people use 5.4, 5.5 or 5.6 ... they should enjoy Doctrine 2.5.*

@bocharsky-bw given that symfony-standard is the skeleton for user projects, configuring a PHP platform would be a bad idea (the meaningful value for your own project would be the PHP version used on your prod server, and we don't know it).
@javiereguiluz the fact that we provide an application is precisely the reason why we should provide a lock file and use the platform config to force the resolution to be compatible with our lowest PHP requirement. This is what composer does.
The weird things is the fact that we change the dependencies on Travis instead of testing the locked ones. It does not make sense for a project.
And @bocharsky-bw had an issue when trying to add a new package in the demo, because it is not compatible with PHP 5.4. this is totally expected. As we want to keep the demo compatible with PHP 5.3, we want you to have such error when you try to add this incompatible package.

OK. So then, we can close this issue as "won't fix" ?

So why we need to keep compatible with PHP 5.3.9 if we can't add any libs required >5.3.9.
IMO, it more hinders progress then we get something useful from compatibility.
It turns out that the more correct way to develop custom things based on symfony-demo is to manually remove platform and require whatever libs you want, right?

@bocharsky-bw Symfony 3 requires "php": ">=5.5.9". When this version is released at the end of November, we'll make the switch in this Symfony Demo application.

@javiereguiluz Yes, thanks.
I test some libraries using symfony demo application because it already has a sandbox and it's a very convenience for me but I stumbled on this problem and don't do this changes each time manually

@bocharsky-bw if you create your own project, you can change your own PHP requirement to drop the PHP 5.3 support. but the policy for the symfony demo is to support all PHP versions supported by Symfony.
@javiereguiluz given that the installer actually requires PHP 5.4+, we may choose to require 5.4+ in the demo too. What do you think ?

@stof I'd prefer to not make that change. Reasons:

Installer requires 5.4 because we have no other choice if we want to display the cool download progressbar that you developed. I wish we could use 5.3 there too.
The Installer was advertised as 5.4 app since day one and the installer was advertised as a 5.3 app. I prefer to maintain those promises until the massive 5.5 update that will introduce Symfony 3.


Create helpful 404 page

Is your feature request related to a problem? Please describe.
As a visitor to the website, I get frustrated when I access a page that doesn't exist and don't get any useful information about what to do.
Describe the solution you'd like
A meaningful 404 page that has better design and content than our current solution. We would like to provide visitors with the following:

A helpful message that they've hit a page that doesn't exist. Use the below text:

It looks like you've tried to access a page that doesn't exist. It's possible that what you were looking for may have moved to another location, or it wasn't here to begin with.

Browse our [course catalog] to preview what subjects Awesome Learning currently offers.

You can also browse individual lessons [by tag] to dive right into an individual lesson.

The text [in brackets] should link to the corresponding page.
Courses page: /courses
Tags page: /tags
Additional context
Our current 404 page can be found at src/templates/not-found-template.js (and a corresponding test at `src/templates/not-found-template.test.js). Make sure the snapshot test is updated (as this page is purely presentational. If this page becomes interactive, please add more comprehensive unit testing around features.)

I'd like to do it.

@charanjit-singh It's all yours!

I was just about to do it haha

@Vectormike if there are any other issues you see, or features you would like to add please feel free to open an issue or jump on one we already have, we really value your enthusiasm!

I'd like to give it a try as well :))

@charanjit-singh are you still working on this? We have a few other folks who are also interested.

i could create one. is it still open??

Hey @perun-01 I'm going to assign it to you because we haven't heard back from the other dev.

getting errors while performing npm run develop


Echo to keyboard lost after spotdl completes. Termux(Android) and Fedora Linux (Python 3.10.1)

System OS
Termux (Android)
Python Version
3.9 (CPython)
Install Source
pip / PyPi
Install version / commit hash
3.9.2
Expected Behavior vs Actual Behavior
expect keyboard to echo to screen.  commands get acted on without visual feedback. This happens across platforms as expressed the tile here.
Steps to reproduce
Run spotdl from the command line with a song, album of playlist spotify url as a single parameter. Requested download completes by leaves the console devoid of text echo to screen from keyboard or system.
Traceback
No error message given. Spotdl completes correctly; just does some bad house-keeping

Other details
No response

Can you try v4?
pip uninstall spotdl
pip install https://codeload.github.com/spotDL/spotdl-v4/zip/master

Error is corrected on both platforms using V4 from github!
Thanks!
On Thu, 13 Jan 2022, 15:43 Jakub Kot, @.***> wrote:

Can you try v4?
pip uninstall spotdl
pip install https://codeload.github.com/spotDL/spotdl-v4/zip/master
—
Reply to this email directly, view it on GitHub
https://github.com/spotDL/spotify-downloader/issues/1451#issuecomment-1012255790,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANIE6O55U7JOFSBGXCYVIVDUV3XJDANCNFSM5L36WBJQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
@.***>

Tested against the master link you gave originally. I can't reproduce the
error anymore - possibly as I am now used to specifying 'download' after
spotdl! But without a full workout, I can say if the command completes
then the echo to screen works.
Thanks!
On Thu, 13 Jan 2022 at 16:33, Jakub Kot @.***> wrote:

Pushed new commit, can use test now?
—
Reply to this email directly, view it on GitHub
https://github.com/spotDL/spotify-downloader/issues/1451#issuecomment-1012303904,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANIE6O4W4BQ4AYMJ6HNJCJDUV35GLANCNFSM5L36WBJQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
@.***>


WIP danger

          1 Warning

:warning:
Please include a CHANGELOG entry.

  Generated by :no_entry_sign: Danger


wind gust sensors allways shows mph as unit

Wind gust sensors allways created with the default unit of measurement (US - so mph) despite the configuration settings which is in my case SI.
Maybe this issue linked somehow with this? https://github.com/alexander0042/pirate-weather-ha/issues/96

You're spot on, and sorry for the slow update here! The new version is coming out today, which should address this

Ok, v1.2 is out, which should address this! I'm going to close the issue for now, but feel free to re-open if it crops up again or anything else comes up!

Thanks for the new version!
Afraid it doesn't fix the issue because after the update the unit of measurement still mph


Publish Koenig editor as standalone ember-addon

We started off this way, but it caused us problems. We merged it into Ghost-Admin for ease, and at least for now intend to keep it that way.
Once we're a little further along with developing the second iteration we may revisit this, but its not something we want to track for now.


Don't try to parse undefined

Pull Request Test Coverage Report for Build 555371909

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.1%) to 88.889%

Totals

Change from base Build 551110759:
-0.1%

Covered Lines:
239

Relevant Lines:
256

💛  - Coveralls


[SPARK-44879][PYTHON][DOCS] Refine the docstring of spark.createDataFrame

What changes were proposed in this pull request?

This PR refines the examples in the docstring of spark.createDataFrame. It also removes the examples using RDDs, as RDDs are outdated and Spark Connect won't support RDD: pyspark.errors.exceptions.base.PySparkNotImplementedError: [NOT_IMPLEMENTED] sparkContext() is not implemented.
Why are the changes needed?

To improve PySpark documentation
Does this PR introduce any user-facing change?

No
How was this patch tested?

Doctest.

Merged to master.

I think we should also include this in spark 3.5. I can cherry pick it to spark 3.5.

Let's don't since it's improvement.


Default to hijack'ing into sh if there is no bash

For example, if your container is off busybox, you don't have bash.
Can't see a good way to test this behavior in the hijack_test.go because atc isn't exposing this sort of behavior. Right?

That approach won't work; path is a binary to execute, not shell to run (otherwise we could just use that :P).
We've had an open issue for this for a while, we'd like to do it by first trying bash and then trying sh if that fails with a particular error, but we don't get rich errors back from Garden so there's no good way to tell.

Also this kind of thing is best covered by testflight.

Closing this since we have a story tracking this and it seems like this PR is dead for now.
see also #73


Is it possible to use a number instead of an icon?

Instead of using a icon menubar, could I use a number or text instead?

No one seems to know how, I'm gonna close this.

A bit late but you can do this with Tray:
mb.tray.setImage('transparent.png');
mb.tray.setTitle('123');

transparent.png is just a 1x1 transparent PNG (you can create it with imagemagick like this: convert -size 1x1 xc:none transparent.png


docs: standalone documentation

Standalone documentation built with Next.js.
Closes #18

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
241

Relevant Lines:
241

💛  - Coveralls


an alternative transfer function that won't close the upstream if downstream is closed

This PR aims to fix the write to closed pipe bug we saw in the testnet #2657. The bug is caused by transfer function closes the upstream once the the downstream is closed. So I add a new transfer_while_writer_alive function that won't the upstream automatically.
Closes #2657

Just took a look, and seems fine other than what @cmr mentioned (the first point is important). In general, if we were sticking to the strict pipe abstraction long term, I would want to figure out a more principled approach to fixing this problem rather than doing it this way, but I think this is fine to fix the bug we are seeing right now. I want to rediscuss and reapproach a more sensible and scalable abstraction (or abstractions) for handling our concurrent logic.

This differs from the built-in transfer in a few ways, only one of which is important:

(important) It closes the writer when the reader is closed. I think this is a bug. It should leave the writer open.
If the output pipe is closed, this will still hang waiting to read, which will prevent the output pipe from being GC'd until the read pipe is written to or closed. This is probably fine for how we use it.
Doesn't integrate with the Consumer infrastructure. We don't use it anywhere, so it's probably fine that this doesn't.

I disagree that 1 is bug. Actually 1 is the wanted behavior in our strict-pipe implementation. It means we actually do the cascade-closing which means close the downstream pipes as soon as possible.

Yeah, I think 1 is the correct behavior for Strict_pipes. I was comparing it to the plain Pipe transfer implementation.


Feature : Ability to launch Spyder project by shortcut

When dealing with many projects,
this is slow to switch projects after launch Spyder.
A launch  of spyder with shortcut like
spyder   --project_folder  /myfolder/
would be very useful for all.

So I think all that's necessary is to add a "Save Project Shortcut" menu item, that saves a shortcut (or even a batch file) that starts Spyder as:
spyder -p <project_path>


PLANNER-903: Made all Serializers/Deserializers internal to fix conflicts from different versions

@ge0ffrey This works with Wildfly 10.0.0.Final. I haven't tested on EAP 7 yet; should I test it on EAP 7.1.0 Beta or EAP 7.0.0?

@Christopher-Chianelli EAP 7.1.0 Beta is more important for us because we need to think long term and we need to get all our ducks in a row by the BRMS 7.0 release.

@ge0ffrey I have added your suggested changes


A mess

Sorry, but this script is a mess that is impossible to get to work on a 3060 OC. No matter what I do and which modules I upgrade, it will not produce anything positive.

The problem is that the default install with default modules do not work at all. Please refer to the portable version which works without modifications (it uses Torch 2).

I found out that the issue on my end is likely that venv doesn't catch the python version it's supposed to use on Windows, so i installed the venv using Python 3.10.9 but it executed the system default Python which was Py3.11.
I have now changed the default/primary in my path to Python 3.10.9 and am going to try training (using the UI) in a bit. If I do not add any more to this post within a day, it works, and I apologize as the issue was on my end (well, on Python's).
Still, the script should be adjusted to work with Python 3.11 which is the current version, and should update to torch 2.0.0 which is much faster.


Compute and set unique labels string on metrics

TL;DR
This PR computes a unique labels string for each metric on initialization. This is used to popular metric values during increments (so a new slice does not have to be constructed), but more importantly it fixes an issue with corrupting the global metric keys slice.
Type

[x] Bug Fix
[ ] Feature
[ ] Plugin

Are all requirements met?

[x] Code completed
[x] Smoke tested
[ ] Unit tests added
[x] Code documentation added
[ ] Any pending items have an associated Issue

Complete description
The Golang append function implementation will reuse the underlying slice if it has remaining capacity. In the current implementation, this means that when we construct a new metric with additional labels we may modify the global metricKeys slice. This may result in the corruption of labels within other metrics.
Tracking Issue
fixes https://github.com/flyteorg/flyte/issues/2597
Follow-up issue
NA

cc @honnix

Shall we add at least one test case to cover the corruption problem?

Shall we get this merged and upgrade related components?


aviv: ux/ui design

learning goals

[x] 🥚 User Empathy: You understand what user empathy is, and can use it to understand a classmate's needs and help them plan a home page.
[x] 🥚 Design Cycle: You will be able to describe the design cycle and what steps you will take in each state (Empathize, define, ideate, prototype, testing and implement).
[x] 🥚 Stakeholder Interviews: You can interview another student to learn their motivations, needs, and blocks
[x] 🥚 Rapid Prototyping: You can use rapid prototyping techniques (such as paper prototyping) to test initial design hypotheses and receive user feedback.
[ ] 🥚 User Journeys: You can write user journeys for websites that you use.
[x] 🐣 Design Principles: You can apply some of the key design principles to your own site, such as alignment, proximity, contrast, balance and space.
[ ] 🐣 Accessible Design: You will be able to make a website design more accessible.
[ ] 🐣 CSS: You can use CSS3 to implement responsive & accessible designs.
[ ] 🐣 Open Source Software: You understands the principles of open licensing and can make a contribution to a classmate's home page.
[ ] 🐥 Web Accessibility: You can navigate a web page using a screen reader, and can use semantic elements and ARIA labels to make your web pages accessible.
[x] 🐥 Figma: You can create, share and collaborate on a website design using Figma.

week 6

[x] I have pushed my progress to repo

Check-In:

I Need Help With:

understanding assignment and assignment goals

What went well?

regular and effective communication with partner. 1st and follow-up interviews, 1st client feedback. scheduling is simpler with just two ppl

What went less well?

issues understanding what we are supposed to do.

Lessons Learned

the value of conducting well planned, well structured in depth interviews
the value of good follow ups
what a project analysis looks like

Sunday Prep Work

2nd client feedback including page wireframes, write backlog and draft development strategy. start creating issues for development project

understanding assignment

interview each other
co-design each other's home pages
develop your own home page based on the co-design
retrospect together

and assignment goals

design thinking and user empathy
stakeholder interviews
collaborative design
then lots of practice with HTML & CSS as you build your page

week 7

[x] I have pushed my progress to repo

Check-In:

I Need Help With:

translating figma into html/css

What went well?

regular and effective communication with partner. learning figma through provided resources and tutorials

What went less well?

so far so good

Lessons Learned

using figma (and xd)
the advantages of prototyping a webpage

Sunday Prep Work

finish mockup and start writing code

translating figma into html/css

You can always use plug-ins that convert your design to html/CSS or  copy paste selected sections CSS right from the properties section of Figma. Even though these methods are helpful, you still have to make sure that you edit and correct the codes to your liking. That will come easier the more you are comfortable with html/CSS.  here is one detailed example on how to translate figma to code.

week 8

[x] I have pushed my progress to repo
[x] I have made a pull request to my group's partner's repo

Check-In:

I Need Help With:

navigating the wealth of information on js. where to start?

What went well?

regular and effective communication with partner. translating figma design into html/css

What went less well?

got bogged down on some issues with coding. doing better now

Lessons Learned

dont waste to much time on small details. focus on big picture and work around problems
animating css and a little bit of js

Sunday Prep Work

finish coding page, study some js

navigating the wealth of information on js. where to start?

the prep work for this Sunday might help narrow things down.  After class you should have a better idea how to move forward

dont waste to much time on small details. focus on big picture and work around problems

🚀

the prep work for this Sunday might help narrow things down. After class you should have a better idea how to move forward

thanks!


ECS CloudFormation: the WeaveScope output shouldn't be loadbalanced

The WeaveScope output goes through an ELB:

This is wrong since it leads to a split brain in the apps, affecting things like terminal spawning:
See: https://github.com/weaveworks/scope/issues/2016#issuecomment-261226026
Identical issue for the integrations repository: https://github.com/weaveworks/integrations/issues/115

@2opremio @errordeveloper
Based on the conversation in weaveworks/integrations#115 should WeaveScope be removed from the elb completely, or put behind a ELBv2?

There are a few options:

Use an ELB (I don't know what ELBv2 is) with a single Scope App instance
Output the IP or public DNS (which should be enabled in that case) of one App instances
Output the IP of public DNS of all the App instances (the user would have to pick one of them)

It seems ALB isn't a viable solution either. But we can't output a single instance from an autoscaling group either, atleast not in the cloudformation outputs.  The best we can do is probably provide a command line option along the lines of aws ec2..... Thoughts?

@2opremio thoughts?

If you want we can require Weave Cloud to deploy.  That will resolve the issue.

Fixed by https://github.com/microservices-demo/microservices-demo/pull/596. The elbv2 (ALB) works as long as sticky sessions are configured.


Current Project Status

I see the last commit was October 2015, is this project dead?  Could you provide a project status somewhere, maybe in the README.md?  It also seems the link in the repo description (http://afrogeek.github.io/SharpNative) doesn't work.  I'm looking for a C# to D compiler, if this project is dead, is there another project that has taken this task on?

Hi there,  I'd say for the D target its probably dead, the targets i've been working on lately are typescript / javascript and c++. But quite a bit busy with other work unfortunately. I'll fix the link to  http://afrog33k.github.io/SharpNative. Also unfortunately it seems there was not much interest in this product and with fully open source Xamarin. Not much for me to go by. Thanks for dropping by though 👍

Cool thanks for the info.  I'm an engineer at HP and we have a very large codebase for our enterprise printers that uses C#.  We are changing platforms and are looking into converting our code base to another language.  I'd like to go to D, but we'll need a tool for this.  If it's alright with you, I'll probably look into writing a tool and/or using this tool for this exploration.

That would be great. I'd love to see what you come up with :)


Docker containers can become ghosts

If a job terminates but that job was running docker containers, the docker containers can persist in the background and not get killed off.

As suggested by @hannes-ucsc, look at https://docs.docker.com/swarm/ before doing anything.

@benedictpaten to write up his proposal here.

Renaming to zombie as that is established Unix terminology for processes and Docker containers are processes.

@benedictpaten and I had a long chat yesterday and we built on the chat @hannes-ucsc and I had last week. We will use the inherent caching mechanism to track pids of jobs and then use the filestore context manager to allow jobs to clean up behind themselves on completion in a finally clause. On entering the filestore, jobs will check for other jobs' integrity and purge any dead jobs. Users will have the ability to register cleanup functions with toil that will be run in these situations. We will add a docker_call and a corresponding docker_cleanup function in toil-lib that can be used by any user.

Try to design this mechanism in a way that let's us do arbitrary per-job cleanup: Let's say we have a job function foo:
def foo(job):
    job.defer(myCleanUp) # register a function to be called when this function returns or raises
    job.recover(myRecovery) # register a function to be invoked before this job is to be retried
    …

The particulars would have to be discussed further. For example, we might want Toil to guarantee that either the deferred function or the clean-up function are going to be invoked, but never both. Not sure.
docker_call() would then have to be extended to exploit this mechanism. The deferred function would docker rm one specific container—the one that will be created by this invocation of docker_call, the recovery function would list all containers and kill the ones that could have been created by any number of docker_call invocations.

can we discuss this tomorrow after lunch?

@hannes-ucsc one thing to keep in mind is that the clean up function would need to run on the same node as the original job, right? This is hard to do on some batch systems, without "going around" the batch system (i.e., ssh'ing directly to the node).

yes which is why we need to chat. We were thinking of a generic cleanup that could be registered with toil. Then any job on a node can check for failed jobs and handle them

If you find a crashed job (a job whose worker process crashed before being able to run the deferred functions), you can load its recovery function and run it. You are guaranteed to run it on the same node as the one the job was run on because otherwise you wouldn't have found the crashed job by looking at its left-over caching state. Note that this looking for crashed jobs is not happens whenever a job is run, not just on retries of the crashed job. IOW, as long as there are any jobs to run on a node, cleanup will happen.
The problem arises during the end game when only zombies are left for retry. The retries may not be run on the same node as a previous attempt so on some worker nodes there is nothing triggering the code that looks for crashed jobs. I feel like this is where BatchSystem.supportsWorkerCleanup() comes in. The recovery, or garbage collection, of crashed jobs happens one last time during worker cleanup, on every node.
And yes, discuss over lunch.

This generally sounds good. The one thing that I would make clear when this is actually implemented is that the cleanup function isn't guaranteed to be executed (that whole BatchSystem.supportsWorkerCleanup()) bit. Essentially, what we're providing isn't a job cleanup function, it is a job invocation cleanup function. In a job cleanup function, one might do something like try to clean up a failed upload to S3, or etc. A job invocation cleanup function would just clean up the state of the job left on the node where it ran. Catch my drift?

And yes, discuss over lunch.

Obviously, I won't catch you all at lunch ;). Can you post a summary of whatever you discuss back here? TIA!

In a job cleanup function, one might do something like try to clean up a failed upload to S3, or etc. A job invocation cleanup function would just clean up the state of the job left on the node where it ran. Catch my drift?

Then we need to think about "how failed is a job". Either that or we write a robust cleanup function.

Then we need to think about "how failed is a job". Either that or we write a robust cleanup function.

What exactly do you mean here? I didn't quite follow.

clean up a failed upload to S3
you will clean up an upload  only if there was actually an upload that failed, right? Was there an upload in the job fn? what stage of the job did the job fail on? Did it reach an upload stage? If so, how do we find and handle the upload failure; If not what do we do?

Things like that.

Things like that.

Oh yeah, I agree. That being said, you could imagine having a job cleanup function that is guaranteed to run on any host after the job fails (perhaps, guaranteed to run before the next retry of said failed job), and then having a job invocation cleanup function that is guaranteed to run the next time a job starts on the host where said job invocation failed. The former would be sufficient for cleaning up things like failed uploads, while the latter would be sufficient for cleaning up things like ghost containers.

you could imagine having a job cleanup function that is guaranteed to run on any host after the job fails

That is what we are targeting, i believe. The plan is to have a check at every job start that looks at the state of all jobs on the worker, and deals with dead/killed jobs and their containers(through the cleanup fn). This sort of ties up to

a job invocation cleanup function that is guaranteed to run the next time a job starts on the host where said job invocation failed

as well

SGTM!

Sounds like you guys don't think we need the distinction between deferred and recovery functions. I tend to agree.

Hannes and I had a talk today and came up with a great idea of pickling/dilling job specific cleanup functions into the cache state file in the form of a list such that the cleanup of a job is on the node and is not integrated into the job store. Jobs detected to have been failed can be handled easily since the cleanup function is already defined on the node.

+1, thanks for the update @arkal

The commits should not have referred to this issue as (resolves ) but rather (connected to). We still need the fix to docker_call in toil-lib to ultimately resolve this.

Hmmm.... my bad!

No worries. I think you can make cross-repo issue references in commits so the toil-lib commit can close a ticket in toil. The syntax is (resolves #BD2KGenomics/Toil#987) I believe.

@arkal can this ticket be closed?

Not yet. This was partially resolved in #1128 but will be completed in #1189 .

@arkal Can you close this if this is done now? #1189 was merged.

yeah this can be closed. Does @fnothaft have anything to add on?


Support for draining workers

(If this PR fixes a github issue, please add Fixes #<xyz>.)
Fixes #
(or if this PR is one task of a github issue, please add Master Issue: #<xyz> to link to the master issue.)
Master Issue: #
Motivation
Support for draining function workers, to scale in a cluster.
Explain here the context, and why you're making that change. What is the problem you're trying to solve.
Modifications
Describe the modifications you've done.

added new endpoints to drain function assignments off a worker
added new endpoints to get the status of a drain operation

Verifying this change

[X] Make sure that the change passes the CI checks.

(Please pick either of the following options)
This change is a trivial rework / code cleanup without any test coverage.
(or)
This change is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:

Added the following to SchedulerManagerTest:  testDrain, testGetDrainStatus, testDrainExceptions, testUpdateWorkerDrainMap

(example:)

Added integration tests for end-to-end deployment with large payloads (10MB)
Extended integration test for recovery after broker failure

Does this pull request potentially affect one of the following parts:
If yes was chosen, please highlight the changes

Dependencies (does it add or upgrade a dependency): (yes)
The public API: (no)
The schema: (no)
The default values of configurations: (no)
The wire protocol: (no)
The rest endpoints: (yes)
[new endpoints were added under "admin/v2/worker/", related to draining nodes, and getting status of a drain op]
The admin cli options: (no)
Anything that affects deployment: (no)

Documentation
Check the box below and label this PR (if you have committer privilege).
Need to update docs?

[ ] doc-required
(If you need help on updating docs, create a doc issue)

[ ] no-need-doc
(Please explain why)

[ ] doc
(If this PR contains doc changes)

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks


Meta issue: type system extensions

This issue is to aggregate features that have been requested. If you want to add something open a separate issue, this is just for centralizing things.
The ML-family has a rich history, with many different languages and many different type system features. The most commonly requested type system features are:

Type classes (see #38, one of the first issues for Elm!)
Higher-kinded polymorphism (HKP)
Rank N polymorphism (see #238)

These requests usually come from folks coming from Haskell who want Elm to be Haskell.
There are a variety of ways to get roughly the same sort of "genericness" in your code.

type classes - the most widely known approach, used in Haskell
HKP + RankN - read Scrap your Type Classes to get the basic idea and pretend the syntax is nicer.
HKP + RankN + Implicit Arguments - On the Bright Side of Type Classes describes how this works in Agda
module functors - this is the approach used in SML and OCaml, which both have very sophisticated module systems. It lets you do tons of stuff above and beyond these other approaches. It looks like OCaml may add some implicit resolution feature as well.

I think all of these approaches are compelling, and since the very beginning of Elm, it has not become clear which is "the right choice" for Elm.
I think this talk is probably one of the best explanations I have given of the design philosophy that led to the "wait and see" approach we are taking on these topics. You can also search the archives of the elm-discuss to find the numerous and often tumultuous threads about these features.

My current leaning is to "HKP + RankN". Nothing is implicit, it's really no more verbose than our style of having everything qualified by module, and it avoids things like Monomorphism restriction, orphan instances, conflicting instances, breaking inference, etc.
But it's really hard to evaluate these things without seeing what code using them would look like.
Something to consider here, is that there two main people who write Elm code:

Library maintainers, who want to make generic code
Application developers, who want to use libraries to make their life easier.

Some of these features, like RankN types, are confusing for newcomers. But they will almost never write such a things in an enclosed application. People writing generic libraries, however, can and should understand how Elm's type system works.
Perhaps this could be codified somehow, with a flag to enable advanced features? Haskell's extension system is messy, but it does allow you to avoid accidentally coming across an advanced feature you don't understand.

These requests usually come from folks coming from Haskell who want Elm to be Haskell.

This is partially true, but in many cases it's not. People want a ready-to-go solution for generic programming. There's a huge difference between wanting fancy types, and wanting to be able to store arbitrary types in a Dict, or not have 10 different versions of forM (or whatever we'd call it in Elm) floating around in *-extras libraries for each type that implements andThen.

@JoeyEremondi I have some thoughts on this, but I believe the intention is for this issue is to open separate issues for specific ideas. Would you mind opening an issue like "HKP + RankN with no implicits" so we can discuss there and @evancz can link to it from this issue?

Here's a meta-comment on a meta-issue.
I think it's clear that whatever Elm eventually does with respect to type system extensions will need to emerge from concerns which are "native" to Elm, so to speak -- that is, it will need to (a) solve problems that are actually faced by Elm programmers and (b) make it easier to use idioms that Elm wants to encourage.
Whenever this happens, I think that the first place to look for use cases would be the Basics module, and in particular comparable, appendable and number. My reasoning is that clearly Elm has already determined that these are "fancy types" that do solve real Elm problems, and do make it easier to use idioms that Elm wants to encourage. At the moment, I presume that these types are special-cased in one way or another by the compiler. So, it seems as though one sensible question to ask about any proposal for type system extensions would be: could this extension implement comparable, appendable and number as a general-case, rather than as special-cases?
I do have other ideas for Elm-native use cases for fancy types. However, at the moment I'm still working at pushing those use cases as far as possible within the current type system, so I won't mention them yet. That is, I'm not sure yet if those other use cases absolutely need fancy types.

Gabriel Gonzalez just posted an article, where he claims:

Many of the limitations associated with Haskell type classes can be solved very cleanly with lenses.

Is this relevant for the thread?

Just a suggestion on naming should Elm go the typeclass route.
interface Monoid a where
   (<>) : a -> a -> a
     id : a

type wrap Sum = Int

implement Monoid Sum where
   (<>) = (+)
     id = 0

implement Monoid (List a) where
  (<>) = (++)
    id = []

I've found it challenging to explain typeclasses to JavaScript or OOP developers, in part due to the keywords Haskell chose. The above is an attempt to be more intuitive.

I'm not sure that's the right route for Elm... but damn that would have been so much better in Haskell. Especially with a better name than Monoid. (See also this essay I wrote the other day.)

@rtfeldman: I appreciate your comment, as I was about to raise the same issue.

@rtfeldman: I appreciate your comment, as I was about to raise the same issue.

Yes, good response @rtfeldman. I'll just add that there is not one but three special cases.

Yes, good response @rtfeldman. I'll just add that there is not one but three special cases.

It's also important to remember that we don't need these fancy types or hkp
or implicits to do custom keys in dictionaries. We just need someone to
implement dictionaries that take a comparison as an argument.
On Jan 1, 2016 10:07 AM, "Max Goldstein"<EMAIL_ADDRESS>wrote:

Yes, good response @rtfeldman https://github.com/rtfeldman. I'll just
add that there is not one but three special cases
https://github.com/elm-guides/elm-for-js/blob/master/How to Read a Type Annotation.md#constrained-types
.
—
Reply to this email directly or view it on GitHub
https://github.com/elm-lang/elm-compiler/issues/1039#issuecomment-168314244
.

It's also important to remember that we don't need these fancy types or hkp
or implicits to do custom keys in dictionaries. We just need someone to
implement dictionaries that take a comparison as an argument.
On Jan 1, 2016 10:07 AM, "Max Goldstein"<EMAIL_ADDRESS>wrote:

Yes, good response @rtfeldman https://github.com/rtfeldman. I'll just
add that there is not one but three special cases
https://github.com/elm-guides/elm-for-js/blob/master/How to Read a Type Annotation.md#constrained-types
.
—
Reply to this email directly or view it on GitHub
https://github.com/elm-lang/elm-compiler/issues/1039#issuecomment-168314244
.

@JoeyEremondi The core Dict is written in Elm, so whoever is so inclined can copy that and publish a third-party library version that does that. You could also add an equals function while you're at it...

@JoeyEremondi The core Dict is written in Elm, so whoever is so inclined can copy that and publish a third-party library version that does that. You could also add an equals function while you're at it...

Yeah, I've got a draft of this started, I just need to get around to
actually writing it.
On Jan 1, 2016 2:26 PM, "Max Goldstein"<EMAIL_ADDRESS>wrote:

@JoeyEremondi https://github.com/JoeyEremondi The core Dict is written
in Elm, so whoever is so inclined can copy that and publish a third-party
library version that does that. You could also add an equals function
while you're at it...
—
Reply to this email directly or view it on GitHub
https://github.com/elm-lang/elm-compiler/issues/1039#issuecomment-168335850
.

Yeah, I've got a draft of this started, I just need to get around to
actually writing it.
On Jan 1, 2016 2:26 PM, "Max Goldstein"<EMAIL_ADDRESS>wrote:

@JoeyEremondi https://github.com/JoeyEremondi The core Dict is written
in Elm, so whoever is so inclined can copy that and publish a third-party
library version that does that. You could also add an equals function
while you're at it...
—
Reply to this email directly or view it on GitHub
https://github.com/elm-lang/elm-compiler/issues/1039#issuecomment-168335850
.

I misunderstood.  I read the closed bugs and thought this bug was the one about tracking the meta issue and figuring out what to actually do going forward.  It sounded to me like Evan might have been actually looking at options.  I see however that it's not an appropriate place for discussion just based on the bolded statement at the top.
This thread seemed like the place where things might be moving towards implementing something to generalize the special casing.  I got a little too excited.
Back to reading the other threads and experimenting with work-arounds.

No worries, happy experimenting!

has master-level expertise in HKP and RankN … and has concluded that …

 Not again.

I think fixing this would clean up a lot of really messy code I've been writing recently. Started using Elm for work, so I can provide a lot of real world examples if it helps.

It would help very much!
On Feb 24, 2016 11:23 AM, "Christian Howe"<EMAIL_ADDRESS>wrote:

I think fixing this would clean up a lot of really messy code I've been
writing recently. Started using Elm for work, so I can provide a lot of
real world examples if it helps.
—
Reply to this email directly or view it on GitHub
https://github.com/elm-lang/elm-compiler/issues/1039#issuecomment-188416244
.

@cjhowe which extensions specifically do you think would clean up your code?

I think Type Classes are going to be needed in one way or another; perhaps we can discuss issues (if any) with the way Haskell does this, and decide whether to start thinking about a similar approach for Elm, or whether we would like to change anything? Whatever we do, it would be good to keep in mind the use case for HKTs when designing Type Classes, so that we can easily build further abstractions later on on top of this.

@tiziano88 Those are definitely not going to happen without concrete examples of what code you have in real Elm projects that is bad, that would be made better by typeclasses, that outweigh their complexity.

@JoeyEremondi definitely; I am working on a protobuf compiler for Elm (http://github.com/tiziano88/elm-protobuf for the curious -- not quite ready for general use yet) and there are a number of places where a way of saying "all those types share some of the same underlying functionality" would make things much cleaner. I will follow up here with concrete examples when I have them.

Please do follow up with examples, preferably on the [mailing list](https://groups.google.com/forum/#!forum/elm-discuss.


implement different current limiting policies for different interfaces

hello，I want to implement different current limiting policies for different interfaces, but if I initialize multiple current limiting policy class（interfaceResolver，ipResolver）, I will report an error. How to implement it?
      - id: demo1
        uri: lb://MICROSERVICES
        predicates:
        - Path=/test/**
        filters:
        - StripPrefix=2
        - name: RequestRateLimiter
          args:
            redis-rate-limiter.replenishRate: 1
            redis-rate-limiter.burstCapacity: 1
            key-resolver: "#{@interfaceResolver}"
      - id: demo2
        uri: lb://MICROSERVICES
        predicates:
          - Path=/demo/**
        filters:
          - StripPrefix=1
          - name: RequestRateLimiter
            args:
              redis-rate-limiter.replenishRate: 1
              redis-rate-limiter.burstCapacity: 1
              key-resolver: "#{@ipResolver}"

So is the above configuration throwing an exception?  It seems like that should work.  Can you provide the error you are seeing as well as a sample that reproduces the problem?

code:
@Configuration
public class CustomResolver {

    @Bean
    public KeyResolver ipResolver() {
        return exchange -> Mono.just(exchange.getRequest().getRemoteAddress().getHostName());
    }

    @Bean
    public KeyResolver interfaceResolver() {
        return exchange -> Mono.just(exchange.getRequest().getPath().toString());
    }

}

exception :
Parameter 1 of method requestRateLimiterGatewayFilterFactory in org.springframework.cloud.gateway.config.GatewayAutoConfiguration required a single bean, but 2 were found:
	- ipResolver: defined by method 'ipResolver' in class path resource [com/thunisoft/msp/gateway/resolver/CustomResolver.class]
	- interfaceResolver: defined by method 'interfaceResolver' in class path resource [com/thunisoft/msp/gateway/resolver/CustomResolver.class]

I need to initialize two beans, but KeyResolver only allows one bean to exist at the same time.

There has to be a default. Mark one @Primary.

@spencergibb @ryanjbaxter Thanks, the problem has been solved


fix(l10n): New translations

:tada: This PR is included in version 2.17.7 :tada:
The release is available on:

GitHub release
v2.17.7

Your semantic-release bot :package::rocket:


Crop Screen Rotation Crash the Application

Hi,
I know that might be my screen rotation issue but I thought you might guide me if there is anything that I can do to preventing this.
In my activity, when I start camera, after taking photo I use this CropImage library.
If I rotate my screen during cropping, and then Crop image to save the crop, then my app crashes.
Probably because my back activity is rotated.(I have implemented the CropImage at Activity Level)
I tried to lock the orientation of activity before Camera intent starts but it still happens.
Do you know any way that I can preventing this.
Or maybe stop rotating the screen at the time of Cropping?
Many thanks

Well, there is no reason for the app to crash, ever.
So my advice is to find why it happens, it doesn't happen just because of screen rotation, it's probably just a trigger.
Start by looking at the stack trace of the crash.


fix(en): gracefully shutdown en waiting for reorg detector

This PR changes the shutdown order of the external node to a more graceful one.
Why?
Currently sutting down the EN because of reorgs and inconsistency checks may be raceful and a shutting down consistency checker may bring down the reorg detector with it which would prevent the reorg detector from doing it's job in the legitimate cases of reorgs where the node actually needs to be rolled back to some previous state.
What happens currently?
The concerns have been focused around the logic of consistency checker that used to panic when an inconsistency was found. That is no longer the case (anyhow::bail! used to be panic):
https://github.com/matter-labs/zksync-era/blob/feb8a6c7053cc5e0202088f6a1f7644316e1ad05/core/lib/zksync_core/src/consistency_checker/mod.rs#L181-L183
however, this error would still unconditionally bring the node down because currently the handler for ConsistencyChecker is a part of wait_tasks that would resolve if any of the tasks has resolved:
https://github.com/matter-labs/zksync-era/blob/feb8a6c7053cc5e0202088f6a1f7644316e1ad05/core/bin/external_node/src/main.rs#L401-L404
The proposed logic works as follows:

The existing tokio::select is places inside a loop so we can process a cascading shutdown of the components
All components should gracefully obey shutting down on given tokio::sync::watch::channel.
Such a shutdown may be triggered by a system signal event, or the fact that consistency checker has found an inconsistency
Whatever happens we have to make sure that reorg detector is the last one standing, that it exits cleanly and if needed performs its rollback duties.

Taking a step back - why do we need such an (arguably) complicated logic? It's partly because we need to run the reorg detector in parallel. We have a similar case with Circuit Breaker on the main node. Is there any potential to extract some abstraction?

I also raise this because this is evidently error-prone - otherwise we wouldn't be doing this change

@RomanBrodetski actually probably i can simplify the logic with join instead of a select inside a loop + clean shutdown, that will probably work.

@montekki I think it's a good solution for now. A proper task management entity is in the plans too.


new terms for mRNA 3' cleavage factors? need advice

Hi,
The Cellular Component ontology may need fleshing out in the area of mRNA cleavage and polyadenylation factors, but I'm not sure how granular we want to get. The existing terms are:
GO:0005849 mRNA cleavage factor complex [133 gene products]
[is_a relation] GO:0005847 mRNA cleavage and polyadenylation specificity factor complex [104 gene products]
[is_a relation] GO:0005848 mRNA cleavage stimulating factor complex [5 gene products]
PMID: 18158581 is a recent review that describes these complexes in both yeast and mammals. There are many more! See Table 1 of the review. Do we want to add terms for all of these individual complexes? I'm happy to work on the yeast ones but just wanted to check whether this is our strategy, or whether we want to annotate most things to the more general term GO:0005849.
Thanks,
Maria
Reported by: mariacostanzo
Original Ticket: geneontology/ontology-requests/8217

I don't think we need to do this   until required for annotation as it would be the only child of  GO:0005847?

If required, new ticket...


[Issue] azd monitor doesn't work in devcontainer

Call azd monitor from devcontainer and get:
warning: failed to open default browser: could not open resource: exec: "xdg-open": executable file not found in $PATH

I tried "github.com/pkg/browser" OpenURL and got this:
warning: failed to open default browser: exec: "xdg-open,x-www-browser,www-browser": executable file not found in $PATH

az login and gh auth login work so there has to be a way.

@puicchan I think this was done as well, right?

Yup. In https://learn.microsoft.com/en-us/azure/developer/azure-developer-cli/troubleshoot#azd-monitor-for-development-container. Not FAQ.


Add user authentication to Printing and LED Sign APIs

Resolves #910

Fix failing build + merge conflict and we should b good to go

Addressed.

did mark zucc make this change?


added remote job finder resource

Fixes Issue
close #1739

Keep it up @dfordp! :) You're doing great! :)


Add optional DIDResolutionResult.@context to address https://w3c-ccg.github.io/did-resolution/#example

The following example (https://w3c-ccg.github.io/did-resolution/#example) shows the necessity for a @context property at the DIDResolutionResult level


No candidate for installation

I usually use my own script which grabs the download URL from https://api.github.com/repos/srevinsaju/discord-appimage/releases/latest, however I see that the download URL is not present in that json payload, anymore.
I double checked using zap as that is a recommended installation method, and got an error there as well.
[~]$ zap install discord
[FATAL] 2024/09/26 16:01:56 main.main:main.go:181 this app does not provide any candidate for installation

OK, I see that the workflow is working now that you bumped that deprecated library. I can pull the AppImage via URL in the workflow output log, and the downloaded file works.
However, it just isn't able to be installed via zap.

Same here

I have forked this repo temporarily to get it up and running: https://github.com/srevinsaju/discord-appimage/pull/16 see instructions there to pull.

just merged #16, thank you!


⚠ SPS-Stage has degraded performance

In b579eaf, SPS-Stage (https://stage.sps-platforma.ru/api/ping) experienced degraded performance:

HTTP code: 502
Response time: 4223 ms

Resolved: SPS-Stage performance has improved in 26e8b45 after 8 minutes.


change onevm provider to use template name not id

This fixes an idempotency issue where a onevm defined like this:
  onevm { 'testvm':
    template => 'ttylinux - kvm',
  }

will error on subsequent puppet runs, as the provider reads back the template ID not the name.  Error message from subsequent puppet runs:
Error: /Stage[main]/Profiles::Opennebula::Controller/Onevm[testvm]/template: change from 0 to ttylinux - kvm failed: Can not modify a VM template

This commit changes the onevm provider to look up the name of the template after reading back the template ID.  This means that subsequent puppet runs will run cleanly.
/CC @tuxmea let me know what you think

Nice. I always thought template_id is sufficient. many thanks for all the work you put into this module making it smarter and better usable.
@rwaffen feel free to merge.


New Silicon Lawsets

This PR does the following:
Removes crewsimov, makes Asimov the new default
Adds a SRM-themed lawset.
Makes the default lawset in most places asimov in lieu of one that better fits the themes Hullrot.
Adds a funny lawset for funny people.
:cl:

add: Borgs now start set to Asimov laws by default, SRM Borgs, should they come to exist now have a lawset, an additional funny lawset has been added but remains unused.
remove: Crewsimov is gone!

Remove the asimov parts. I'd rather not see someone get slaughtered by their own cyborg because default laws simply allow it.

No siree. Honestly I think it's a failure in game design that you want to put padded corners around everything rather than simply... letting circumstances and consequences happen.
Asimov was a great man, and I'm not going to stand for his legacy being tainted by a bunch of diaperfurs lobbying against this just because they're afraid of the 1.2% chance someone actually researches borgs and their special snowflake character gets absolutely demolished by them.
This is a cross I'm going to martyr myself and all the .yml I've written for you on. Silicon laws don't matter until human lives matter (the most).


Change the format

Respond to final feedback on PR #1077
When we merge this, do a merge commit, not a squash commit. We don’t want to lose the commit history from the previous PR.

Open Publishing Build Service: The pull request content has been published and here are some changed files links of this time:

Docset 1 - core-docs
https://review.docs.microsoft.com/en-us/dotnet/articles/csharp/tour-of-csharp/statements?branch=pr-en-us-1212

Status: Succeeded.
Open Publishing Report.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/csharp/tour-of-csharp/statements.md
:white_check_mark:Succeeded
View
Details

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Build validated, so I'll squash my 2 commits into one.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/csharp/tour-of-csharp/statements.md
:white_check_mark:Succeeded
View
Details

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

LGTM
@BillWagner

Merged.  Thanks for contributing @badersur


[multirun] shorter labels

The bazel labels take up a lot of room in the console, for our use case console output is pretty important.
Could we add some config that would allow for specifying some shorter name for the label.
For example with the label //apps/my-app:bin we'd like to use MA instead

Sounds reasonable. Perhaps a label_keyed_string_dict attribute to specify remapping.

sounds good to me, could perhaphs do it as a seprate attribute labeled_commands? to avoid breaking changes to the command attribute

👍


No Video Received for Live Events

Describe the issue
I'm connecting to a Live Event and subscribing to the live video, but no video frames are received.  This is working fine for regular meetings, just not for live events.  This has been working for a while for us but stopped in December 2022.
Code Snippet
The subscribe works with no error:
this.vbssSocket.Subscribe(videoResolution, mediaSourceId);
https://github.com/microsoftgraph/microsoft-graph-comms-samples/blob/master/Samples/V1.0Samples/LocalMediaSamples/AudioVideoPlaybackBot/FrontEnd/Bot/BotMediaStream.cs#L116
Expected behavior
Video frames are received
Graph SDK (please complete the following information):
<IP_ADDRESS>-alpha
Call ID
Provide the list call ids that encountered this issue. Include the time in UTC/GMT when these call have occurred.
761f6a00-b6ea-4ee1-aa4d-f594b85739bb
Logs
If required, please add logs from the SDK. (Please remove any PII from the logs before uploading)
Additional context
What other info can I provide?  I don't see any difference between Meeting and Live Event except that I need to let the bot in for a Live Event.  Once I let the bot in, it connects with no errors but does not receive video.

What is your bot application id?
<IP_ADDRESS> is an old version of the bot media SDK library from 3 years ago. Can you please try upgrading to a newer version?
https://www.nuget.org/packages/Microsoft.Skype.Bots.Media/<IP_ADDRESS>0-alpha

I tested with <IP_ADDRESS>0-alpha and I get the same result.  The bot is able to connect to the live event but does not receive any video.  What else can I try?

Is the bot able to receive the audio of the Live Event's Teams meeting? (and is not receiving just silence?) It may be the bot is stuck in the lobby.
Can you please share a recent CallId or the bot's application id.

I only hear silence.  The most recent event from today has this URL: https://teams.microsoft.com/l/meetup-join/19%3Ameeting_NzM2NDkxNTMtNzE1NC00MDk2LTkzYWItYzA3YjgzODYxOGQ5%40thread.v2/0?context={"Tid"%3A"24ed0676-67e2-4293-a8d4-28937fdb3247"%2C"Oid"%3A"daed13cd-7dc7-42e4-a429-15f9b364a09b"%2C"IsBroadcastMeeting"%3Atrue}

@ibirman
Can you please conduct a new test where you are certain that there is an active audio/video source within the Teams meeting. e.g., there is a user talking + sharing screen content.
Be sure your bot application handles the transfer from the lobby to the main meeting. While in the lobby, the bot will not be able to hear anything nor will its attempts to subscribe to video sources work. Once in the main meeting, it should be able to hear any talkers and subscribe to their video sources. Be sure to listen to the VideoSocket.VideoReceiveStatusChanged event to handle cases where the VideoSocket's MediaReceiveStatus transitions from Active to Inactive then back to Active, which will happen when the bot is moved from the lobby into the main meeting. After the VideoSocket's MediaReceiveStatus has transitioned back to the Active state, the bot will have to (re-)subscribe on the VideoSocket.

Thanks, that works!


Allow users to submit the textual version of the report

What comes out of the PDF might not be great so allow the user to also submit a textual version as textContent and also the summary

This should be calculated automatically


Auto update version in litegraph.js source file

Update package.json with the following changes:
    "devDependencies": {
        "@j-ulrich/release-it-regex-bumper": "^4.1.1",
    }

    "release-it": {
        "plugins": {
            "@j-ulrich/release-it-regex-bumper": {
                "out": {
                    "file": "src/litegraph.js",
                    "search": "    VERSION: \"(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?\",",
                    "replace": "    VERSION: \"{{version}}\","
                }
            }
        }
    }

Will break type (version int to string). Make backwards compatible change

:thinking: I'll pull it though.


Flexible timeout for commands MS sends to the agents

Description
Currently, almost every command MS sends to the agents uses the global setting wait as the timeout's value. That means, if you want to extend or shorten the execution of a command, you will affect every other command. Therefore, currently we do not have a way to customize the timeout for specific commands.
For some edge cases, we have "wait"/"timeout" hardcoded values or values that come from global settings to set the commands timeout, like for GetAutoScaleMetricsCommand and for MigrateCommand. Currently, we have 385 classes that extend com.cloud.agent.api.Command (I skipped classes that extend com.cloud.agent.api.Answer); therefore, externalizing global settings for each command  to provide flexibility is not feasible; however, we can reach flexibility by other means.
Currently, if we do not set a wait to the command, AgentManagerImpl will fallback to the wait global setting:
https://github.com/apache/cloudstack/blob/af8a582055c4194d1e42c8c1abd96969692046ed/engine/orchestration/src/main/java/com/cloud/agent/manager/AgentManagerImpl.java#L441-L443
I propose to create a table of command_timeout to store the classpath of the command and its wait/timeout. Then, instead of fall backing directly to the wait global setting, we check if there is an entry of the command in this table. If it exists, then we use the entry's value; otherwise, we fall back to the wait global setting (the current behavior). Thus, we can change the commands wait/timeout on demand and in a flexible way.
The first step of the proposal is to create the table and changing AgentManagerImpl to check the table. Some entries will already be created for hardcoded values. Further steps can be found in #8506.
Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New feature (non-breaking change which adds functionality)
[ ] Bug fix (non-breaking change which fixes an issue)
[X] Enhancement (improves an existing feature and functionality)
[ ] Cleanup (Code refactoring and cleanup, that may add test cases)
[ ] build/CI

Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale

[ ] Major
[x] Minor

How Has This Been Tested?
TBD

@blueorangutan package

@GutoVeronezi a [SL] Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

Guys, as a cloud operator (user of ACS, operator) - I don't like the idea how we do this:

For a developer, it would be fine - you can look for commands, classes etc
For a cloud operator, using this in this way - will be a nightmare and is error prone

If I got it wrong, please correct me - my understanding is we have an "empty" table/configuration list to start from, and then we expect the cloud operator to add specific command names and timeouts to this table?
That being said, I'm struggling to think of a better way, except perhaps somehow having a prepopulated list of commands in that table and very detailed documentation - to ensure that this (absolutely needed feature...) can be used by a non-developer.

Guys, as a cloud operator (user of ACS, operator) - I don't like the idea how we do this:

For a developer, it would be fine - you can look for commands, classes etc
For a cloud operator, using this in this way - will be a nightmare and is error prone

If I got it wrong, please correct me - my understanding is we have an "empty" table/configuration list to start from, and then we expect the cloud operator to add specific command names and timeouts to this table?
That being said, I'm struggling to think of a better way, except perhaps somehow having a prepopulated list of commands in that table and very detailed documentation - to ensure that this (absolutely needed feature...) can be used by a non-developer.

@andrijapanicsb, please check https://github.com/apache/cloudstack/issues/8506#issuecomment-1924648687.

Hey @GutoVeronezi , I did read it - I see we can initially add some commands in phase1 later use APIs etc - this sounds overwhelmingly complex for a non-developer human - this is my concern - how manageable this will be?
In theory, we need to document every command/class (what it is, what it does, etc) etc - which doesn't sound feasible - so that an operator can add it. And this - again - is developer-friendly, but not human/user/operator-friendly (my take on it, thus my commensts here)
Does it also cover (and again, I'm not a developer, so apologies if asking a silly one) specific timeouts for e.g. start a VM, configuring DHCP reservations inside a VR etc?
To give you a use-case:
I'm an operator, and I want to be able to easily configure timeout for some basic stuff, e.g.:

deploy a VM
starting a VM
stopping a VM
attach/detach a volume
DHCP programming of a VR while the VM is starting
etc

I'm not sure if my "expectations" (described here ^^^) are a good fit for this specific PR, as I see this PR/issue is related to the agent-side command timeouts (e.g. there is no StartVMCmdByAdmin on the list of command/classes which you provided in the https://github.com/apache/cloudstack/issues/8506#issuecomment-1924648687 - which is a management server command)

@andrijapanicsb, I made some changes in the PR's title and description to make the proposal clearer.
To put us on the same page, the proposal with this PR is to flexibilize the timeout of the commands MS sends to the agents. It was never aimed to provide API calls for operators/users.
Currently, almost every command MS sends to the agents uses the global setting wait as the timeout's value. That means, if you want to extend or shorten the execution of a command, you will affect every other command. Therefore, currently we do not have a way to customize the timeout for specific commands.
For some edge cases, there are specific global settings, like kvm.storage.online.migration.wait and kvm.storage.offline.migration.wait. Externalizing global settings for each command to provide flexibility is not interesting, as we would increase the number of global settings by almost 50%(we would also have the work to create and describe every setting, which you mentioned "doesn't sound feasible"). Furthermore, if we continue working with global settings, each command timeout externalization would require the process of (i) providing the use case; (ii) extending the platform; and (iii) waiting for a release. We know that process can take several months and, if you are an operator, you know that waiting months for a simple timeout configuration is not feasible.
The proposal is to create a mechanism to allow operators to define the timeout of the commands MS sends to the agents dynamically and in a flexible fashion. The first phase is focused on the definition of the concept; thus, it is expected to be more developer-friendly at first. However, we already have the next steps planned, as you can see in https://github.com/apache/cloudstack/issues/8506#issuecomment-1924648687, and those will make the feature user/operator-friendly (via API and GUI).
Indeed, the process of documenting all the commands will require some work, but we have contributors who are willing to do that (me and some others); thus, as it will not require efforts from the operators to document them, I do not see the problem.
It is also important to mention that it is a new feature and the current behavior is kept; thus, you do not need to use the feature if you do not want.
If you have another effortless and more straightforward proposal that addresses all of the use cases we are talking about, I would be glad to discuss it with you.
Regarding the timeout of the API calls the users do the MS, as they are a different context, we can create another issue to discuss it.

@GutoVeronezi thx for the detailed explanation on this one, I guess we'll have to go with that - I'm now more clear on the idea, and, indeed, it doesn't align with what I was "expecting" to be able to do as on operator, that would have to be a separate effort/PR

@GutoVeronezi do we need more work on this? (except for conflict resolution)

@GutoVeronezi do we need more work on this? (except for conflict resolution)

I think we are good with the code; however, I want to try it a bit more and post the tests.

@blueorangutan package

@DaanHoogland a [SL] Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

@blueorangutan test

@DaanHoogland a [SL] Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

[SF] Trillian test result (tid-10370)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 49632 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr8605-t10370-kvm-centos7.zip
Smoke tests completed. 132 look OK, 0 have errors, 0 did not run
Only failed and skipped tests results shown below:

Test
Result
Time (s)
Test File


Absolute IPv6 addresses supported

Fixes #1938
There's another problem though which causes ProtocolException. I'll fix that and force push in this PR only :slightly_smiling_face:

@mhils I was just seeing this, the current implementation would also accept something like 111.111.11
Is it okay or should it be changed?

The current implementation would also accept "nonexistent.nonexistendtld", so I guess this is fine. Good catch though. :)

Merged, thanks!


Changing facility name causes local backend fail to start

(I believe this issue happens on local only, please verify it doesn't happen on azure)
Description
Changing facility name causes backend crash when there are any results to that facility
Steps to reproduce
If applicable, add screenshots to help explain your problem.

start SR locally
add a patient and submit a test result
edit the facility name
restart SR backend
observe that the backend cant start with the following error
could not execute statement; SQL [n/a]; constraint [patient_registration_link_patient_registration_link_key]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement

Expected behavior
The backend should start normally
Additional context
Looks like this issue is related to this line of code
https://github.com/CDCgov/prime-simplereport/blob/52099f6857299994f3478c0aa36be57a996ceeea/backend/src/main/java/gov/cdc/usds/simplereport/service/OrganizationInitializingService.java#L125
Issue potentially introduced here https://github.com/CDCgov/prime-simplereport/pull/5711

looks like it’s happening because the initialization data is linking the registration link to the previous facility name. but during startup we’re trying to link it to the same facility but with its new name
so this wouldn’t happen in prod - should only happen with the create-sample-data profile
still a bug but not as concerning
I updated this section in my local and the backend starts: https://github.com/CDCgov/prime-simplereport/blob/7c651c471f4065583a36cc8900f9e978[…]/backend/src/main/resources/application-create-sample-data.yaml


Deleting Sections or Questions from Round Applications

We want to delete a question or section from round applications. How could I do this while also preserving historical data?
Is it as simple as deleting a section or question from the current Round and application? Are there other steps? Should I consider potential ramifications from this action?

Applicants that already have submitted an application will continue using the old version of the form, the form is saved with each application.
Only new applications will use the new form.
Also if you want this change in future rounds you need to make the change in the form attached to the fund as well.
Do OTF not have this documented? Questions how funds/rounds/application forms works seems to come up regularly.
If it's not documented (or badly documented) this really should be fixed!
It is a bit complex, but that is because OTF laid down some very specific demands for how it should work.

We created the following document just before launch - it is missing a clear instructions on how to alter running rounds which we should address, but it is mentioned in places.
https://docs.google.com/document/d/1Oq9dBTU0q-HSpb91wpHHq96LrxeL9pACbSYzu6ELyrs/edit?usp=sharing
I do need to add some more documentation around the core behaviour of the app generally so perhaps this is something that can be addressed there?

@fourthletter hopefully this is something that will be addressed by @todd-dembrey in the current sprint. In the meantime, do we have any user guides for this? for staff members?

@saoun We currently have documentation about rounds and other web app issues.

could you add a FAQ section to that doc that would include questions like this one, to start with? @fourthletter

@saoun The information fred provided was added to the instruction manual back in October 2019.


Delete SNAPSHOT releases from Bintray

Previously we were uploading all our snapshot releases (basically anything that wasn't the release branch) to bintray. Bintray is intended only for releases. JFrog politely informed us of this and was kind enough to give us a free Artifactory account (see #1554). We need to clean up our bintray account and use the REST API to delete all the old SNAPSHOT releases.
If you are interested in working on this, please ping @sylvanc or @seantallen on this issue.
Documentation on using the Bintray REST API can be found at https://bintray.com/docs/api/#_delete_content

I can take care of this, if someone (@SeanTAllen?) can add my bintray account (jemc, linked to my GitHub account) to the ponyc org.

Deleted the ponyc-master packages, leaving only ponyc-release packages remaining.


Sync development and master

Given we released our first complete version, i decided to sync development with master. From now, we must work from development branch and only update master when we are going to release a new version.

I'm not sure this is a common approach for open sourced gems. The usual way to develop/maintain I've seen is:

Anyone (including the maintainers) create a PR to introduce a feature/fix
The PR (once approved by reviewers and the CI) gets merged into master
Every so often (once a day, twice a week, once a week, once a month, ... whatever works best for us) one of the maintainers release a new version of the gem

The release implies updating the semver string in the gem, creating the tag/release in github, building the gem and lastly pushing the gem to rubygems (more info about releasing here)
In general by having only one main branch (master) will make it easier for anyone to jump in, clone the project and branch off from there. On the contrary, introducing a development branch will only create one more step, or better said one more "bus stop", where all contributions will remain there, until merged to master. At the end, the development branch might not be entirely necessary.

Offtopic: Have you considered on adding a changelog file? Or are the changes mentioned in every release?