react-select update

Overview

PR Checklist

[ ] Related to designs:
[ ] Related to JIRA ticket: ABC-123
[ ] I have run this code to verify it works
[ ] This PR includes unit tests for the code change

📬Published Alpha Packages:@codecademy/gamut-kit@0.6.92-alpha.a26690.0@codecademy/gamut-labs@31.0.4-alpha.a26690.0@codecademy/gamut@46.0.3-alpha.a26690.0@codecademy/monaco@0.6.32-alpha.a26690.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://6245b94ef065fd6f2dd4a999--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-kit@0.6.94-alpha.fe57b3.0@codecademy/gamut-labs@31.2.1-alpha.fe57b3.0@codecademy/gamut@46.0.3-alpha.fe57b3.0@codecademy/monaco@0.6.32-alpha.fe57b3.0<EMAIL_ADDRESS>
📬Published Alpha Packages:@codecademy/gamut-kit@0.6.94-alpha.b83f90.0@codecademy/gamut-labs@31.2.1-alpha.b83f90.0@codecademy/gamut@46.0.3-alpha.b83f90.0@codecademy/monaco@0.6.32-alpha.b83f90.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://62475dc1c5f4426a7f488b01--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-kit@0.6.94-alpha.fb738f.0@codecademy/gamut-labs@31.2.1-alpha.fb738f.0@codecademy/gamut@46.0.3-alpha.fb738f.0@codecademy/monaco@0.6.32-alpha.fb738f.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://62476b528cb09b1accbe5508--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-kit@0.6.94-alpha.aa46b7.0@codecademy/gamut-labs@31.2.1-alpha.aa46b7.0@codecademy/gamut@46.0.3-alpha.aa46b7.0@codecademy/monaco@0.6.32-alpha.aa46b7.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://62477466f3ed83006fb3130d--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-kit@0.6.94-alpha.68a6ba.0@codecademy/gamut-labs@31.2.1-alpha.68a6ba.0@codecademy/gamut@46.0.3-alpha.68a6ba.0@codecademy/monaco@0.6.32-alpha.68a6ba.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://624776a2e0935b008c442cb7--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-kit@0.6.99-alpha.a932f4.0@codecademy/gamut-labs@31.3.4-alpha.a932f4.0@codecademy/gamut@46.1.1-alpha.a932f4.0@codecademy/monaco@0.6.33-alpha.a932f4.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://624f4340b2cfdd0096ea5893--gamut-preview.netlify.appDeploy Logs

🚀 Styleguide deploy preview ready!https://6255db22d2ba601498ba462d--gamut-preview.netlify.appDeploy Logs

🚀 Styleguide deploy preview ready!https://6256f0a6c0ece33ef15e60cb--gamut-preview.netlify.appDeploy Logs

🚀 Styleguide deploy preview ready!https://6256fe52f340590094742826--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-kit@0.6.102-alpha.a2bebf.0@codecademy/gamut-labs@31.6.1-alpha.a2bebf.0@codecademy/gamut@46.1.2-alpha.a2bebf.0@codecademy/monaco@0.6.34-alpha.a2bebf.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://62570f92af7b381ad5752106--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-kit@0.6.102-alpha.549b1c.0@codecademy/gamut-labs@31.6.1-alpha.549b1c.0@codecademy/gamut@46.1.2-alpha.549b1c.0@codecademy/monaco@0.6.34-alpha.549b1c.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://625823d42fd1be1c6d9bb6b7--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-kit@0.6.103-alpha.79877d.0@codecademy/gamut-labs@31.6.2-alpha.79877d.0@codecademy/gamut@46.1.2-alpha.79877d.0@codecademy/monaco@0.6.34-alpha.79877d.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://6259812e5a3dce006b04cad7--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-kit@0.6.106-alpha.3f3095.0@codecademy/gamut-labs@31.8.2-alpha.3f3095.0@codecademy/gamut@46.1.3-alpha.3f3095.0@codecademy/monaco@0.6.35-alpha.3f3095.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://6259c0d33a15b90e5d95cb72--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-kit@0.6.106-alpha.a678f7.0@codecademy/gamut-labs@31.8.2-alpha.a678f7.0@codecademy/gamut@46.1.3-alpha.a678f7.0@codecademy/monaco@0.6.35-alpha.a678f7.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://625ece8ed61e4121b532acdd--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-kit@0.6.107-alpha.b54b4a.0@codecademy/gamut-labs@31.8.3-alpha.b54b4a.0@codecademy/gamut@46.1.3-alpha.b54b4a.0@codecademy/monaco@0.6.35-alpha.b54b4a.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://62616250d8391c6dbc26519f--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-kit@0.6.112-alpha.d4ae32.0@codecademy/gamut-labs@31.11.1-alpha.d4ae32.0@codecademy/gamut@46.1.4-alpha.d4ae32.0@codecademy/monaco@0.6.36-alpha.d4ae32.0<EMAIL_ADDRESS>
📬Published Alpha Packages:@codecademy/gamut-kit@0.6.113-alpha.9860a1.0@codecademy/gamut-labs@31.11.2-alpha.9860a1.0@codecademy/gamut@46.1.4-alpha.9860a1.0@codecademy/monaco@0.6.36-alpha.9860a1.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://6266b9102595a0242434b9de--gamut-preview.netlify.appDeploy Logs


Single DSL API entry point

Context:
One of jOOQ's greatest design decisions, IMO, is to put everything static in a single class namespace (org.jooq.impl.DSL), knowing that the only reason why there is even a class wrapper is because Java doesn't support package level functions, like e.g. kotlin or other languages. Personally, I think that was a mistake in early Java. A static method doesn't really need a class namespace.
The benefit of putting everything in a single class is discovery. Users never have to remember what namespace to look into for things. Also, namespaces don't have to be "evolved," because they're simply absent. What if a better name comes up? What if two names really are the same and should be refactored (e.g. Conditions and Predicates, see below)?
Cypher DSL:
In cypher-dsl, there are multiple such entry points, e.g.:

Clauses
Conditions
Cypher (where I first expected everything to be contained in)

It contains e.g. literalXYZ() or parameter() constructors, which I would have expected in Literals or Parameters

Expressions
Functions
Operations (synonyms of virtual methods on Expression?)
Predicates (how is it different from Conditions?)
Perhaps others?

As mentioned before, I had to learn this and look up things using the IDE, hoping it would scan all the class candidates for possible static imports, making assumptions about method names. That's OK, it still works but:

What if I don't know the method name, and would just like to "discover" options?
What if I wanted to look at the structure view (IntellIJ) or outline view (Eclipse) to see all the options, alphabetically?

Eventually, a power user will learn the namespace, and it doesn't matter anymore. But for a beginner, I think the single namespace approach is more user friendly.
Possible evolution:
I don't know if you agree with the above. If you don't, just reject this issue. If you do, you could place a delegate method in the Cypher class for every other expression/function constructor from the other classes, e.g.:
public final class Cypher {
    public static @NotNull CountExpression count(PatternElement requiredPattern, PatternElement... patternElement) {
        return Expressions.count(requiredPattern, patternElement);
    }
}

Benefits:

Implements the above expectations
Backwards compatible

As you already realized, I'm torn… I started with Namespaces and on the way, I struggled myself.
Not rejecting this, will think about it for a moment. Thanks a lot for the effort phrasing it out 👍

I can only agree with @lukaseder, as a user of the first hour I too often have the problem that I first search for a function in Cypher only to find that I have to search for it in one of the various other classes.

Thanks a ton for the effort and the good discussions, @Andy2003 🙇


Context Card

First pass of context card -- might need some tweaking later as we put it with other components.

@ckopecky thanks for opening the PR. I made some comments, everything else looks goods.
Can you do the following:

request a review in the pull request when you are ready for it to be merged.
Sign up for the Actions beta beta so the tests can run.
Add screenshots to the PR so I can review without cloning and running locally.

I signed up for Actions Beta and made sure it has permission to run third-party checks.  Anything else I need to do to have it run those tests? @bdougie

I signed up for Actions Beta and made sure it has permission to run third-party checks. Anything else I need to do to have it run those tests? @bdougie

I have fixed this in this PR: https://github.com/bdougie/open-sauced/pull/364
If you re-run the checks and send a new push it should work.

I'll go get laptop and run a git pull. Let you know when it's done

@bdougie ran tests and then pushed after I updated from a git pull -- I'm still not seeing it perform all the checks.

I was looking at the storybook.yml file....there's a condition that looks for your repo specifically before running the check. If it's coming from my fork, will it still do the action?  @bdougie

It’s fine the these aren’t affecting the tests anyway it’s just blocking me from on my phone. I will merge soon.


Allow flexibility in automatic instrumentation

Is your feature request related to a problem? Please describe.
Currently we have a single INSTRUMENTED config value that turns all instrumentation on/off. I think it would be useful to have some more flexibility.
In my particular use case for example, I would like to customise the requests instrumentation in my project which requires me to disable the out-of-the-box instrumentation. The easiest way I've found to do this is:

Set INSTRUMENTED: false in config
Vendor in logic found in elasticapm.instrumentation.register, elasticapm.instrumentation.control, to customising the _cls_register set to include my own instrumentation for requests.
(Additionally for flask) Subclass elasticapm.contrib.flask.ElasticAPM, overriding the init_app method so that I can register the request_started, request_finished signals.

Side note re: flask - I think this may be a bug, depending on your perspective. In other places in the project e.g. Django instrumentation, the INSTRUMENTED config value refers only to instrumentation logic found in elasticapm.instrumentation (AbstractInstrumentedModule subclasses). Whereas in the flask module, it additionally prevents registering of the above flask signals.
Describe the solution you'd like
A way to customise exactly what gets instrumented from config, opt-in and opt-out.
Describe alternatives you've considered
Possible implementations:

Exclusion/inclusion override lists of modules to instrument, e.g.

Config:
    instrument_exclude = ["requests", "celery"]
    instrument_include = [("requests", my_custom_instrumentation_module_name)]

or
Config:
    instrument_overrides = [
        ("requests", my_custom_instrumentation_module_name),  # to replace
        ("celery", None),  # to disable
    ]

Config value that overrides elasticapm.instrumentation.register._cls_register. A "raw" solution. This however would require the client to specify the module names which are internal to elasticapm (probably less than ideal).

Does anyone have any thoughts on this? Please correct me if I have overlooked something that makes this easy in the current version. Thanks.

Hi @ramshaw888
I agree, this is a feature we'd really like to implement. Unfortunately, there is one roadblock that I wasn't able to get around yet: All our configuration is per-agent-instance and loaded when the agent is instantiated, while instrumentation is process wide and needs to be executed as early as possible during startup of the app. This makes it basically impossible to use our existing configuration setup for the list of instrumentations. I considered limiting this particular setting to environment variables only, but defining a long list of import paths via environment variable is pretty cumbersome.


[Hold #40153] [$250] [Held requests] Violation overrides hold in the dot separator on expense preview

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.4.69-0
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @JmillsExpensify
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1714578430463419
Action Performed:

Prerequisite: Create a Collect workspace as user B, require categories, invite user A
Create several expenses in the account for user B and submit them to the workspace. For one of the expenses don’t set a category
As user B, click into the report with user A’s expenses.
Tap on the expense that doesn’t have a category
Hold the expense
Navigate back to the report

Expected Result:
The dot separator for the expense preview says Cash * Hold
Actual Result:
The dot separator for the expense preview says Cash * Review required
Workaround:
unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/38435837/4fb68ab4-e1bf-451a-820b-2f83f2b30827

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~019469a51db3b3fcb0
Upwork Job ID:<PHONE_NUMBER>084987904
Last Price Increase: 2024-05-14

Issue OwnerCurrent Issue Owner: @c3024

Thanks for the updates and applying project/status.

Setting external, missed the label last week. 🤦♀

@strepanier03 Please hold this issue for #40153 as this will likely be fixed in that PR.

On hold for #40153

On hold

On hold

@Krishna2323 Can you please confirm that the issue is still reproducible and if your proposal addresses it? Thanks!

@robertjchen This has been fixed and can be closed.

Thanks for the confirmation!


Edit text -> save -> images doublicated

django===1.8.7
djangocms==3.3.3
djangocms-text-ckeditor==3.1.0
django-filer==1.2.6
cmsplugin-filer==1.0.0

After updating the cms (3.2.X --> 3.3.3) and the ckeditor (2.8.1 --> 3.1.0), I'm observing a very strange behavior.

The embedded image is no longer recognized as a cmsplugin.

When I edit text that has one or more embedded cmsplugin-filer-image plugins, the images are doublicated after saving.
Here's a visual example.

Before editing:

After editing:

In structure mode, however, it says that there is only on image instance:

When editing the plugin again, only one of the two images behaves like a child image plugin is supposed to.

Here's the one that does:

And here's the one that doesn't:

When I add a fresh instance of a text plugin to the placeholder (on the same page), the described behavior can not be observed. I applies only to text with nested images that existed prior to the updates.

Have you come across this yet? Do you have any suggestions on how to tackle this?

Could you check the source before saving? (preferably click source, go back, click source again)
The reason why this might happen is the <cms-plugin> tag that wraps the image is incorrectly unwrapped by ckeditor resulting in:
<cms-plugin ...>
</cms-plugin>

instead of
<cms-plugin ...>

</cms-plugin>

What happens on save is you have one image that is a cms plugin, and another is just an image in the markup (because whatever is in between cms-plugin tags gets always replaced by the contents of that plugin).
I would recommend upgrading to a more recent version of djangocms-text-ckeditor, as I remember fixing those bugs

I'm not entirely sure what you mean by

click source, go back, click source again.

But here is what I've done:
1. Edit mode, but not edited yet

2. Edit mode, after saving

We're using a custom template here for the cmsplugin-filer-image plugin.
But it doesn't look like the  is outside of the <cms-pugin >, does it?

Oh, I meant "Source" button in ckeditor, "Quellcode" on your screenshots
Is the problem still there after updating? Custom templates are fine.

Hi.
Yes, the problem is still there after updating.
Here are some more screenshots:
1. Source code before saving:

2. Source code after saving:

Hope that's what you meant!

That's exactly what I meant, thanks.
So based on screenshots it looks like the problem I was describing.
Could you please show your ckeditor settings from settings.py (and if they reference any external js configuration files i'd like to check them out too) and also check if /templates/cms/plugins/widgets/ckeditor.html is overridden in your project? (e.g. which js file does it reference and does it match this one https://github.com/divio/djangocms-text-ckeditor/blob/3.4.0/djangocms_text_ckeditor/templates/cms/plugins/widgets/ckeditor.html#L10

settings
CKEDITOR_SETTINGS = {
    'language': '{{ de }}',
    'toolbar_CMS': [
        ['Source'],
        ['Undo', 'Redo'],
        ['cmsplugins', '-', 'ShowBlocks'],
        ['Format', 'Styles'],
        '/',
        [ 'NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', '-', 'Blockquote', 'CreateDiv', '-', 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock', '-', 'BidiLtr', 'BidiRtl',],
        [ 'Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', ],
        [ 'Bold', 'Italic', 'Underline', 'Strike', 'Subscript', 'Superscript', '-', 'RemoveFormat'  ],
        [ 'TextColor', 'BGColor'  ],
    ],
    'toolbar_HTML': [
        ['Undo', 'Redo'],
        [ 'Bold', 'Italic', 'Underline', 'Strike', 'Subscript', 'Superscript', '-', 'RemoveFormat'  ],
        [ 'NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', '-', 'Blockquote', 'CreateDiv', '-', 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock', '-', 'BidiLtr', 'BidiRtl',],
    ],
    'skin': 'moono',
    }
TEXT_ADDITIONAL_TAGS = ('iframe',)
TEXT_ADDITIONAL_ATTRIBUTES = ('scrolling', 'allowfullscreen', 'frameborder')

template
/templates/cms/plugins/widgets/ckeditor.html is NOT overridden.

If you're saying 'it looks like the problem I was describing', do you mean that you've come across this before?
My client is getting a little impatient on this problem, as they can't really edit any text content with images in it...
Do you think this is solvable without too much manual work?

Yes, it's something that I think should've been fixed in https://github.com/divio/djangocms-text-ckeditor/issues/353
As to how solvable it is - don't know for sure.
Could you try loading your site styles inside ckeditor? Like shown here: https://github.com/divio/djangocms-text-ckeditor/blob/master/README.rst#inline-preview
I'm going to try to reproduce on a clean project, but can't promise it'll be fast

You mean adding these two lines to CKEDITOR_SETTINGS?
'stylesSet': 'default:/static/js/addons/ckeditor.wysiwyg.js',
'contentsCss': ['/static/css/base.css'],

Yes. The css one is more important (and it has to match your project's css path).

For the default:/static/js/addons/ckeditor.wysiwyg.js I'm getting a 404.
The styles seem to have an effect, but the image is still not recognized as a cmsplugin-filer-image instance.

Could you try putting this file under that path https://github.com/divio/django-cms-explorer/blob/master/static/js/addons/ckeditor.wysiwyg.js ?

I did that. I doesn't change anything...
But in another Text with images this is showing up in my console:

Sadly i can't reproduce an issue on a blank project with

xx

as plugin markup. I'll investigate more

Is there anything else I can assist with? Would it be helpful to see another set of screenshots of cms==3.2.1 + djangocms-text-ckeditor==2.8.1?

i don't think cms 3.2.1/ckeditor 2.8.1 would be helpful, too much changed since then. it would be helpful if you could try reproducing that on a reduced environment we can debug afterwards, e.g. sample project on github, but otherwise i don't know
@czpython maybe you could think of something?

Kind sir. I have set up an example project: https://github.com/creimers/ckeditor_bug
Unfortunately, I haven't been able to reproduce the faulty behavior so far. Leaves me a bit puzzled.
I will try to reproduce this with the original project and a clean database.
For a better understanding: Where do you think this bug most likely resides? Is it a django thing or a javascript thing?

I have another interesting detail to share (I hope).
I rolled back to the cms==3.2.1 and ckeditor==2.8.1 version.
When editing that image embedded in text, all I get to see is a placeholder:

Source:

Upon right clicking that placeholder, I get the CMSPlugin menu, however.

This is also strange, isn't it?

The bug most likely resides in JavaScript and in the way the markup is handled by browsers. I.e. the browser encounters some markup that isn't valid - and tries to unwrap it to the best of it's ability, e.g

 becomes

. So somehow the browser unwraps the <cms-plugin> tag to be separate, and it's contents are put next to it. Which would explain why it would appear twice after save - one would be real plugin, the other - hardcoded source of it.
The 2.8.1 behaviour is correct, we didn't have "inline preview" before 3.x and plugins were rendered as images. (which was a problem in itself because plugins can have arbitrary markup inside that is not compatible with how image is viewed by browsers - and so real output of text plugin would be different from what is inside it's "Source" view)

I'm considering to downgrade the whole system again to cms==3.2.1 and ckeditor==2.8.1, as the client really needs to work with the system. Should that be painless, or would you advise against it?

I did indeed downgrade the system to cms==3.2.1 and ckeditor==2.8.1. It 'solves' the problem for now.
What it also does: it gives me these empty tags in the text where there used to be the duplicated image... can that be a trace?

While downgrading works for now, it can't be a solution. I really want to keep my project dependencies up to date, as you will understand.
I was thinking: would it be helpful if I were to provide to you a stripped down dump of my database in the original cms==2.8.1 state together with a reduced project replicate? So you could experience the phenomenon on your own machine?

Well 2.8.1 doesn't have any special handling for <cms-plugin> tags - so it seems like a leftover from downgrading. I thought this migration was supposed to handle that https://github.com/divio/djangocms-text-ckeditor/blob/master/djangocms_text_ckeditor/migrations/0004_auto_20160706_1339.py#L52-L58 /cc @czpython
Anything that would help us reproduce the issue would be good, since so far we couldn't

@vxsx Can your provide me with your bitbucket username? I prepared a repo in which this behaviour is reproducible.

@creimers same as on github, vxsx

Experiencing the same problem, clean install, no overrides of the text editor JS/CSS
Is there any mitigation that could be used for this?

I am running on Divio, so if you guys are using the platform as well, I should be able to give you access to the stage server. Also, our editor has reported that this is happening only when more than one image is present on a page.

@petrklus it might also be invalid markup of the plugin that's inlined (unclosed tag etc)
but otherwise - send me the project id via intercom, i'll take a look

@vxsx Thank you very much! Just sent you a message via Intercom with staging URL where the problem can be reproduced

@petrklus I answered on intercom, i believe it's fixed by the https://github.com/divio/djangocms-text-ckeditor/pull/415 in 3.5 release of djangocms-text-ckeditor

@vxsx Just update to 3.5 and still seeing the same issue (re-build the test page to be on a safe side).
On every save, each image gets duplicated

@creimers does 3.5 solve your issue? It does not seem to help me

Correction - 3.5 does seem to be fixing it (Just make sure you delete all old templates/static files Divio project init brings in to make sure it's really running all 3.5 html/css).
Thanks to @vxsx for assistance today.

@petrklus Yes, upgrading to 3.5 solved the issue for me. Also, I had invalid markup in my image plugin template.

Hi peoples,
i'm upgraded to 3.5 version, but dosen't resolved this problem.
Continue to duplicate the images.

@flaviocampiteli did you purge the static folder contents that had the old scripts in?

This is still a problem for me.
Here are my exact steps to reproduce.
# Clone the example repository.
git clone git@github.com:django-cms/django-cms-quickstart.git

Now open django-cms-quickstart/backend/settings.py and uncomment or remove the djangocms_bootstrap4 apps (line 66 to 80).
    # 'djangocms_bootstrap4',
    # 'djangocms_bootstrap4.contrib.bootstrap4_alerts',
    # 'djangocms_bootstrap4.contrib.bootstrap4_badge',
    # 'djangocms_bootstrap4.contrib.bootstrap4_card',
    # 'djangocms_bootstrap4.contrib.bootstrap4_carousel',
    # 'djangocms_bootstrap4.contrib.bootstrap4_collapse',
    # 'djangocms_bootstrap4.contrib.bootstrap4_content',
    # 'djangocms_bootstrap4.contrib.bootstrap4_grid',
    # 'djangocms_bootstrap4.contrib.bootstrap4_jumbotron',
    # 'djangocms_bootstrap4.contrib.bootstrap4_link',
    # 'djangocms_bootstrap4.contrib.bootstrap4_listgroup',
    # 'djangocms_bootstrap4.contrib.bootstrap4_media',
    # 'djangocms_bootstrap4.contrib.bootstrap4_picture',
    # 'djangocms_bootstrap4.contrib.bootstrap4_tabs',
    # 'djangocms_bootstrap4.contrib.bootstrap4_utilities',

Now we build the docker container and start everything.
docker-compose build web
docker-compose up -d database_default
docker-compose run web python manage.py migrate
docker-compose run web python manage.py createsuperuser
# of course just pick a user name and password
docker-compose up -d

Go to http://<IP_ADDRESS>:8000/
Log in with the just created account
Create a new page ((any Title and Slug)
Add Content "Text"
Add CMS Plugin Image
Upload any image file and select it.
Under Advanced settings add an arbitrary caption text.
Under Link settings add an arbitrary external URL
Press OK
Press Save
Publish changes
Edit the page again
Edit the text again
Press save again
The image is now duplicated

Please confirm the reproduction and reopen the issue.

@creimers  could you please reopen this issue?

@creimers Thank you.
@crydotsnake I did not want to “clutter” the tracker with to many issues. If it is the same problem, then, I thought it would be best to not create a new issue. But different projects have different policies.
Anyway if would be great, if someone can confirm my reproduction steps.

Sorry, I can only guess: Have you tried to set TEXT_SAVE_IMAGE_FUNCTION = None in settings.py as proposed in the djangocms-bootstrap4 readme?
AFAIK djangocms-text-ckeditor has a different by-default-setting and djangocms-bootstrap4 only works with drag and drop disabled.

@fsbraun sorry, I used the wrong phrase. I meant “out comment”, not “uncomment” the djangocms bootstrap4. Djangocms bootstrap4 is in the part of the django-cms-quickstart repository, but for reproduction of this issue, I needed to remove it.


mpvScripts: Make more of occivink's scripts available

Description of changes

Some mpv scripts from occivink's mpv-scripts collection were already available from pkgs.mpvScripts. This change makes the crop and encode scripts also available.
Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

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

3 packages built:

mpvScripts.crop
mpvScripts.encode
nixpkgs-manual

Changes LGTM but I think there should be a separate commit for each script added.

mpvScripts.crop: init at 0-unstable-2024-01-11
mpvScripts.encode: init at 0-unstable-2024-01-11

That way we know when these scripts were added to nixpkgs and at what version.

Thank you for the feedback @donovanglover, I agree that separate commits per script would be better. I've applied your suggested changes now!

Ah so much happening in nixpkgs that it's easy to lose track of it all... I'll keep that in mind for future contributions.


[FR] Multiple tokens and scopes for API access per user

Problem
We currently do not support access scopes (see Github) for tokens and only one token per user.
Suggested solution
Tying a token to a user is fine, you just should never show the token again after initial creation. Also, tokens give users no option to make restrictions for tokens so there must be 100% trust in the device and app a token gets added to.
Needed:

[ ] multiple tokens per user
[ ] maschine identifiable token format (GH token format -> detection through GitHub sec team)
[ ] scopes per token
[ ] new flows that never exposes a token to an API or UI after creation
[ ] token creation endpoint
[ ] scope endpoint needs to be checked

Describe alternatives you've considered
The current solution with very limited app selection by core contributors should be fine.
Examples of other systems
Github, Gitlab, Nextcloud
Do you want to develop this?
Yes

@matmair very good point.
The mobile app will need to be updated too, it makes use of the persistent tokens

@SchrodingersGat the flow should not change too much. I have never used the app but I think it should be fine.
In a further step, a modern web-based auth workflow would be great.

a webview popup to the inventree instance opens
the user logs in (with basic auth, SSO, MFA or whatever)
grants the app all needed privileges
the webview closes and returns the app token to the token

This is how OAuth flows handle auth. I like it because it is very seamless to the user, the app never gets credentials and new auth methods/flows are only implemented in web. When requirements change the token gets revoked and the app just calls up the auth flow again. thoughts @SchrodingersGat ?

Please also consider using WebAuthn for authentication, as it is supported by most browsers. It will open possibilities like using hardware security keys and touch/face id.
Quick guide: https://webauthn.guide
Demo: https://webauthn.io

@rkalman that has nothing to do with this FR, please open a separate FR if you want this implemented.
WebAuthn is for interactive user authentication, this FR is about long-lived m2m/app access.
If you want to have WebAuthn, fido2 or u2f you will have to implement/sponsor it as I personally looked into it and find the hassle of implementing it securely not worth the time with TOTP already present.

This might be a good library to use: https://florimondmanca.github.io/djangorestframework-api-key/

Looks good

One limitation of the library linked above is the tokens are not internally linked to users.
This post might be a good reference, it extends the model we are already using:
https://idiomaticprogrammers.com/post/how-to-implement-auto-expiring-token-in-django-rest-framework/

Looks interesting - we could use this with some simple additions.
I will mark this for Hacktober and tackle it after the end of the event if no one is interested in implementing.

I have a WIP underway for this :)


panic: dial tcp <IP_ADDRESS>:3306: connect: connection refused

tried solutions (non are helping) please help...
d, err := gorm.Open("mysql", "akhil:Axlesharma@12@/simplerest?charset=utf8&parseTime=True&loc=Local")

and starting server with this code of http.ListenAndServe("localhost:9010", r)
getting this error panic: dial tcp <IP_ADDRESS>:3306: connect: connection refused
Then tried a solution mentioned #VonC but not working
	d, err := gorm.Open("mysql", "gauhun:startProj@123@tcp(localhost:5555)/bookBase?charset=utf8&loc=Local")

got no issue in terminal but postman throws this error Error: socket hang up

I have the same issue, did you find the solution?


Rename ASP.NET 5 to ASP.NET Core and other general cleanups

ASP.NET 5 -> ASP.NET Core
MVC 6 -> ASP.NET Core MVC
MVC 5 -> ASP.NET MVC
ASP.NET Identity -> ASP.NET Core Identity
Entity Framework 7 -> Entity Framework Core
Core CLR, CoreCLR -> .NET Core
Visual Studio 2015 -> Visual Studio
Remove product source GitHub links
Cleanup sample code GitHub links and standardize text
Remove WebSocketMiddleware content
project.json -> project.json
Remove explicit https://docs.asp.net links
Use contents directive
Move author links to authors.txt
Clean up whitespace

@shirhatti @Rick-Anderson @rachelappel @ardalis Please review.

Stuff not in scope for this PR:

Updated Getting Started content (blank for now)
Updated API ref
Update package IDs and API ref links
Update articles for RC2

https://github.com/aspnet/Docs/blame/master/aspnet/tutorials/your-first-aspnet-application.rst#L91
.NET Core 5?

:shipit:


KOGITO-1699 - Unify configuration for KogitoApp deployments in BDD tests

Configuration table for KogitoApp:

first column
second column
third column

config
native
enabled/disabled

config
persistence
enabled/disabled

config
events
enabled/disabled

build-env
<name>
<value>

runtime-env
<name>
<value>

label
<name>
<value>

build-request
<name>
<value>

build-limit
<name>
<value>

runtime-request
<name>
<value>

runtime-limit
<name>
<value>

Steps added by @Sgitario which need to check requests and limits will use the subset of that table.
By default, if JAVA_OPTIONS env variable is not set, it will be set to -Xmx2G so we have more stable resources assignment to test with.
Let me know what you think about it.

Is this PR ready to merge?

All comments should be addressed now.


B-21367 Added validation rules for adding third address without a second address

B-21367
Summary
Added new rules to MTO & PPM shipment validations to prevent tertiary addresses from being added/updated without a second one present. Additional utility functions added as well to support testing.
How to test.

Open Dbeaver and find a move ID to use later. Move should be in approved status

Open Postman, and run http://primelocal:3000/prime/v3/mto-shipments using the following JSON
{ "moveTaskOrderID": "99783f4d-ee83-4fc9-8e0c-d32496bef32b", "shipmentType": "PPM", "requestedPickupDate": "2024-01-01", "estimatedWeight": "1776", "pickupAddress": {  "id": "tp1",  "city": "Beverly Hills",  "postalCode": "23231",  "streetAddress1": "12 Any Street",  "StreetAddress2": "P.O. Box 1234",  "state": "CA" }, "tertiaryPickupAddress": {  "id": "tp1",  "city": "Beverly Hills",  "postalCode": "23231",  "streetAddress1": "12 Any Street",  "StreetAddress2": "P.O. Box 1234",  "state": "CA" },  "destinationAddress": {  "id": "tp2",  "city": "Beverly Hills",  "postalCode": "23231",  "streetAddress1": "12 Any Street",  "StreetAddress2": "P.O. Box 1234",  "state": "CA" }, "ppmShipment": {  "expectedDepartureDate": "2024-01-01",  "estimatedWeight": 2500,  "hasProGear": false,  "sitExpected": false,  "pickupAddress": {      "id": "ppmp1",    "city": "Beverly Hills",  "postalCode": "23231",  "streetAddress1": "12 Any Street",  "StreetAddress2": "P.O. Box 1234",  "state": "CA"  },  "destinationAddress": {      "id":"ppmd1",    "city": "Beverly Hills",  "postalCode": "23231",  "streetAddress1": "12 Any Street",  "StreetAddress2": "P.O. Box 1234",  "state": "CA"  }, } }
This should cause a validation error as a result

Run create shipment again using the following JSON
{ "moveTaskOrderID": "99783f4d-ee83-4fc9-8e0c-d32496bef32b", "shipmentType": "PPM", "requestedPickupDate": "2024-01-01", "estimatedWeight": "1776", "pickupAddress": {  "id": "tp1",  "city": "Beverly Hills",  "postalCode": "23231",  "streetAddress1": "12 Any Street",  "StreetAddress2": "P.O. Box 1234",  "state": "CA" },  "destinationAddress": {  "id": "tp2",  "city": "Beverly Hills",  "postalCode": "23231",  "streetAddress1": "12 Any Street",  "StreetAddress2": "P.O. Box 1234",  "state": "CA" }, "tertiaryDestinationAddress": {  "id": "tp1",  "city": "Beverly Hills",  "postalCode": "23231",  "streetAddress1": "12 Any Street",  "StreetAddress2": "P.O. Box 1234",  "state": "CA" }, "ppmShipment": {  "expectedDepartureDate": "2024-01-01",  "estimatedWeight": 2500,  "hasProGear": false,  "sitExpected": false,  "pickupAddress": {      "id": "ppmp1",    "city": "Beverly Hills",  "postalCode": "23231",  "streetAddress1": "12 Any Street",  "StreetAddress2": "P.O. Box 1234",  "state": "CA"  },  "destinationAddress": {      "id":"ppmd1",    "city": "Beverly Hills",  "postalCode": "23231",  "streetAddress1": "12 Any Street",  "StreetAddress2": "P.O. Box 1234",  "state": "CA"  }, } }
An error should be returned here as well

Run Create MTO shipment again using this JSON
{ "moveTaskOrderID": "99783f4d-ee83-4fc9-8e0c-d32496bef32b", "shipmentType": "PPM", "requestedPickupDate": "2024-01-01", "estimatedWeight": "1776", "pickupAddress": {  "id": "tp1",  "city": "Beverly Hills",  "postalCode": "23231",  "streetAddress1": "12 Any Street",  "StreetAddress2": "P.O. Box 1234",  "state": "CA" },  "destinationAddress": {  "id": "tp2",  "city": "Beverly Hills",  "postalCode": "23231",  "streetAddress1": "12 Any Street",  "StreetAddress2": "P.O. Box 1234",  "state": "CA" }, "tertiaryDestinationAddress": {  "id": "tp1",  "city": "Beverly Hills",  "postalCode": "23231",  "streetAddress1": "12 Any Street",  "StreetAddress2": "P.O. Box 1234",  "state": "CA" }, "ppmShipment": {  "expectedDepartureDate": "2024-01-01",  "estimatedWeight": 2500,  "hasProGear": false,  "sitExpected": false,  "pickupAddress": {      "id": "ppmp1",    "city": "Beverly Hills",  "postalCode": "23231",  "streetAddress1": "12 Any Street",  "StreetAddress2": "P.O. Box 1234",  "state": "CA"  }, "secondaryPickupAddress": {      "id": "ppmp1",    "city": "Beverly Hills",  "postalCode": "23231",  "streetAddress1": "12 Any Street",  "StreetAddress2": "P.O. Box 1234",  "state": "CA"  },  "destinationAddress": {      "id":"ppmd1",    "city": "Beverly Hills",  "postalCode": "23231",  "streetAddress1": "12 Any Street",  "StreetAddress2": "P.O. Box 1234",  "state": "CA"  }, } }

Run this JSON for create MTO Shipment
{ "moveTaskOrderID": "99783f4d-ee83-4fc9-8e0c-d32496bef32b", "shipmentType": "PPM", "requestedPickupDate": "2024-01-01", "estimatedWeight": "1776", "pickupAddress": {  "id": "tp1",  "city": "Beverly Hills",  "postalCode": "23231",  "streetAddress1": "12 Any Street",  "StreetAddress2": "P.O. Box 1234",  "state": "CA" },  "destinationAddress": {  "id": "tp2",  "city": "Beverly Hills",  "postalCode": "23231",  "streetAddress1": "12 Any Street",  "StreetAddress2": "P.O. Box 1234",  "state": "CA" }, "tertiaryDestinationAddress": {  "id": "tp1",  "city": "Beverly Hills",  "postalCode": "23231",  "streetAddress1": "12 Any Street",  "StreetAddress2": "P.O. Box 1234",  "state": "CA" }, "ppmShipment": {  "expectedDepartureDate": "2024-01-01",  "estimatedWeight": 2500,  "hasProGear": false,  "sitExpected": false,  "pickupAddress": {      "id": "ppmp1",    "city": "Beverly Hills",  "postalCode": "23231",  "streetAddress1": "12 Any Street",  "StreetAddress2": "P.O. Box 1234",  "state": "CA"  }, "secondaryPickupAddress": {      "id": "ppmp1",    "city": "Beverly Hills",  "postalCode": "23231",  "streetAddress1": "12 Any Street",  "StreetAddress2": "P.O. Box 1234",  "state": "CA"  },  "destinationAddress": {      "id":"ppmd1",    "city": "Beverly Hills",  "postalCode": "23231",  "streetAddress1": "12 Any Street",  "StreetAddress2": "P.O. Box 1234",  "state": "CA"  }, "tertiaryDestinationAddress": {      "id":"ppmd1",    "city": "Beverly Hills",  "postalCode": "23231",  "streetAddress1": "12 Any Street",  "StreetAddress2": "P.O. Box 1234",  "state": "CA"  }, } } This should cause an error as well

Run this JSON with create MTO shipment, this should return OK
{ "moveTaskOrderID": "99783f4d-ee83-4fc9-8e0c-d32496bef32b", "shipmentType": "PPM", "requestedPickupDate": "2024-01-01", "estimatedWeight": "1776", "pickupAddress": { "id": "tp1", "city": "Beverly Hills", "postalCode": "23231", "streetAddress1": "12 Any Street", "StreetAddress2": "P.O. Box 1234", "state": "CA" }, "secondaryPickupAddress": { "id": "tp2", "city": "Beverly Hills", "postalCode": "23231", "streetAddress1": "12 Any Street", "StreetAddress2": "P.O. Box 1234", "state": "CA" }, "tertiaryPickupAddress": { "id": "tp2", "city": "Beverly Hills", "postalCode": "23231", "streetAddress1": "12 Any Street", "StreetAddress2": "P.O. Box 1234", "state": "CA" }, "destinationAddress": { "id": "tp2", "city": "Beverly Hills", "postalCode": "23231", "streetAddress1": "12 Any Street", "StreetAddress2": "P.O. Box 1234", "state": "CA" }, "secondaryDestinationAddress": { "id": "tp2", "city": "Beverly Hills", "postalCode": "23231", "streetAddress1": "12 Any Street", "StreetAddress2": "P.O. Box 1234", "state": "CA" }, "tertiaryDestinationAddress": { "id": "tp1", "city": "Beverly Hills", "postalCode": "23231", "streetAddress1": "12 Any Street", "StreetAddress2": "P.O. Box 1234", "state": "CA" }, "ppmShipment": { "expectedDepartureDate": "2024-01-01", "estimatedWeight": 2500, "hasProGear": false, "sitExpected": false, "pickupAddress": {     "id": "ppmp1",   "city": "Beverly Hills", "postalCode": "23231", "streetAddress1": "12 Any Street", "StreetAddress2": "P.O. Box 1234", "state": "CA" }, "secondaryPickupAddress": {     "id": "ppmp1",   "city": "Beverly Hills", "postalCode": "23231", "streetAddress1": "12 Any Street", "StreetAddress2": "P.O. Box 1234", "state": "CA" }, "destinationAddress": {     "id":"ppmd1",   "city": "Beverly Hills", "postalCode": "23231", "streetAddress1": "12 Any Street", "StreetAddress2": "P.O. Box 1234", "state": "CA" }, "secondaryDestinationAddress": {     "id":"ppmd1",   "city": "Beverly Hills", "postalCode": "23231", "streetAddress1": "12 Any Street", "StreetAddress2": "P.O. Box 1234", "state": "CA" }, "tertiaryDestinationAddress": {     "id":"ppmd1",   "city": "Beverly Hills", "postalCode": "23231", "streetAddress1": "12 Any Street", "StreetAddress2": "P.O. Box 1234", "state": "CA" }, } }
this should return OK

Create another shipment with only the base addresses
  "moveTaskOrderID": "99783f4d-ee83-4fc9-8e0c-d32496bef32b",
  "shipmentType": "PPM",
  "requestedPickupDate": "2024-01-01",
  "estimatedWeight": "1776",
  "pickupAddress": {
    "id": "tp1",
    "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
  },
"destinationAddress": {
    "id": "tp2",
    "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
  },
  "ppmShipment": {
    "expectedDepartureDate": "2024-01-01",
    "estimatedWeight": 2500,
    "hasProGear": false,
    "sitExpected": false,
    "pickupAddress": {
        "id": "ppmp1",
      "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
    },
    "destinationAddress": {
        "id":"ppmd1",
      "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
    },
  }
}```
then in the results note the eTag
![WARNING] This value WILL change each and every time mto shipment is run, running an old one will yield an IF-Match precondition error!

8. run {{baseUrl}}/prime/v3/mto-shipments/:mtoShipmentID with the mto shipment ID added in the params, with the following json added in the body
`{
  "ppmShipment": {
    "expectedDepartureDate": "2024-01-01",
    "estimatedWeight": 2500,
    "hasProGear": false,
    "sitExpected": false,
    "pickupAddress": {
        "id": "ppmp1",
      "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
    },
    "tertiaryPickupAddress": {
        "id": "ppmp3",
        "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
    },
    "destinationAddress": {
        "id":"ppmd1",
      "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
    }
  }
}`
This should yield an error like before
9. Update the eTag (you may need to pull it from the swagger "getMtoShipment" if the one for the shipment in the DB doesn't work. Rerun update-mto-shipment using the same shipment ID and the following JSON
``{
  "ppmShipment": {
    "expectedDepartureDate": "2024-01-01",
    "estimatedWeight": 2500,
    "hasProGear": false,
    "sitExpected": false,
    "pickupAddress": {
        "id": "ppmp1",
      "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
    },
 "secondaryPickupAddress": {
        "id": "ppmp3",
        "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
    },
    "tertiaryPickupAddress": {
        "id": "ppmp3",
        "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
    },
    "destinationAddress": {
        "id":"ppmd1",
      "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
    }
 "secondaryDestinationAddress": {
        "id": "ppmp3",
        "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
    },
 "tertiaryDestinationAddress": {
        "id": "ppmp3",
        "city": "Beverly Hills",
    "postalCode": "23231",
    "streetAddress1": "12 Any Street",
    "StreetAddress2": "P.O. Box 1234",
    "state": "CA"
    },
  }
}``
because the secondary addresses are present, this should pass.

Test coverage on client failed.
Last run: Fri 18 Oct 2024 02:07:21 AM UTC
Refer to this report to see coverage details for the client app.
Documentation for test coverage can be found at this link.

Test coverage on client failed.
Last run: Thu 24 Oct 2024 03:52:32 PM UTC
Refer to this report to see coverage details for the client app.
Documentation for test coverage can be found at this link.

Link to int pr please


Error when running  assemble

This  is the error when running ./gradlew assemble and gradlew :devolay-natives:assembleNatives
fatal error: too many errors emitted, stopping now [-ferror-limit=]
13 warnings and 20 errors generated.
FAILURE: Build completed with 2 failures.
1: Task failed with an exception.

What went wrong:
Execution failed for task ':devolay-natives:compileDebugMacosX86-64Cpp'.

A build operation failed.
C++ compiler failed while compiling devolay.cpp.
See the complete log at: file:///Users/ari.sprung/Dev/NDI/devolay/devolay-natives/build/tmp/compileDebugMacosX86-64Cpp/output.txt
C++ compiler failed while compiling devolay.cpp.

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
==============================================================================

2: Task failed with an exception.

What went wrong:
Execution failed for task ':devolay-natives:compileReleaseMacosX86-64Cpp'.

A build operation failed.
C++ compiler failed while compiling devolay.cpp.
See the complete log at: file:///Users/ari.sprung/Dev/NDI/devolay/devolay-natives/build/tmp/compileReleaseMacosX86-64Cpp/output.txt
C++ compiler failed while compiling devolay.cpp.

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
==============================================================================

Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.7-20200901040000+0000/userguide/command_line_interface.html#sec:command_line_warnings
BUILD FAILED in 2s

Can you post the file:///Users/ari.sprung/Dev/NDI/devolay/devolay-natives/build/tmp/compileReleaseMacosX86-64Cpp/output.txt file?

output.txt
Here it is . Thx!

This looks like another issue with Macos being unhappy with the standards that work everywhere else. The "-std=c++11" should fix it. I will get that pushed tomorrow morning, but a replacing your devolay-natives/build.gradle.kts with https://github.com/WalkerKnapp/devolay/blob/c9d2e9266d4cf939a5db46a0d41183db99624747/devolay-natives/build.gradle.kts should be a temporary fix


[Feature]: Bot need supports @members

What is your advice?
Bot need supports @members and @all.
It is very useful, I hope developers can develop this feature, thank you.

Please check for this PR https://github.com/veops/ops-tools/pull/22


Microservice registry

When I use nameko, I can't organize micro-services very well. What is the solution?Using a microservice registration framework in another language?

I have resolved it with redis in 2017.
The final effect
❯ make os
> Check online services...
> Online services:
eric_service                   => 975a09c2ea19|<IP_ADDRESS>
foo_service                    => 86000b0f2724|1.0.0
>
> eric_service.add()
{'param': 'eric', 'info': 'test'}
>

My code resolution
    @timer(10)
    def ms_update_service(self):
        if self.name != SUPER_THREAD:
            add_service(self.rs, self.name, self.ver)

Update my service's name and version into redis every 10 seconds.
You can see more details at https://github.com/zhouxiaoxiang/oriole-microservice


Add Feature Flag to auto-detect Proxy Protocol

Title: Add Feature Flag to auto-detect Proxy Protocol
Description:
The proposal here is to add a new feature toggle to the Proxy Protocol listener filter which attempts to parse the connection as proxy protocol (e.g. https://github.com/envoyproxy/envoy/blob/main/source/extensions/filters/listener/tls_inspector/tls_inspector.cc#L149 as example to peek at connection bytes) and upon failure, instead of erroring, will continue processing the connection without Proxy Protocol.
This feature toggle would be opt-in and marked for use only with trusted downstream traffic, as there are valid security concerns as listed in the proxy protocol spec:

Implementers should be very careful about not trying to automatically detect
whether they have to decode the header or not, but rather they must only rely
on a configuration parameter. Indeed, if the opportunity is left to a normal
client to use the protocol, he will be able to hide his activities or make them
appear as coming from someone else. However, accepting the header only from a
number of known sources should be safe.

The customer-provided use case:
https://github.com/solo-io/gloo/issues/5403#issuecomment-930529763
Proposed feature flag:
type ProxyProtocol struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The list of rules to apply to requests.
	Rules []*ProxyProtocol_Rule `protobuf:"bytes,1,rep,name=rules,proto3" json:"rules,omitempty"`
        // NEW FIELD: defaults to false. if true, attempt to detect proxy protocol if present, and allow
        // requests through if proxy protocol is not used on the connection
        DetectProxyProtocol bool
}

Rather than duplicate functionality in our own proxy protocol filter, I thought it would be preferable to explore this as an upstream contribution. Thoughts?
Thanks and best
[optional Relevant Links:]
Gloo Edge issue with the original feature request from customer https://github.com/solo-io/gloo/issues/5403 (I work on the Gloo Edge API gateway built on envoy)

See #17286 for prior attempts.

@rgs1 @mattklein123 thank you for linking the PR for prior work to skip TLS with proxy protocol. It has proven a useful example as I have started the implementation.
My proposal here is slightly different than the original PR.
What I would like to do is add a new top level configuration to the proxy protocol filter that instructs the filter to attempt parsing as v1/v2 proxy protocol, and if both fail, pass along the original request as if it were not using proxy protocol.
The PR linked only instructs to skip on requests using TLS.
I was hoping to get thoughts on the proposal / api before finishing a PR.
Much appreciated, thanks

I think the proposal is reasonable.


Added CodeReview GUI client

See https://github.com/FabriceSalvaire/CodeReview/

@FabriceSalvaire would you be interested in rebasing your PR to include CodeReview on the list of  GUI clients?

Yes, you want a new PR ?

yes. For some reason when I went through all the issues sometime ago this one missed me. just take into account GUI clients are now ordered through popularity order as determined by Google Trends 12 month view ( #975 )
while I don't think nobody is going to be very picky, at least an effort should be made to keep an approximated order

done #1029


Migration from 0.5 to 0.6 Gain can't set initial volume

Hello!
I am migrating from 0.5 to 0.6 and I saw that Gain doesn't allow anymore to set the initial volume, to do that I should use FixedGain but then it seems that GainControl cannot be used in the same way. Is there a way to set the volume before it starts playing and allows to change it after by the user?
This is the code I want to migrate: https://github.com/Nazariglez/notan/blob/f/prepare0.7.0/crates/notan_oddio/src/backend.rs#L290
And this is an example of how it works now using 0.5.0. You can set the volume before clicking pause and it will start at that level.
I would appreciate any hint. Thanks

Looks like that case isn't covered by the current API. https://github.com/Ralith/oddio/pull/94 should address that.

Released in 0.6.1.

That was fast, thanks!
Though I notice two things now, the first one is that -60.0 dbs is not "silence" anymore, my set_volume function that maps 0-1 to -60-0 has sound no matter if I pass 0.0 as volume.
Another thing is that no matter the volume I pass (could be 0.0 or 0.5 whatever) before playing the sound, the first second* (is less than a second) you hear is always at maximum volume and then starts to fade fast.
Maybe something that I do wrong?

Though I notice two things now, the first one is that -60.0 dbs is not "silence" anymore

Pure silence is unrepresentable in decibels, but somewhere between -60 and -90 is inaudible in most listening environments. Zero decibels is no change, not silence.

maximum volume and then starts to fade fast.

Whoops, that's an API limitation. Will fix.

0.6.2 adds dedicated setters on Gain that aren't subject to smoothing.

Works like a charm!
Thank you so much for the help, the time, and the work.


Use local phpcs config file if available.

What does this implement/fix? Explain your changes.
PHP CodeSniffer and phpcbf have support for a settings file, for example phpcs.xml, so I think that should be used if available.
...
Does this close any currently open issues?
Not that I know of.
...
Any other comments?
I couldn't find any tests for the phpcbf beautifier so I did not add any for this.
...
Checklist
Check all those that are applicable and complete.

[x] Merged with latest master branch
[ ] Added examples for testing to examples/ directory
[ ] Travis CI passes (Mac support)
[ ] AppVeyor passes (Windows support)

Thank you for contributing!

Published to v0.29.19


CM continues requeuing inexisting items

Cert manager keeps "requeuing items" and complaining about Storage error on tls secrets, although there is no Certificate, Ingress or Certificate Request left in the namespace. Cert Manager seems somewhat stuck. I currently cannot issue new certificates correctly. I already tried reinstalling cert manager. After reinstalling the same messages reappear.
Output from cert manager pod:
2021-09-07T15:18:41.007256531Z E0907 15:18:41.007104       1 controller.go:163] cert-manager/controller/certificates-readiness "msg"="re-queuing item due to error processing" "error"="Operation cannot be fulfilled on certificates.cert-manager.io \"minio.develop.mydomain.com-tls\": StorageError: invalid object, Code: 4, Key: /cert-manager.io/certificates/app-develop/minio.develop.mydomain.com-tls, ResourceVersion: 0, AdditionalErrorMsg: Precondition failed: UID in precondition: ef119192-f46c-4d68-a432-b7665eea09f0, UID in object meta: " "key"="app-develop/minio.develop.mydomain.com-tls"
2021-09-07T15:18:41.007569021Z E0907 15:18:41.007444       1 readiness_controller.go:142] cert-manager/controller/certificates-readiness "msg"="certificate not found for key" "error"="certificate.cert-manager.io \"minio.develop.mydomain.com-tls\" not found" "key"="app-develop/minio.develop.mydomain.com-tls"
2021-09-07T15:18:41.076159084Z I0907 15:18:41.072473       1 conditions.go:201] Setting lastTransitionTime for Certificate "minio.develop.mydomain.com-tls" condition "Ready" to 2021-09-07 15:18:41.072462583 +0000 UTC m=+65284.052897889
2021-09-07T15:18:41.076219891Z I0907 15:18:41.072418       1 trigger_controller.go:181] cert-manager/controller/certificates-trigger "msg"="Certificate must be re-issued" "key"="app-develop/minio.develop.mydomain.com-tls" "message"="Issuing certificate as Secret does not exist" "reason"="DoesNotExist"
2021-09-07T15:18:41.076240135Z I0907 15:18:41.072759       1 conditions.go:201] Setting lastTransitionTime for Certificate "minio.develop.mydomain.com-tls" condition "Issuing" to 2021-09-07 15:18:41.072750736 +0000 UTC m=+65284.053186043
2021-09-07T15:18:41.099255476Z E0907 15:18:41.098127       1 revisionmanager_controller.go:106] cert-manager/controller/certificates-revision-manager "msg"="certificate not found for key" "error"="certificate.cert-manager.io \"minio.develop.mydomain.com-tls\" not found" "key"="app-develop/minio.develop.mydomain.com-tls"
2021-09-07T15:18:41.099294411Z E0907 15:18:41.098299       1 keymanager_controller.go:139] cert-manager/controller/certificates-key-manager "msg"="certificate not found for key" "error"="certificate.cert-manager.io \"minio.develop.mydomain.com-tls\" not found" "key"="app-develop/minio.develop.mydomain.com-tls"
2021-09-07T15:18:41.099307948Z E0907 15:18:41.098484       1 issuing_controller.go:152] cert-manager/controller/certificates-issuing "msg"="certificate not found for key" "error"="certificate.cert-manager.io \"minio.develop.mydomain.com-tls\" not found" "key"="app-develop/minio.develop.mydomain.com-tls"
2021-09-07T15:18:41.100187961Z E0907 15:18:41.099967       1 requestmanager_controller.go:136] cert-manager/controller/certificates-request-manager "msg"="certificate not found for key" "error"="certificate.cert-manager.io \"minio.develop.mydomain.com-tls\" not found" "key"="app-develop/minio.develop.mydomain.com-tls"
2021-09-07T15:18:41.108315082Z E0907 15:18:41.107962       1 controller.go:163] cert-manager/controller/certificates-trigger "msg"="re-queuing item due to error processing" "error"="Operation cannot be fulfilled on certificates.cert-manager.io \"app.develop.mydomain.com-tls\": StorageError: invalid object, Code: 4, Key: /cert-manager.io/certificates/app-develop/app.develop.mydomain.com-tls, ResourceVersion: 0, AdditionalErrorMsg: Precondition failed: UID in precondition: c76f2a71-de5b-40a8-abe2-5330f05450d3, UID in object meta: " "key"="app-develop/app.develop.mydomain.com-tls"
2021-09-07T15:18:41.108353444Z E0907 15:18:41.108138       1 trigger_controller.go:137] cert-manager/controller/certificates-trigger "msg"="certificate not found for key" "error"="certificate.cert-manager.io \"app.develop.mydomain.com-tls\" not found" "key"="app-develop/app.develop.mydomain.com-tls"
2021-09-07T15:18:41.159848942Z E0907 15:18:41.159642       1 controller.go:163] cert-manager/controller/certificates-readiness "msg"="re-queuing item due to error processing" "error"="Operation cannot be fulfilled on certificates.cert-manager.io \"app.develop.mydomain.com-tls\": StorageError: invalid object, Code: 4, Key: /cert-manager.io/certificates/app-develop/app.develop.mydomain.com-tls, ResourceVersion: 0, AdditionalErrorMsg: Precondition failed: UID in precondition: c76f2a71-de5b-40a8-abe2-5330f05450d3, UID in object meta: " "key"="app-develop/app.develop.mydomain.com-tls"
2021-09-07T15:18:41.160279310Z E0907 15:18:41.160088       1 readiness_controller.go:142] cert-manager/controller/certificates-readiness "msg"="certificate not found for key" "error"="certificate.cert-manager.io \"app.develop.mydomain.com-tls\" not found" "key"="app-develop/app.develop.mydomain.com-tls"
2021-09-07T15:18:41.229780053Z I0907 15:18:41.229587       1 trigger_controller.go:181] cert-manager/controller/certificates-trigger "msg"="Certificate must be re-issued" "key"="app-develop/app.develop.mydomain.com-tls" "message"="Issuing certificate as Secret does not exist" "reason"="DoesNotExist"
2021-09-07T15:18:41.230476390Z I0907 15:18:41.230189       1 conditions.go:201] Setting lastTransitionTime for Certificate "app.develop.mydomain.com-tls" condition "Issuing" to 2021-09-07 15:18:41.230173664 +0000 UTC m=+65284.210608959
2021-09-07T15:18:41.230950050Z I0907 15:18:41.230752       1 conditions.go:201] Setting lastTransitionTime for Certificate "app.develop.mydomain.com-tls" condition "Ready" to 2021-09-07 15:18:41.230741255 +0000 UTC m=+65284.211176559
2021-09-07T15:18:41.257049817Z E0907 15:18:41.256830       1 controller.go:163] cert-manager/controller/certificates-readiness "msg"="re-queuing item due to error processing" "error"="Operation cannot be fulfilled on certificates.cert-manager.io \"mongo.develop.mydomain.com-tls\": StorageError: invalid object, Code: 4, Key: /cert-manager.io/certificates/app-develop/mongo.develop.mydomain.com-tls, ResourceVersion: 0, AdditionalErrorMsg: Precondition failed: UID in precondition: 8491997d-c5a0-4d8d-9010-27301cb0c9a8, UID in object meta: " "key"="app-develop/mongo.develop.mydomain.com-tls"
2021-09-07T15:18:41.258163696Z E0907 15:18:41.257918       1 readiness_controller.go:142] cert-manager/controller/certificates-readiness "msg"="certificate not found for key" "error"="certificate.cert-manager.io \"mongo.develop.mydomain.com-tls\" not found" "key"="app-develop/mongo.develop.mydomain.com-tls"
2021-09-07T15:18:41.269843329Z E0907 15:18:41.266775       1 requestmanager_controller.go:136] cert-manager/controller/certificates-request-manager "msg"="certificate not found for key" "error"="certificate.cert-manager.io \"app.develop.mydomain.com-tls\" not found" "key"="app-develop/app.develop.mydomain.com-tls"
2021-09-07T15:18:41.269871341Z E0907 15:18:41.266965       1 keymanager_controller.go:139] cert-manager/controller/certificates-key-manager "msg"="certificate not found for key" "error"="certificate.cert-manager.io \"app.develop.mydomain.com-tls\" not found" "key"="app-develop/app.develop.mydomain.com-tls"
2021-09-07T15:18:41.269890341Z E0907 15:18:41.267129       1 issuing_controller.go:152] cert-manager/controller/certificates-issuing "msg"="certificate not found for key" "error"="certificate.cert-manager.io \"app.develop.mydomain.com-tls\" not found" "key"="app-develop/app.develop.mydomain.com-tls"
2021-09-07T15:18:41.269897432Z E0907 15:18:41.267275       1 revisionmanager_controller.go:106] cert-manager/controller/certificates-revision-manager "msg"="certificate not found for key" "error"="certificate.cert-manager.io \"app.develop.mydomain.com-tls\" not found" "key"="app-develop/app.develop.mydomain.com-tls"
2021-09-07T15:18:41.310309550Z E0907 15:18:41.310112       1 controller.go:163] cert-manager/controller/certificates-trigger "msg"="re-queuing item due to error processing" "error"="Operation cannot be fulfilled on certificates.cert-manager.io \"mongo.develop.mydomain.com-tls\": StorageError: invalid object, Code: 4, Key: /cert-manager.io/certificates/app-develop/mongo.develop.mydomain.com-tls, ResourceVersion: 0, AdditionalErrorMsg: Precondition failed: UID in precondition: 8491997d-c5a0-4d8d-9010-27301cb0c9a8, UID in object meta: " "key"="app-develop/mongo.develop.mydomain.com-tls"
2021-09-07T15:18:41.310529663Z E0907 15:18:41.310420       1 trigger_controller.go:137] cert-manager/controller/certificates-trigger "msg"="certificate not found for key" "error"="certificate.cert-manager.io \"mongo.develop.mydomain.com-tls\" not found" "key"="app-develop/mongo.develop.mydomain.com-tls"
2021-09-07T15:18:41.390636609Z I0907 15:18:41.390377       1 trigger_controller.go:181] cert-manager/controller/certificates-trigger "msg"="Certificate must be re-issued" "key"="app-develop/mongo.develop.mydomain.com-tls" "message"="Issuing certificate as Secret does not exist" "reason"="DoesNotExist"
2021-09-07T15:18:41.391115721Z I0907 15:18:41.390916       1 conditions.go:201] Setting lastTransitionTime for Certificate "mongo.develop.mydomain.com-tls" condition "Ready" to 2021-09-07 15:18:41.390838574 +0000 UTC m=+65284.371274034
2021-09-07T15:18:41.391771872Z I0907 15:18:41.390924       1 conditions.go:201] Setting lastTransitionTime for Certificate "mongo.develop.mydomain.com-tls" condition "Issuing" to 2021-09-07 15:18:41.390911215 +0000 UTC m=+65284.371346523
2021-09-07T15:18:41.404218872Z E0907 15:18:41.404037       1 controller.go:163] cert-manager/controller/certificates-trigger "msg"="re-queuing item due to error processing" "error"="Operation cannot be fulfilled on certificates.cert-manager.io \"gotenberg.develop.mydomain.com-tls\": StorageError: invalid object, Code: 4, Key: /cert-manager.io/certificates/app-develop/gotenberg.develop.mydomain.com-tls, ResourceVersion: 0, AdditionalErrorMsg: Precondition failed: UID in precondition: ddc8cb89-4ebc-4bef-aa28-7a0aedb26cf9, UID in object meta: " "key"="app-develop/gotenberg.develop.mydomain.com-tls"
2021-09-07T15:18:41.404486586Z E0907 15:18:41.404350       1 trigger_controller.go:137] cert-manager/controller/certificates-trigger "msg"="certificate not found for key" "error"="certificate.cert-manager.io \"gotenberg.develop.mydomain.com-tls\" not found" "key"="app-develop/gotenberg.develop.mydomain.com-tls"
2021-09-07T15:18:41.420845721Z E0907 15:18:41.420665       1 requestmanager_controller.go:136] cert-manager/controller/certificates-request-manager "msg"="certificate not found for key" "error"="certificate.cert-manager.io \"mongo.develop.mydomain.com-tls\" not found" "key"="app-develop/mongo.develop.mydomain.com-tls"
2021-09-07T15:18:41.421262025Z E0907 15:18:41.421110       1 keymanager_controller.go:139] cert-manager/controller/certificates-key-manager "msg"="certificate not found for key" "error"="certificate.cert-manager.io \"mongo.develop.mydomain.com-tls\" not found" "key"="app-develop/mongo.develop.mydomain.com-tls"
2021-09-07T15:18:41.421557569Z E0907 15:18:41.421188       1 revisionmanager_controller.go:106] cert-manager/controller/certificates-revision-manager "msg"="certificate not found for key" "error"="certificate.cert-manager.io \"mongo.develop.mydomain.com-tls\" not found" "key"="app-develop/mongo.develop.mydomain.com-tls"
2021-09-07T15:18:41.422420068Z E0907 15:18:41.422229       1 issuing_controller.go:152] cert-manager/controller/certificates-issuing "msg"="certificate not found for key" "error"="certificate.cert-manager.io \"mongo.develop.mydomain.com-tls\" not found" "key"="app-develop/mongo.develop.mydomain.com-tls"
2021-09-07T15:18:41.452952860Z E0907 15:18:41.452768       1 controller.go:163] cert-manager/controller/certificates-readiness "msg"="re-queuing item due to error processing" "error"="Operation cannot be fulfilled on certificates.cert-manager.io \"gotenberg.develop.mydomain.com-tls\": StorageError: invalid object, Code: 4, Key: /cert-manager.io/certificates/app-develop/gotenberg.develop.mydomain.com-tls, ResourceVersion: 0, AdditionalErrorMsg: Precondition failed: UID in precondition: ddc8cb89-4ebc-4bef-aa28-7a0aedb26cf9, UID in object meta: " "key"="app-develop/gotenberg.develop.mydomain.com-tls"
2021-09-07T15:18:41.453574673Z E0907 15:18:41.453335       1 readiness_controller.go:142] cert-manager/controller/certificates-readiness "msg"="certificate not found for key" "error"="certificate.cert-manager.io \"gotenberg.develop.mydomain.com-tls\" not found" "key"="app-develop/gotenberg.develop.mydomain.com-tls"
2021-09-07T15:18:41.519132556Z I0907 15:18:41.518598       1 trigger_controller.go:181] cert-manager/controller/certificates-trigger "msg"="Certificate must be re-issued" "key"="app-develop/gotenberg.develop.mydomain.com-tls" "message"="Issuing certificate as Secret does not exist" "reason"="DoesNotExist"
2021-09-07T15:18:41.519225304Z I0907 15:18:41.518951       1 conditions.go:201] Setting lastTransitionTime for Certificate "gotenberg.develop.mydomain.com-tls" condition "Issuing" to 2021-09-07 15:18:41.518793081 +0000 UTC m=+65284.499228397
2021-09-07T15:18:41.519432583Z I0907 15:18:41.518839       1 conditions.go:201] Setting lastTransitionTime for Certificate "gotenberg.develop.mydomain.com-tls" condition "Ready" to 2021-09-07 15:18:41.518831873 +0000 UTC m=+65284.499267181
2021-09-07T15:18:41.552186639Z E0907 15:18:41.552017       1 controller.go:163] cert-manager/controller/certificates-trigger "msg"="re-queuing item due to error processing" "error"="Operation cannot be fulfilled on certificates.cert-manager.io \"report.develop.mydomain.com-tls\": StorageError: invalid object, Code: 4, Key: /cert-manager.io/certificates/app-develop/report.develop.mydomain.com-tls, ResourceVersion: 0, AdditionalErrorMsg: Precondition failed: UID in precondition: 156e6db8-121c-41f9-8ccb-08394754c930, UID in object meta: " "key"="app-develop/report.develop.mydomain.com-tls"
2021-09-07T15:18:41.552416014Z E0907 15:18:41.552275       1 trigger_controller.go:137] cert-manager/controller/certificates-trigger "msg"="certificate not found for key" "error"="certificate.cert-manager.io \"report.develop.mydomain.com-tls\" not found" "key"="app-develop/report.develop.mydomain.com-tls"
2021-09-07T15:18:41.564651867Z E0907 15:18:41.564460       1 revisionmanager_controller.go:106] cert-manager/controller/certificates-revision-manager "msg"="certificate not found for key" "error"="certificate.cert-manager.io \"gotenberg.develop.mydomain.com-tls\" not found" "key"="app-develop/gotenberg.develop.mydomain.com-tls"
2021-09-07T15:18:41.564867439Z E0907 15:18:41.564739       1 keymanager_controller.go:139] cert-manager/controller/certificates-key-manager "msg"="certificate not found for key" "error"="certificate.cert-manager.io \"gotenberg.develop.mydomain.com-tls\" not found" "key"="app-develop/gotenberg.develop.mydomain.com-tls"
2021-09-07T15:18:41.565219649Z E0907 15:18:41.565111       1 requestmanager_controller.go:136] cert-manager/controller/certificates-request-manager "msg"="certificate not found for key" "error"="certificate.cert-manager.io \"gotenberg.develop.mydomain.com-tls\" not found" "key"="app-develop/gotenberg.develop.mydomain.com-tls"

Output from kubectl: (no tls secrets, no ingresses, no certificates in namespace)
kubectl get Certificates,CertificateRequests,Ingresses,Secrets -n app-develop
NAME                                                  TYPE                                  DATA   AGE
secret/default-token-24dfn                            kubernetes.io/service-account-token   3      20h
secret/mongo-express                                  Opaque                                4      20h
secret/mongo-express-token-7vwmj                      kubernetes.io/service-account-token   3      20h
secret/regcred                                        kubernetes.io/dockerconfigjson        1      20h
secret/sh.helm.release.v1.mongo-express.v1            helm.sh/release.v1                    1      20h
secret/sh.helm.release.v1.mongo-express.v2            helm.sh/release.v1                    1      5h55m
secret/sh.helm.release.v1.mongo-express.v3            helm.sh/release.v1                    1      5h46m
secret/sh.helm.release.v1.app-api.v1                  helm.sh/release.v1                    1      20h
secret/sh.helm.release.v1.app-api.v2                  helm.sh/release.v1                    1      5h55m
secret/sh.helm.release.v1.app-api.v3                  helm.sh/release.v1                    1      5h46m
secret/sh.helm.release.v1.app-app.v1                  helm.sh/release.v1                    1      20h
secret/sh.helm.release.v1.app-app.v2                  helm.sh/release.v1                    1      5h55m
secret/sh.helm.release.v1.app-app.v3                  helm.sh/release.v1                    1      5h46m
secret/sh.helm.release.v1.app-report-engine.v1        helm.sh/release.v1                    1      20h
secret/sh.helm.release.v1.app-report-engine.v2        helm.sh/release.v1                    1      5h56m
secret/sh.helm.release.v1.app-report-engine.v3        helm.sh/release.v1                    1      5h47m
secret/app-api-mongodb-token-976ft                    kubernetes.io/service-account-token   3      20h
secret/app-api-token-p2s9s                            kubernetes.io/service-account-token   3      20h
secret/app-app-token-zzw58                            kubernetes.io/service-account-token   3      20h
secret/app-report-engine-gotenberg-token-gvh9d        kubernetes.io/service-account-token   3      20h
secret/app-report-engine-minio                        Opaque                                3      20h
secret/app-report-engine-minio-token-zr4pr            kubernetes.io/service-account-token   3      20h
secret/app-report-engine-redis                        Opaque                                1      20h
secret/app-report-engine-redis-token-xswmk            kubernetes.io/service-account-token   3      20h
secret/app-report-engine-token-tkql5                  kubernetes.io/service-account-token   3      20h

Expected behaviour:
Cert manager should not continue requeuing items that do not exist anymore.
It should correctly issue certificates when present.
Steps to reproduce the bug:
Sorry I don't know how to reproduce.
Anything else we need to know?:
Environment details::

Kubernetes version: 1.20.2-4
Cloud-provider/provisioner: OVH
cert-manager version: 1.5.3
Install method: helm

/kind bug

I was wondering if this might be a caching issue ? Is there a persistent cache for the cert manager queue that somewhat could survive even if I reinstall cert manager ?

I have the same issue.
Environment details:

Kubernetes version: 1.20.2-1
Cloud-provider/provisioner: OVH
cert-manager version: 1.3
Install method: kubectl apply

@dvaqueiro It turned out to be a caching issue. Once I had rebooted the kubernetes api, the cache was cleared, and no more items were requeuing. Hope this helps you.

@dvaqueiro It turned out to be a caching issue. Once I had rebooted the kubernetes api, the cache was cleared, and no more items were requeuing. Hope this helps you.

Since the ovh cluster is managed I don't have access to the api deployments to restart. How have you done in this action?

LOL same for me, OVH cluster: I had to contact support, to learn how to restart the api server.
They provided the following documentation link : https://eu.api.ovh.com/console/#/cloud/project/{serviceName}/kube/{kubeId}/restart%23POST
You have to login, retrieve service name and kube id and call the restart POST method.
Consider contacting OVH support if you do not succeed.

@domgold-keleo Thank you very much, the solution provided has been satisfactory and also now I know the ovh api for managing the internal parts of the cluster

We regularly have the same issue on cert manager. is it possible to add a command on cert manager command line that empty the queue?

cert-manager doesn't have any kind of persistent cache/queue that survives restarts (aside from the contents of the apiserver itself, i.e. the API objects you have created). This storage error appears to be caused by some issue in the apiserver, though I'm trying to find the relevant upstream issue discussing this if so...


Generate thumbnail is generating application/octet-stream as type

I'm following the exact example to generate a thumbnail from a image, but the image is getting the application/octet-stream type on the GCS instead of image/jpeg.
I don't know what i need to change in this code so the image will have the properly extension.
static generateThumbnail(filePath) {
    return new Promise((resolve, reject) => {
      // File and directory paths.
      const fileDir = path.dirname(filePath);
      const fileName = path.basename(filePath);
      const thumbFilePath = path.normalize(path.join(fileDir, `${THUMB_PREFIX}${fileName}`));
      const tempLocalFile = path.join(os.tmpdir(), filePath);
      const tempLocalDir = path.dirname(tempLocalFile);
      const tempLocalThumbFile = path.join(os.tmpdir(), thumbFilePath);

      // Exit if the image is already a thumbnail.
      if (fileName.startsWith(THUMB_PREFIX)) {
        console.log('Already a Thumbnail.');
        return;
      }

      // Cloud Storage files.
      const bucket = gcs.bucket(BUCKET);
      const file = bucket.file(filePath);
      const thumbFile = bucket.file(thumbFilePath);

      // Create the temp directory where the storage file will be downloaded.
      return mkdirp(tempLocalDir).then(() => {
        // Download file from bucket.
        return file.download({ destination: tempLocalFile });
      }).then(() => {
        console.log('The file has been downloaded to', tempLocalFile);
        // Generate a thumbnail using ImageMagick.
        return spawn('convert', [tempLocalFile, '-thumbnail', `${THUMB_MAX_WIDTH}x${THUMB_MAX_HEIGHT}>`, tempLocalThumbFile]);
      }).then(() => {
        console.log('Thumbnail created at', tempLocalThumbFile);
        // Uploading the Thumbnail.
        return bucket.upload(tempLocalThumbFile, { destination: thumbFilePath });
      }).then(() => {
        console.log('Thumbnail uploaded to Storage at', thumbFilePath);
        // Once the image has been uploaded delete the local files to free up disk space.
        fs.unlinkSync(tempLocalFile);
        fs.unlinkSync(tempLocalThumbFile);
        // Get the Signed URLs for the thumbnail and original image.
        const config = {
          action: 'read',
          expires: '03-01-2500'
        };
        return Promise.all([
          thumbFile.getSignedUrl(config),
          file.getSignedUrl(config)
        ]);
      }).then((results) => {
        console.log('Got Signed URLs.');
        const thumbResult = results[0];
        const originalResult = results[1];
        const thumbFileUrl = thumbResult[0];
        const fileUrl = originalResult[0];
        // Add the URLs to the Database
        resolve({ path: fileUrl, thumbnail: thumbFileUrl });
      });
    });
  }

I was looking into an "application/octet-stream" issue and eventually stumbled upon your report. You should probably enable syntax highlighting and simplify your code, there are lots of unrelated things in there. So I'm not sure if it could help but I found this page to help me understand why I get "application/octet-stream" when uploading an image: add file metadata.

Thanks man, that would most likely fix the application/octet-stream problem.
But i'm generating the thumbnail now with sharp.

When uploading the file to Cloud Storage here: return bucket.upload(tempLocalThumbFile, { destination: thumbFilePath });
You need to pass some metadata that indicates the mime type of the file. For instance the same as the original image:
return bucket.upload(tempLocalThumbFile, {
    destination: thumbFilePath,
    metadata: {
        contentType: event.data.contentType // That's the event object from the Cloud Functions trigger
    }
});

And yes, it looks like the Sharp sample already sets the Content Type. I'll try updating the ImageMagick samples.

Add this line
return bucket.upload(thumbPath, {
destination: join(bucketDir, thumbName),
metadata: {
contentType: 'image/jpeg' // That's the event object from the Cloud Functions trigger
}
})


subscribe doesn't take the same parameters that paho takes

Here is an example:
client.subscribe("temp/#", qos=0, client_id='furnace_receive')

TypeError: subscribe() got an unexpected keyword argument 'client_id'

Could you please share the whole stacktrace? I don't believe subscribe takes a client_id param: https://www.eclipse.org/paho/clients/python/docs/#subscribe-unsubscribe


cloudfoundry-cli needs upgrade to v6.12.1

https://github.com/cloudfoundry/cli/releases
Installs v6.11.3 instead of v6.12.1.

Care to submit a fix? It’s not hard, and we’re here to help.


[Core] With AQE disable, join tables reordering works wrong

Backend
CH (ClickHouse)
Bug description
[Expected behavior] and [actual behavior].
We have a sql as following
select t1 left join t2 on t1.a = t2.a

t2 only contains less then 100 rows, the the final plan uses t1 as the build side table. It causes OOM
Spark version
None
Spark configurations
No response
System information
No response
Relevant logs
No response

Print the stats from logicalLink
24/09/04 11:36:22.563 ERROR [main] OffloadJoin: xxx left stats: Statistics(sizeInBytes=48.9 GiB), right stats: Statistics(sizeInBytes=8.0 EiB)

@zhztheplayer I think this is a problem


[question] [feature] Combining items into one?

I'm wondering how I can drag and drop one element on top of another and combine the two into a single element. Something like how react-beautiful-dnd implements "Combining" (see gif below). I was playing around with nested lists and I'm still stuck on how to get it to look the way I want it to.

If it's not currently possible to do this, then maybe it could be created as a plugin? It's kind of similar to the Swap plugin, in a way.

This looks to me like a great plugin idea.
We'll keep this in mind when designing Sortable2

+1


Request: remove Maven files

Hi all,
Right now, the Hygieia code is using two build tools, Maven and Gradle, and I find it a bit confusing to know which one to use. The current documentation is just as confusing, since some of the documentation (for example, the main documentation) talks about Gradle, but the documentation of the sub projects talk about Maven.
I can do a pull request, that's fine, but I'd like to know the general sentiment about getting rid of the Maven code.

We removed the maven code, but some developers were not comfortable with Maven, hence we decided to put it back,  I will add instructions on main Readme for building via Maven, they were there if you look at the commit history , but were updated for gradle

Were there specific reasons why they were not comfortable with Gradle? Doing a mvn clean install or gradle build can hardly be the reason right?
We are experimenting with Hygieia too, and I don't care which build tool you use, but some of my colleagues are adding features, and are updating the pom. I use the Gradle version, and of course we run into the problems that only the pom.xml is updated. Also, right now the documentation is inconsistent: the main documentation talks about Gradle, while (some of?) the sub projects talk about Maven. Confusing at best, but it will make contributions a lot harder in regard for writing features and documentation.
I'm trying to make a point here to just have one build tool and deal with it :-). If it's Maven, fine, if it's Gradle, better, but having two is the worst scenario IMO.
I would just remove everything from Maven, and just add some clear documentation about Gradle. That's what I will also do for our local fork.

:+1: for removing Maven
Recently I had some problems (got NoSuchMethodError exceptions) with running the application from my IDE (IntelliJ) on analyzing the issue noticed that there were some mismatch with Spring versions. And understood that the actual cause for the issue is by mistake I enabled Gradle support (stupid mistake from my side). So all dependencies are added twice (from Maven and Gradle) and they are not in sync. To avoid such confusions and for maintenance sake, we should just stick with one build tool.
I prefer Gradle.

I want to get Gradle working too and stay with one single build system. Want to make sure that everything works seamlessly irrespective of IDE used (Eclipse, IntelliJ etc). Command line worked great. Working through some issues with Eclipse setup. Once this is done, will switch to ONE build system.

Heads up: We will be staying with Maven. I will do a PR within 24 hrs to clean up and making all documents consistent.

@tabladrum thanks for the update. Any specific reason why Maven? Any issues you are running into when using Gradle?

Moved back to Maven. @bodiam We will still look to resolve the issues we had with gradle.
Main issue we ran into was a good way to pass in Environment variable in the command line (gradlew).
Any help will be appreciated.

Okay, good to hear a choice has been made for now.
Could you make an issue for the problem you had with Gradle? I don't mind looking into it.

https://github.com/capitalone/Hygieia/issues/97 has been created, your cooperation is needed. We have also improved on documentation and now you can run api layer and UI from maven only , please check the documentation in Readme.md
Thanks

@tabladrum You noted:

Main issue we ran into was a good way to pass in Environment variable in the command line (gradlew)

Can you provide more info or a more concrete example? I'm another potential helper who would would like to see a Gradle build.

Main issue: the API needs an environment variable DASHBOARD_PROP or a system variable dashboard.prop to be set to point to the properties file.
Somehow this is not working with Gradlew command line. The API kept using default set hard coded in the API code.
IDE issue with Eclipse: with gradle enabled, usual eclipse feature to run the API by context menu "Run on server" is no longer available. And running gradle task ran into the same issue with passing environment variable.
IDE issue with IntelliJ: same as passing the env variable via IntelliJ run config. Also tried with IntelliJ tomcat config - it overrides my machines Tomcat's setenv.sh ignoring any export I may have in there.

please see my response to #97

move to #97

Main issue: the API needs an environment variable DASHBOARD_PROP or a system variable dashboard.prop to be set to point to the properties file.
Somehow this is not working with Gradlew command line. The API kept using default set hard coded in the API code.
IDE issue with Eclipse: with gradle enabled, usual eclipse feature to run the API by context menu "Run on server" is no longer available. And running gradle task ran into the same issue with passing environment variable.
IDE issue with IntelliJ: same as passing the env variable via IntelliJ run config. Also tried with IntelliJ tomcat config - it overrides my machines Tomcat's setenv.sh ignoring any export I may have in there.


Question: How to use embed.FS with References?

So, I'm quite familiar with JSON schemas and sadly, the past 3-4 years I've been doing using this package, I just literally copy paste schemas so I never use the reference. But this needs to change and I was hoping to be able to fully leverage the reference with JSON schemas which I know this package can do but I'm not entirely sure how to go on about this with Go's embed directive.
Let's say I have generic schemas for resources like addresses, phone numbers, etc that's in a package. How can I use those definitions in another JSON schema using this package?
example:
{

   address: {
     "$ref": "file://some-package/address.json"
    }
}

Any ideas on how to solve this?

This is what I have done.
schemas/address.schema.json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "definitions": {
    "allowed_string_map": {
      "$id": "#address",
      "type": "object",
      "properties": {
        "city": {"type": "string"},
        "state": {"type": "string"}
      }
    }
  }
}

Then you just load the loader using the filename expected.

//go:embed schemas/*.json
var JsonSchemas embed.FS

func load() {
	dir := "schemas"
	all, _ := JsonSchemas.ReadDir(dir)
	loader := gojsonschema.NewSchemaLoader()
	for _, f := range all { // Add all static files to loader
		data, _ := JsonSchemas.ReadFile(filepath.Join(dir, f.Name()))
		fileLoader := gojsonschema.NewBytesLoader(data)
		loader.AddSchema(f.Name(), fileLoader)
	}

	schema, _ := loader.Compile(gojsonschema.NewStringLoader(`
{
   "properties": {
    "address": {"$ref": "address.schema.json#address"}
    }
}`))

	var _ = schema // Use the schema to validate
}

@Emyrk super helpful, thank you!


Creating a ds display Test specification Document

Create a ds display Test specification document that covers L2, L3 and L4.

Removed Testing Done -> That's not valid... If this is a testing ticket and theres work to be done, then do the work, report on the ticket, and close the ticket..
It's not a State of either a code change, or something thats in remove, the state is being removed.
Please do something with the ticket either close, it or describe what your actually going todo with it and what the next steps are to move it forward as a task.

merged to develop


Start http server before testing bundles

Before testing published bundles, the local server should be started.
Resolve: OLPEDGE-2251
Signed-off-by: Oleksii Zubko<EMAIL_ADDRESS>

Codecov Report

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

@@             Coverage Diff             @@
##             master       #360   +/-   ##
===========================================
  Coverage   87.1550%   87.1550%
===========================================
  Files            69         69
  Lines          1884       1884
  Branches        221        221
===========================================
  Hits           1642       1642
  Misses          157        157
  Partials         85         85

Continue to review full report at Codecov.

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


Tab-pane improvements in Size

Related Issue #13905
Project: CartoDB/product#54
TASKS

[x] Tests for new component radio-tab-pane
[x] Refactoring on size regarding to tabs
[x] Small style improvements on size & color form
[x] Hide menu when just Fixed tab is present (eg. Heatmap Aggregation).
[x] Fix error in size when changing from Fixed to By Valueoption
[x] Add constants

retest this please


Expense Tracker using React.

Prerequisites

[X] I am a GSSoC-22 Participant
[X] I checked to make sure that this issue has not already been filed

Description
It will be an expense tracker that tracks daily income and expenses . It will also work on voice recognition as I will be using Speechly API.
Tech Stack
ReactJS

@piyusha2001 Go for it. Good Luck 👍


Missing DNS entry for Microsoft partner center API (api.partnercenter.microsoft.com)

Looks to me that Azure default DNS is missing a host entry for api.partnercenter.microsoft.com. Calls from my ASE and as well as VM in Australia Southeast are not working and give error saying host can not be resolved. I then switched to a custom DNS and it works.
Is this expected or a misconfig as partner center is a public API?
nslookup for the host name results in
C:\Users\xxxx>nslookup api.partnercenter.microsoft.com

Server:  UnKnown
Address:  <IP_ADDRESS>
Non-authoritative answer:
Name:    api.partnercenter.microsoft.com

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

ID: 56c25cb6-7add-579e-a928-c61b83e1c58f
Version Independent ID: b323fd56-255d-0924-b4b2-967cc66619df
Content: What is Azure DNS?
Content Source: articles/dns/dns-overview.md
Service: dns
GitHub Login: @rohinkoul
Microsoft Alias: rohink

@akki-s , Thanks for reaching out. We will investigate and update this thread.

I've raised this with support and it looks like to be an isolated issue with the virtual network I'm using. I'm not sure what's wrong, but if change the DNS to use Google's DNS server instead of the default Azure DNS it works.

So, I tried it from a VM in a new virual network and it works fine. However, from the VM deployed in the virtual network that is used by the ASE it does not work. I do not think a setting in the vNet would be causing this. If there were an issue with the vNet, it should not have worked for other domains as well, or not work with the third party DNS services.
Issue only comes if using Azure DNS to access only one particular domain I.e. api.partnercenter.microsoft.com
Please see the results of nslookup from the VM on the same network, using Azure DNS and it works for all domains but not for api.partnercenter.microsoft.com. It even works for partnercenter.microsoft.com without the api subdomain.
Works for graph.microsoft.com
C:\Users\xxxxx>nslookup graph.microsoft.com
Server:  UnKnown
Address:  <IP_ADDRESS>

Non-authoritative answer:
Name:    ase.b.prd.ags.trafficmanager.net
Addresses:  <IP_ADDRESS>
          <IP_ADDRESS>
          <IP_ADDRESS>
Aliases:  graph.microsoft.com
          ags.privatelink.msidentity.com
          prd.ags.msidentity.com

Works for management.azure.com
C:\Users\xxxxx>nslookup management.azure.com
Server:  UnKnown
Address:  <IP_ADDRESS>

Non-authoritative answer:
Name:    rpfd-prod-ml-01.cloudapp.net
Address:  <IP_ADDRESS>
Aliases:  management.azure.com
          arm-frontdoor-prod.trafficmanager.net
          australiasoutheast.management.azure.com

Works even for partnercenter.microsoft.com
C:\Users\xxxxx>nslookup partnercenter.microsoft.com
Server:  UnKnown
Address:  <IP_ADDRESS>

Non-authoritative answer:
Name:    e321.g.akamaiedge.net
Address:  <IP_ADDRESS>
Aliases:  partnercenter.microsoft.com
          partnercenter.microsoft.com.edgekey.net

But doesn't work for api.partnercenter.microsoft.com
C:\Users\xxxxx>nslookup api.partnercenter.microsoft.com
Server:  UnKnown
Address:  <IP_ADDRESS>

Non-authoritative answer:
Name:    api.partnercenter.microsoft.com

We had a private DNS zone added for azure-api.net and which was causing this issue.


<EMAIL_ADDRESS>does not work with nyc test coverage module

Node version:
v5.8.0
ShellJS version (the most recent version/Github branch you see the bug on):
0.7.0
Operating system:
OSX
Description of the bug:
<EMAIL_ADDRESS>no longer works with https://github.com/bcoe/nyc for test coverage, my guess would be it's related to an interaction between spawn-wrap and shelljs.
Example ShellJS command to reproduce the error:
    it('populates changelog with commits since last tag by default', function () {
      fs.writeFileSync('package.json', JSON.stringify({
        version: '1.0.0'
      }), 'utf-8')

      commit('feat: first commit')
      shell.exec('git tag -a v1.0.0 -m "my awesome first release"')
      commit('fix: patch release')

      shell.exec(cliPath).code.should.equal(0)

      var content = fs.readFileSync('CHANGELOG.md', 'utf-8')
      content.should.match(/patch release/)
      content.should.not.match(/first commit/)
    })

Here's a branch exhibiting the problem:
https://github.com/conventional-changelog/standard-version/pull/29
CC: @nexdrew, @addaleax

Hi @bcoe,
Any chance you could provide a more generic shelljs command to reproduce the error?
Thanks so much!

Hi @bcoe, thanks for ccing me in this! b63dde5d1a2d5f55ff78a7a74de371124100ed0a seems like the change in shelljs that lead to this… definitely looking into it. :smile:

Sooooo… I wouldn’t consider it a bug in shelljs, and I’m going to write another PR against spawn-wrap, so you can stop reading here if you want. The following explanation is also definitely over-long, but I don’t really know the audience here.
@ariporad Don’t know if you are familiar with nyc, but it’s essentially a code coverage tool that automatically instruments the code in subprocesses. For example, one can run nyc npm test and see what parts of the code were covered by npm test, even though npm spawns the test script in a subprocess.
nyc achieves this using spawn-wrap, a module by izs that monkey-patches child_process internals. Whenever a new child process is spawned, it tries its best to determine if that’s a Node.js process or not, and if so, executes it using the wrapper script rather than directly using the “real” Node.js executable.
When spawning children using the shell, this check simply looks at the first argument after sh -c (or its equivalent) and checks the basename of that file for being node or something similar. In the case of shelljs, it’s "/usr/bin/node" or similar, due to this line. path.basename returns node" for that then, and spawn-wrap is thrown off by the extra " character. That’s all. :)

@addaleax: Hmm... That's quite strange. Thanks so much!


⚠ Bofrost.de has degraded performance

In 638b333, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1273 ms

Resolved: Bofrost.de performance has improved in a3c0c93 after 7 minutes.