Storm Sink should include the Time

The Source on Storm (and Scalding) is a (Long, T). The Long is a milli-timestamp.
The sink on storm should probably be the same: the timestamp of the event that triggered the write with the item itself.
Without this, we can't safely plug one write into another job input without storing the time in the value.

duplicate of #409


Negotiation in match

Hi,
I've got a file named parity.js
I generate a parity number into this file before every save by runonsave extension.
I would like to config runonsave to run in case of saving every .js and .css and .html. The only exception that if I change parity.js file itself. (in some situation I have to write it manually)
If parity.js has been changed then runonsave extension shouldn't run.
But I cannot create a valid match string to achieve this. Changing of parity.js always triggers runonsave indeed.
My config is:
"emeraldwalk.runonsave": {
        "commands": [
            {
                "match": "^(?!parity\.js)(.+\.js|.+\.css|.+\.html)$",
                "isAsync": false,
                "cmd": "echo export const parity = %RANDOM%; > parity.js"
            },
        ]
    },

What match string do I need to feel the wonderful fragrance of success?
Thx.

@ripetti An important thing to note is that you won't want to use the leading ^ since the match is run against the full path of the file. The only cases where you'd want this would be if your regex actually included an absolute path to match.
I think this regex should work for what you want for your scenario:
(\b(?!parity\b)\w+\.js)|.+\.(html|css)$

Here's what it looks like on regex101.com

And to use in the vscode extension, you'll need to escape the \ characters by doubling them:
"match": "(\\b(?!parity\\b)\\w+\\.js)|.+\\.(html|css)$",

@ripetti actually a cleaner config would be to use notMatch which I just realized is undocumented.
{
    "match": "\\.(html|css|js)$",
    "notMatch": "parity\\.js$",
    "isAsync": false,
    "cmd": "echo export const parity = %RANDOM%; > parity.js"
}

I've created Document notMatch #99 to address documenting the notMatch.


Update delete-an-inactive-mailbox.md

Inactive mailboxes are retained for 183 days after a hold is removed. The contents in this article need to make this difference between soft-deleted mailboxes (that were never Inactive) clear. Confirmed with Le-Wu Tung that this content should be updated and triaged by appropriate PM team.

@JohanFreelancer9 - kindly do the copy editor review for this PR. Thanks

@kellybos

Gentle reminder @kellybos Please review and update with feedback

@JohanFreelancer9

@kellybos - could you please commit my changes? Thanks.

Added comment above. Changes look good. Thank you!

@markjjo Please merge this PR. Thanks

@kellybos PR merged. Thanks for making this change. Sorry for the delay.


1/2 Persistent seeders fails to start seeding

persistent-seeder-production-logs-1593425993688.txt

2020-06-29T10:14:51.191861+00:00 app[persistent-seeder.1]: frame.waitForSelector(#connect-with-metamask-button) failed on frame State Channels Wallet
2020-06-29T10:14:51.280051+00:00 app[persistent-seeder.1]: (node:37) UnhandledPromiseRejectionWarning: TimeoutError: waiting for selector "#connect-with-metamask-button" failed: timeout 30000ms exceeded

Seems this is the issue: https://github.com/puppeteer/puppeteer/issues/5420

We could try upgrading to v4.0.1?

Yeah I had considered that, but was wary it might be a messy upgrade so didn't try it yet.


imbuing table does not benefit from better enchantment boosting

With only Amethyst Imbuement and Better Enchantment Boosting installed, the Imbuing Station does not benefit from bookshelves outside of the typical 5x5 ring centered on the station. This seems unintentional given the config option in altars_v2.cfg
"imbuingTableMatchBetterEnchantmentBoostingBehavior": true,
Glyph particles generate and move towards the station as expected, but the enchanting level does not change.

The functionality for BetterEnchantmentBoosting compatibility isn't fully implemented yet. The config option is basically a placeholder at the moment as I work on integrations.

Ah alright, thank you for clarifying. Looking forward to seeing the mod expand :)!


Size is not same for both icon, and also hit area is small for search icon

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

Action Performed:

Goto https://staging.new.expensify.com/
Hover over the search icon on homepage

Expected Result:
There should be equal spacing for all icons
Actual Result:
The spacing is not same, and therefore the hit
Workaround:
unknown
Platforms:

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

[ ] MacOS / Chrome / Safari

Version Number: 1.2.45 -0
Reproducible in staging?: y
Reproducible in production?: y
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos:
https://user-images.githubusercontent.com/43996225/209894554-1f0373f6-9759-4f13-b714-cf410cdf29c3.mp4
https://user-images.githubusercontent.com/43996225/209894571-2dc5db73-600b-4379-978a-74c3d765ede3.mov
Expensify/Expensify Issue URL:
Issue reported by: @mdneyazahmad
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1672221807909359
View all open jobs on GitHub

@MitchExpensify I posted in bug-zero since I think this is not a bug and we can simply close it.

After some discussion, we decided not to change this as it's not a bug (nothing is broken) and it does not improve user experience. Because of that, I am closing it!

Thanks @pecanoro!


Filtering by DateTime property ignores the time

Describe the bug
Our use case:

we use EF Core and one of our entities has a DateTime property: public DateTime Timestamp { get; set; }
we expose the property via HC like so: descriptor.Field(e => e.Timestamp).Type<NonNullType<DateTimeType>>();
we want to filter a list of these entities based on the Timestamp property:

descriptor.Filter(e => e.Timestamp)
    .AllowEquals().And()
    .AllowIn().And()
    .AllowGreaterThanOrEquals().And()
    .AllowLowerThanOrEquals().And()
    .BindFiltersExplicitly();

When we filter in the query (where: { timestamp_gte: "2020-09-26T13:00:00Z" }, the time is ignored and only the date component is used for filtering. I think that this is because in HC DateTime is the CLR type of DateType? And DateType ignores the time component of the string?
To Reproduce
Steps to reproduce the behavior: see example above
Expected behavior
I find this behaviour inconsistent. I'd expect one of two things:

The filter automatically uses the DateTimeType, as this is what we specified in the ObjectType for our entity
The IFilterInputTypeDescriptor should offer a method to specify the type, just like it's possible with the IObjectTypeDescriptor

Desktop (please complete the following information):

OS: MacOS 10.15.5
HC version: 10.4.3

Additional context
I think one workaround could be to change the type of our Timestamp property to DateTimeOffset. However, I don't like this solution so much because we would need to introduce a translation between the types in EF Core.
Edit: a workaround to convert between the types in EF core, the API now works as expected
builder.Property(e => e.Timestamp)
    .IsRequired()
    .HasConversion(t => t.UtcDateTime,
        t => new DateTimeOffset(t, TimeSpan.Zero));

Creating custom filter types with custom scalar is possible in v11 filtering

Creating custom filter types with custom scalar is possible in v11 filtering


Prepare rucio.cfg and client inside cluster for testing and debugging

In order to allow for easy debugging, a client container should be running in the cluster:
Also, it is possible to use the rucio cli from within CERN and use env var or rucio.cfg.
Infos and examples:

https://github.com/rucio/rucio/blob/master/etc/rucio.cfg.template
https://github.com/rucio/containers/tree/master/clients#getting-started

With the provided rucio.cfg file, the output should look like this:
rucio whoami
account_type : SERVICE
suspended_at : None
created_at : 2023-01-23T15:51:44
account    : root
status     : ACTIVE
email      : None
deleted_at : None
updated_at : 2023-01-23T15:51:44

Done, passwords stored in the root-account secret and the 'rucio-client' pod (via adm/rucio-clients.yaml) executes a container that generates the config for the new server and the root account.

The client is active. This is done before working on IAM sync, so in the future we could envision having it connected to the ESCAPE service account.


Creating initial commit for rqlite-js

@otoolep here you go, I removed my change log so we  can start versions and publishing to npm from this repo.  This will allow to start the versions in this repo fresh which allows us to start at version 0.0.1 in npm as well.  When it is time the command to create the first version is npm run release -- --first-release which also gives you the command to publish to npm.

Thanks very much for this.

@justinmorant -- you should have received an invite from GitHub to become a collaborator for this repo.


fix: Test flow

fix: Test flow

:tada: This PR is included in version 1.0.23 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Bitmap masks are broken

Version

Phaser Version: 3.50.0-beta.3
Browser: Vivaldi 3.2.1967.47 (based on Chromium 84)

Description
Bitmap masks do not render the masked object at all.
This broke somewhere between 96072e5 and 5b08be9. A lot of the commits between those either don't build at all or produce a broken build, so I haven't been able to pinpoint the exact offender. SpectorJS shows that both the main framebuffer and the mask framebuffer are prepared correctly, but nothing is rendered to the game canvas. The broken Bitmap Mask Pipeline updates its uniforms every frame, while the working one does not, so I suspect 5c39254 may be related.
Example Test Code
The existing bitmap mask examples are affected, including BitmapMask Example and BitmapMask Alpha.

Found it. The WebGLPipeline constructor always creates a blank vertex buffer. The BitmapMaskPipeline passes in a pre-filled buffer, which is never sent to the GPU. This changed in 468c03d.
Side note: With the new constructor code, isn't the fallback buffer for this.vertexData always created, even when a buffer is actually specified? That seems a little wasteful.


Handle better multiple values eml field (eg location)

I suggest we add ; as separator when multiple locations are present. That should stop Excel from summing negative location together

commit c78d954 closes #14


ES6 on babel

Issue #25

Coverage increased (+0.7%) to 33.956% when pulling 52941edcdd7decedd18c6531cb7729a5e20c4e78 on es6_on_babel into 4ba8eef5ccd43622f9bb48a6876bc941ac01cfcc on master.


About the return value of AxiosCustomInstance

orval is a very nice solution.
I have a question about the following issue and a request for improvement.
There is no AxiosResponse type, so status etc. are not returned.
What are the steps to reproduce this issue?

see https://orval.dev/guides/custom-axios

What happens?
export const customInstance = <T>(
   config: AxiosRequestConfig, options?
   options?: AxiosRequestConfig, options?
 ): Promise<T> => { // can't get status because it's not an Promise<AxiosResponse<T>>
   const source = Axios.CancelToken.source();
   const promise = AXIOS_INSTANCE({
     ... .config,.
     ... .options, .
     cancelToken: source.token, ...
   }).then(({ data }) => data);

   // @ts-ignore
   promise.cancel = () => {
     source.cancel('Query was cancelled');
   }; }

What were you expecting to happen?
To be Promise<AxiosResponse<T>>.

Can you submit a PR?

@melloware
Thanks for the comment.
I have submitted a PR. https://github.com/anymaniax/orval/pull/925

It looks like according to @anymaniax this would break a scenario he listed?


getVertexByKey does not work.

This was already reported at google group : https://groups.google.com/forum/#!topic/orient-database/WTOQrG2kzpA
Apparently getVertexByKey does not work for searching in indexes or at least it is not working in the way that I am using it. Maybe it is only supposed to be used with Index with specific constraints ( like UNIQUE ) or something, but nothing like this is stated on the javadocs.
I found this problem this way :
1-  create the following Vertex type and index :
OrientGraphNoTx graph = factory.getNoTx();
graph.createVertexType("Government");
graph.createKeyIndex("itemid", Vertex.class, new Parameter<>("class", "Government"));
graph.createKeyIndex("nif", Vertex.class, new Parameter<>("class", "Government"));
graph.commit();

2- go on to create a Vertex of that type :
OrientGraph graph = factory.getTx();
Vertex node = graph.addVertex("class:Government");
node.setProperty("itemid", 45);
node.setProperty("nif", "1234567890");
node.setProperty("description", "Somewhere");
graph.commit() ;

3- Search for it:
Vertex exists = graph2.getVertexByKey("Government.itemid", 45);

exists at this point will be null.
I'm running 2.0-M3 on linux and the following dependencies :
"com.orientechnologies" % "orientdb-client" % "2.0-M3",
"com.orientechnologies" % "orientdb-enterprise" % "2.0-M3",
"com.orientechnologies" % "orient-commons" % "2.0-M1",
"com.orientechnologies" % "orientdb-core" % "2.0-M3",
"com.orientechnologies" % "orientdb-graphdb" % "2.0-M3",
"com.tinkerpop.blueprints" % "blueprints-core" % "2.6.0",

I have also provided a test case source code class on the google group thread that shows this problem.

No answer after long time, closing.


fix: NPE error when open non-project file

When we open a non-java file which doesn't belong to the opened project, LS will throw NPE error, since in resolvePath api we assume the file should be in workspace. So, additional checks are needed.

I think you can check this case at the client side in order to save the traffic to the language server: https://github.com/microsoft/vscode-java-dependency/blob/master/src/views/dependencyExplorer.ts#L49
Also please create a new issue for this bug for easy tracking.
Thanks.


"prev" and "next" navigation buttons have click conflict to/from first survey page

Are you requesting a feature, reporting a bug or ask a question?
Reporting a bug
What is the current behavior?
When navigating back to the first page of a survey with the "prev" button, a click seems to register with both "prev" and "next" buttons. That, or a similar conflict is occurring (the plnkr and GIF below illustrates it best)
What is the expected behavior?
Clicking the "prev" button should not produce any effects associated with "next".
How would you reproduce the current behavior (if this is a bug)?
I am animating the pages to slide into view with some jquery/css. If you add click events to either button, and navigate back to the first page, you will find a conflict.
Provide the test code and the tested page URL (if applicable)
This plnkr doesn't show the css animation, but if you view the developer console while in plnkr and inspect the html elements as you click previous and next, you will see the incorrect class names being added/removed ('slideInFromLeft', 'slideInFromRight')

They are reversed when navigating to AND from the first page. The page should slide in from the right when you answer, or click next. It should slide from the left when you click previous. This is what I'm seeing locally (you can even see the incorrect button become active with focus applied):

Specify your

browser: Chrome
browser version: 58
surveyjs platform jquery
surveyjs version: 0.12.16 dev version

@batmanbury It would be nice to get your survey with your custom widget(s), so we can play with it. Could you send it to me by e-mail?
Thank you,
Andrew

@andrewtelnov As of now I'm generating the pages and questions dynamically, so give me some time to create a workable standalone jquery survey and I will send it along.

@andrewtelnov The problems may be around/within SurveyNavigation.prototype.render and SurveyNavigation.prototype.renderButton. I've edited it to render a disabled button on the first page, rather than no button at all, and the slide direction is now correct for me.
SurveyNavigation.prototype.renderButton = function (click, text, btnClassName, isPrevButton=false) {
    var style = { marginRight: "5px" };
    var className = this.css.navigationButton + (btnClassName ? ' ' + btnClassName : "");
    if (isPrevButton) {
      return __WEBPACK_IMPORTED_MODULE_1_react__["createElement"]("input", { className: className, style: style, type: "button", onClick: click, value: text, disabled: this.survey.isFirstPage });
    } else {
      return __WEBPACK_IMPORTED_MODULE_1_react__["createElement"]("input", { className: className, style: style, type: "button", onClick: click, value: text });
    }
};

@batmanbury Probably it is a pReact issue.  Thank you for a tip, we will look at it.

@batmanbury hello, what about example for reproduce it? Could you please provide plnkr example for us?

@dmitrykurmanov @andrewtelnov Sorry! I thought I had included it in the original description.
http://plnkr.co/edit/70RZCgNGsQQEiBjgEHPZ?p=preview
If you go to the last question (question 4), don't complete the survey. Instead click Previous while looking at the developer console. You will see some console.log() statements.
If you click Previous, it should log "You clicked PREVIOUS" and if you click Next, "You clicked NEXT"
But once you hit the first page again, they trigger incorrectly, but somehow go to the correct page.

@batmanbury thank for the example, we'll check it.

@batmanbury Hello it is because of preact. Same problem as here: https://github.com/surveyjs/surveyjs/issues/405. What is your use case? You can use onCurrentPageChanged event. Here an updated plunk:
http://plnkr.co/edit/Qs0KAJkW9gfBhDAaXtrb?p=preview
Could you check it please?

That plunk looks great, much better than my workaround solution. I will implement that and see how it works in my project. @dmitrykurmanov

For anyone interested as it turns out, survey.onAfterRenderQuestion was what I ended up using for getting the animation to work properly.
When changing styles based on page changes, this is much more reliable than survey.onCurrentPageChanged.


Design issue in mobile version

May be a spacing issue or have to remove the footer for search .

I would like to work on it


Using the ID of members in the group query

Currently I have to perform a clumsy join with the entities table to get the IDs for members in a group. The ID of the member could be included in the rows returned by the groups query. thanks

Based on your feedback, Addepar is working on a change to the API to include Group ID and member ID in the export file. Will keep you posted as we get it ready to ship.

Done


Build fails if conf.py contains tags.has()

Found with sphinxcontrib-needs 0.5.3.
If I use tags.has() in conf.py according to Sphinx documentation, build fails with
WARNING: while setting up extension sphinxcontrib.needs: Error during sphinxcontrib-needs setup: /home/aleontiev/projects/mcom03/doc/doc/conf.py, name 'tags' is not defined

Exception occurred:
  File "/home/aleontiev/.local/share/virtualenvs/doc-oBoy3zpN/src/sphinxcontrib-needs/sphinxcontrib/needs/needs.py", line 195, in setup
    NeedDirective.option_spec.update(extra_options)
UnboundLocalError: local variable 'extra_options' referenced before assignment
The full traceback has been saved in /tmp/sphinx-err-jjhd2fys.log, if you want to report the issue to the developers.

# Sphinx version: 2.4.3
# Python version: 3.6.8 (CPython)
# Docutils version: 0.16 release
# Jinja2 version: 2.11.1
# Last messages:

# Loaded extensions:
Traceback (most recent call last):
  File "/home/aleontiev/.local/share/virtualenvs/doc-oBoy3zpN/lib/python3.6/site-packages/sphinx/cmd/build.py", line 275, in build_main
    args.tags, args.verbosity, args.jobs, args.keep_going)
  File "/home/aleontiev/.local/share/virtualenvs/doc-oBoy3zpN/lib/python3.6/site-packages/sphinx/application.py", line 245, in __init__
    self.setup_extension(extension)
  File "/home/aleontiev/.local/share/virtualenvs/doc-oBoy3zpN/lib/python3.6/site-packages/sphinx/application.py", line 397, in setup_extension
    self.registry.load_extension(self, extname)
  File "/home/aleontiev/.local/share/virtualenvs/doc-oBoy3zpN/lib/python3.6/site-packages/sphinx/registry.py", line 465, in load_extension
    metadata = setup(app)
  File "/home/aleontiev/.local/share/virtualenvs/doc-oBoy3zpN/src/sphinxcontrib-needs/sphinxcontrib/needs/needs.py", line 195, in setup
    NeedDirective.option_spec.update(extra_options)
UnboundLocalError: local variable 'extra_options' referenced before assignment```

Thanks for reporting and sorry for the delay.
The problem was based on an internal import of conf.py, which needed to be removed and handled differently to get rid of it.
Release will need some days, as I'm working on some features which shall get part of it.


[KARAF-5806] Upgrade to easymock 4.0.1

easymock 3.7 is not yet available. Not blocker, but it provides full support of Java 9/10/11.

retest this please

retest this please


Can't discover favicon

Hello!
I'm have favicon issue for this url http://goo.gl/9c056x
physical-web/url-validator/  - shows the icon
Beacon discover in Chrome - shows the icon
Physical web in play services doesn't show the icon.

happens to me too sometimes.

@irbisadm we were not able to verify this bug. Can you please clarify if you mean the prototype app or nearby?

@hayesjordan nearby.

Sorry for the delay. We found the issue with Nearby, they were only letting favions through that were 'big enough' we've finally got a fix through and they should be showing soon. The simplest fix if for you to increase the size of your favicon. The bug filters depending on the resolution of your phone so making it 64x64 is a bit overkill but it should work for now. Like I said, the fix should be rolling out soon.


Support color expressions

Add support for color expressions in CSS (like rgba(100, 120, 250, 0.1)).
This implementation is very different from my first approach, but simplifies adding further CSS expression.
@sbs-ableton @rof-ableton

LGTM! This seems like a very powerful addition to the framework :+1:


Rename length violation to bounds violation

The name is our fault, but it's not the best, as accesses before the base also fault, not just ones beyond base + length. Bounds violation makes it clear that it's for anything outside the bounds, and is the term we actually use in practice.

I've looked at every use of length and I blieve #367 fixes all of them.


[Draft] Macro for serialization-related trait bounds

First attempt at making a macro for generating some of the trait bounds.
The interface is rather clunky as we can't just put a macro invocation in the trait bounds section. I'm following the pattern from this SO post: https://stackoverflow.com/questions/68728105/how-can-i-generate-trait-bounds-in-a-declarative-macro
The committed code has an example of what this would look like, which I'll also reproduce here:
with_bounds_for! { BK, ( $($bounds:tt)* ) => (
impl<BK: SharedValue> Serializable for HybridImpressionReport<BK>
where
    // Additional bounds could go here
    $($bounds)*
{
    type Size = gen_size!(BK);
   // proceed to define whatever functions...
}
)}

If we think this is still worthwhile, then I can expand this and start replacing some of the trait bounds, but I'm worried about making things clunkier, so I'd like a second opinion or two.
Alternatively, I tried using serde, but I'm stuck at making AdditiveShare work with serde::Serialize/Deserialize. I'm not sure how to implement these traits for <V as vector::traits::Vectorizable>::Array

when you only have one generic type (in this example, BK), the trait bound isn't too crazy. where it get's complicated is when you start adding more and more generics.
this approach is a good start, but we actually need to make it recursive, based on an array of generics. a good start for this one would be to make BA64 generic as well (e.g., MK), and make this work recursively.

Yeah, the macro itself will need some work, but do you think the interface for calling it is acceptable?

Not quite. It should take an array of generics, not a single one. For example, you need to be able to build this with [MK, BK, V].

is it something where a proc macro can help?


[recovery] consensus consumer able to continue where left off

Story

Parent story: MystenLabs/sui#5215
Description
From @gdanezis
Ensure that the interface with the consensus consumer has enough information to construct deliver exactly once semantics. So that upon restart the consensus consumer can detect any duplicate messages re-sent. However the interfaces should be more efficient than simply replying the full sequence from the start (so some feedback that the sequenced item is consumed is necessary).

This should now be resolved as part of https://github.com/MystenLabs/narwhal/pull/824


Issue with usage documentation in the --log-level section

Issue on documentation page here: https://rclone.org/docs/
The first line of the --log-level section states that INFO is the default log level value, but the NOTICE section states that it's the default log level. It appears that NOTICE is in fact the default log level, so the first line in the section needs to be updated.

Well spotted!  Fancy sending a pull request?

Hah, I'd love to, but I have no idea how to do that. I could try to figure it out, but I might bork your whole project.

Ok I think I figured it out.


added json-ld contexts to api response

After this change requesting any of the following objects:

Biosample
Collection
ImageAcquisition
Image
Specimen
Study
StudyFileReference
will return json with an @context field with a URL that points to a file in this github repo. The content type will still be 'application/json', regardless of what gets passed in.

List of changes:

Created JSON LD context objects, with some mapping to defined concepts in external ontologies where relevant. Includes ID mappings for objects that should point back to the appropriate BIA api endpoints. Included a generic vocabulary for all undefined terms.

Updated models to automatically add in a context object with a link to the github repository path where these files will exist

Added test that attempts to parse the json-ld using the contexts, in a similar manner to how i would expect users to parse the json. There is a slight difference, in that they should not need to manually insert the jsonld context (the link should just work), but you can't test changes while pointing to the link.

changed tests that rely on the models to have some placeholder value for the context

changed the imports in the tests to avoid from X import *

Added some type checking & comment to the util method i created for checking unordered lists of dicts were equivalent.

updated the env template with a few extra pointers on how to set up testing

This is an unfinished thought but I think I should note here anyway.
I'd prefer if the contexts string field(s) were constructed by a class. Either through composition or mixin, though I think my preference so far would be a composition context class that has a repr that returns a string. A mixin would need a post_init function which might clash with other future inheritors.
My reason being repeating the same string multiple times is error prone in future development where a developer might change one field correctly but miss another not another. Moreover there might be cases where you want the url to change (maybe to a file:/// for local development or something) and then that should be changed in the .env file ( eventually not today). It also has the advantage of future version bumps being smaller PRs.
Also, using the raw. GitHub path is better than the tree one. For pure file serving a common pattern I've seen is using the GitHub.io path. This is what is done for helm file serving, but in this case I don't see any meaningful advantage.
Thoughts? If be interested in knowing if my above points are moot because of the nature of the context.

I'd prefer if the contexts string field(s) were constructed by a class. Either through composition or mixin, though I think my preference so far would be a composition context class that has a repr that returns a string. A mixin would need a post_init function which might clash with other future inheritors.
My reason being repeating the same string multiple times is error prone in future development where a developer might change one field correctly but miss another not another. Moreover there might be cases where you want the url to change (maybe to a file:/// for local development or something) and then that should be changed in the .env file ( eventually not today). It also has the advantage of future version bumps being smaller PRs.
Thoughts? If be interested in knowing if my above points are moot because of the nature of the context.

Definitely not moot. I had initially create a base dictionary which had some of the content used in all contexts (vocab, title) etc which was then used in the more specific ones which i used to create the json directly in objects. When i switched to the json file i removed that 'hierarchy'.
While I agree that the current system would be prone to errors with changes, i don't think making a better one is worth development time. It feels too early to try to create the 'correct' system as i'm not confident that we know what result we're aiming for. All the values should currently be conisdered placeholders: most of the important ones don't have an existing definitions, and where i have created a mapping, i'd bet against changes in one file needing to be reflected in all the others. I'd feel more comfortable coming back to it in ~4 months time to create a system that reflects the data-modelling decisions of the working group.
I view this more change as getting the api to return valid JSON-LD to make valid RDF to play with, but no where near the 'correct' RDF that conforms to an ontology of our api concepts (which still needs defining).

Yep, valid reasons.
If the structure is being actively developed and is prone to significant change anyway then paying some technical debt now is your decision.
Thanks for the clear and thoughtful response


Removed dead code that's colliding with new code in IntelliJ 2016.3

Some dead code collides with new code in IntelliJ 2016.3, preventing run configurations from working.
fixes #20

Thanks @sblundy!


Build script updates for error handling and rebuilds

Placeholder issue for changes while testing builds and rebuilds.

Added temporary files to .gitignore, and added checks to clean up build artifacts between runs.


[ffigen] Switch tests to Isolate.run

Now that https://github.com/dart-lang/tools/issues/520 is fixed we can use Isolate.run in tests with coverage.

coverage: 90.307%. remained the same
when pulling 67fe062b994ec491a09502936a2ba7ad3dc27a15 on isolaterun
into 10077a4f1c5c71c6b1b58163e05c91955a5335da on main.

Should you fix this usage too?
https://github.com/dart-lang/native/blob/10077a4f1c5c71c6b1b58163e05c91955a5335da/pkgs/objective_c/test/ns_input_stream_test.dart#L20

Should you fix this usage too?
https://github.com/dart-lang/native/blob/10077a4f1c5c71c6b1b58163e05c91955a5335da/pkgs/objective_c/test/ns_input_stream_test.dart#L20

I'll fix that one in https://github.com/dart-lang/native/pull/1649. Wanted to avoid merge conflicts.


Add ScalingProjection

out = w * input
where w is a parameter of size 1

Coverage decreased (-0.06%) to 62.364% when pulling 6b44bb4a6763a00d948559f1bbf2deeea2fe717b on emailweixu:scaling_projection into 8d4c453bbb7980491d539bbe574d5e729c90a097 on baidu:develop.

Whether it can support a fixed scaling factor, which can be set by user, at the same time?  Although this feature can be supported by setting the initialization value and learning rate to 0,  or using ScalingLayer.cpp.  These methods is a little complex.

@qingqing01 Fixed scaling factor can be achieved using slope_intercept_layer()

Coverage increased (+0.04%) to 62.687% when pulling 1ba98f6cd542b3d46cc7f2e1861680c147776242 on emailweixu:scaling_projection into 8295eb91bff52b2ef9c0dc53f7e4b902f14030e2 on baidu:develop.

Changes Unknown when pulling 43e309ac9eff9659c19b6993c74627ff988449fc on emailweixu:scaling_projection into ** on baidu:develop**.

Coverage increased (+0.06%) to 63.0% when pulling a6ad9a160880e74c763e5443a0d798b6f143d87d on emailweixu:scaling_projection into 0ba0f02c685e52b14632f6b9bfca4321494505c7 on baidu:develop.


Unable to associate to specific APP GW listener

When choosing APP GW under Associate fan, i cannot choose a specific listener. Currently i have 2 listeners on my APP GW. What am i doing wrong?

Dokumentoplysninger
⚠ Undlad at redigere denne sektion. Det er påkrævet til docs.microsoft.com ➟ GitHub-problemlinkning.

ID: b3abaaaa-87a3-f5b6-4265-a5cff6206ed4
Version Independent ID: c93fe969-c631-0d2d-fcb7-c347da3a96d9
Content: Introduction to Azure Web Application Firewall - Azure Web Application Firewall
Content Source: articles/web-application-firewall/ag/ag-overview.md
Service: web-application-firewall
GitHub Login: @vhorne
Microsoft Alias: victorh

@allanmoller , Can you please provide more info ?
What are the two listener that you have configured ?
What is the error that you get ?
Screenshot would be helpful

Well i have tried with both Multi-site listeners and basic, even created a new APP GW(V2) with a single multi-site listener. I am not getting any error but am only apple to choose GW.

damm its because its only supported in north Europe, when will this be available in West europe?

@allanmoller , ETA cannot be shared via this forum. Please reach out internally.


A small change request in Parser class

Hi,
First of all thanks for this great library. It's really awesome!
I'm trying to use this library in my project. I want to extend the Markdown class and override its parse() and parseBlocks() methods (inherited from Parser class), but I can't do that because some fields/methods in Parser class are private.
So, my change request is:

make Parser::_depth property protected instead of private;
make Parser::_blockTypes property protected instead of private;
make Parser::_inlineMarkers property protected instead of private;
make Parser::prepareMarkers() method protected instead of private

Is it possible?

:+1:

In general I am against making private properties protected. As soon as they are protected they belong to the API that I have to maintain backward compatibility for. If there are good reasons to expose some properties I may change their visibility though.

make Parser::_depth property protected instead of private;

$_depth is only for handling the $maximumNestingLevel, can you elaborate on why you need to access it?

make Parser::_blockTypes property protected instead of private;

what is the point of making this protected? It is an internal cache of the blockTypes() method and not used in any other place. You may just call blockTypes() to get its value.

make Parser::_inlineMarkers property protected instead of private;

this is only used by parseInline(), you are talking about overriding parse() and parseBlocks()...?

make Parser::prepareMarkers() method protected instead of private

This is the only change I see as useful right now.

Hi,
Thanks for your response.
When I'm trying to override Markdown::parse(), I have an error "Method missing prepareMarkers : prepareMarkers", because Parser::prepareMarkers() method is private. If you declare it as protected, I will be able to use it in a derived class.
When I'm trying to override Mardown::parseBlocks() method, I can't get access to the _depth, because it is private. Making it protected is the only way to access it.
If you make these two changes, I'll be able to use your library.

In general, anything protected or private can be removed from the library. Those are explicitly not public interfaces. Therefore, I think the only thing you are doing is stoping people from "mucking" with internals. If you have a way to set properties used in protected methods, that works, but otherwise private properties should only be used by private methods.

In general, anything protected or private can be removed from the library.

not if the library is created in a way that it is meant to be extensible. In this case I explicitly document how to extend the parser to add more markdown elements. So protected methods are part of the interface that is maintained and should not be broken.

but otherwise private properties should only be used by private methods.

This is a completely valid use case for private properties imo:
private $_label;

public function setLabel($label)
{
    $this->_label = trim($label);
}

public function getLabel()
{
    return $this->_label;
}

When I'm trying to override Mardown::parseBlocks() method, I can't get access to the _depth, because it is private. Making it protected is the only way to access it.

@olegkrivtsov can you explain why you want to extend parseBlocks()?

@olegkrivtsov can you explain why you want to extend parseBlocks()?

I want to extend standard Markdown in a way that would allow to add a property list before any block-level element, for example like this:
{width=50%, float=left}
![Title](images/image1.png)

This is a Leanpub-flawoured Markdown.
Here is my class: https://github.com/olegkrivtsov/openbook/blob/master/src/OpenBook/Markdown/LeanpubMarkdown.php

@olegkrivtsov I have changed the logic of parseBlocks() to call a new method parseBlock() for each new block. Does this solve your problem?

It solves my problem partially. Besides parsing blocks differently, I also need to split absy by chapters and render each chapter to different html file. You can determine what I want to do if you look at this file: https://github.com/olegkrivtsov/openbook/blob/master/src/OpenBook/Markdown/LeanpubMarkdown.php

@olegkrivtsov omg can you make that LeanpubMarkdown parser a standalone composer package?

@olegkrivtsov omg can you make that LeanpubMarkdown parser a standalone composer package?

@josegonzalez I wat thinking of that

@olegkrivtsov what is missing? I don't see it from the code.

@cebe OK, it solves my needs for now. Thank you.

Hi @cebe I've tried to use the enhancements you made, but they only partially satisfy my needs.
I need to split blocks by chapters, so each chapter will be rendered to a separate HTML file. I can do this with the current version of your code (by overriding parse() method and enumerating top-level absy blocks), but the problem is with cross-linking elements. A [cross-link](#element-id) may link to any element with "id" attribute. To correctly render links, I have to determine in what HTML file what element is located. To determine in which chapter which element will go, I would have to somehow enumerate all blocks (not only top-level ones), but this is difficult to do inside of parse() method (because each block type has each own structure). It would be much easier to do that inside of parseBlocks() method, if you made the changes I requested previously. Can you help?

@olegkrivtsov could you open a new issue for that? Will look into that later.


WSServer -> ServerWS, rate_limit 0//1 -> 10//1

I'm not 100% sure why, but tests only pass if I set the rate_limit to a nonzero value.

Still need to update REQUIRE.


Huey opens too many redis connections

I deployment for karrot.world and dev.karrot.world on yuca, huey opens over 1000 redis connections and keeps them open. This leads to OS errors like Too many files open and disrupts email sending.
I tried the following things:

disable email batching
enable connection pooling
move huey to a separate redis db

None of it helped.
I could imagine one other cause: if websocket messages are being sent as part of a huey task, e.g. process finished pickups, create new pickups (might interfere with channels async stuff)

Reported upstream bug: https://github.com/django/channels_redis/issues/125

I'm going to downgrade to channels_redis 2.2.1 until this is fixed.


[Vote] Donate Soul to Apache Foundation

After several days discussion with some Apache members, the draft is almost ready , please vote for donating the soul and soul-dashboard to Apache Foundation. soul will renamed ShenYu！
the ShenYu Proposal is :
ShenYu Proposal
Abstract
ShenYu is a high performance Microservices API gateway in Java ecosystem, compatible with a variety of mainstream framework systems, supports hot plug. Users can write their own plugin meet the current requirement and future needs in a variety of scenarios, especially in large-scale scenes.
Proposal
The ShenYu project already has a large community with many contributors (https://dromara.org/awesome/#contributors). It is also widely adopted by many companies and organizations (https://dromara.org/awesome/#knownusers).
We believe that bringing ShenYu into Apache Software Foundation could advance development of a stronger and more diverse open source community.
Dromara submits this proposal to donate ShenYu's source codes and all related documentations to Apache Software Foundation. The codes are already under Apache License Version 2.0.

Code base core: https://github.com/dromara/soul/
Code base dashboard: https://github.com/dromara/soul-dashboard/
Documentations: https://dromara.org/projects/soul/
Community: https://dromara.org/awesome/

Background
ShenYu has been used in production environment, its performance and flexibility allow us to use up very cool with the following features:

Provides plugins such as current limiting, fusing, forwarding, routing monitoring and so on.
Support HTTP, RESTFul, WebSocket, Dubbo, GRPC, Tars and Spring Cloud Proxy.
Plug-in hot plug, users can customize the implementations.
Selectors and rules are dynamically configured for flexible matching.
Support for cluster deployment.
Support A/B test and grayscale publishing.

Rationale
More than 40 organizations (refer to Who is using ShenYu: https://github.com/dromara/soul/issues/68 ) already benefit from running ShenYu to make Microservices more easier. More than 40 feature ideas (https://github.com/dromara/soul/issues?q=is%3Aissue+label%3A"type%3A+new+feature"+is%3Aclosed) come from ShenYu community.
The rapid growth of ShenYu community is empowered by open source. We believe the Apache foundation is a great fit as the long-term home for ShenYu, as it provides an established process for community-driven development and decision making by consensus. This is exactly the model we want for future ShenYu development.
Current Status Meritocracy
ShenYu was incubated in 2017 and open sourced on GitHub in 2018. Once open sourced, ShenYu has been quickly adopted by multiple organization. We have set up the PMC and Committer. New contributors are guided and reviewed by existed PMC members. When they are ready, PMC will start a vote to promote him/her to become a member of PMC or Committer. See the details See the details here(https://dromara.org/projects/soul/committer/). Contributions are always welcomed and highly valued.
Community
Now we have set development teams for ShenYu respectively in Dromara.org, didiglobal, PerfMa, YY, and IBM. We hope to grow the base of contributors by inviting all those who offer contributions through The Apache Way. Right now, we make use of GitHub as code hosting as well as for community communication.
Core Developers
The core developers, including experienced open source developers and team leaders, have formed a group full of diversity.

Yu Xiao. He is the founder of this project, Apache ShardingSphere Committer.
Jinwei Qin. He is the PMC member of Apache Dubbo and Apache ShardingSphere, the member of Dromara.
Yonglun Zhang. He is the PMC member of Apache ShardingSphere, the member of Dromara.
Liming Deng. He is the member of OpenTelemetry and Lettuce, the collaborator of jedis, the member of Dromara.
Yudong Tang. He is the member of OpenTelemetry, Caffeine maintainer, the member of Dromara.
Haochao Zhuang. He is the PMC member of Apache SkyWalking, the member of Dromara.

Alignment
In the Microservices ecosystem, ShenYu is a very popular high performance Microservices API gateway supports many RPC framework including Apache Dubbo. We believe that it will help the further growth of Microservices community by having ShenYu and Dubbo aligned within Apache foundation. The alignment is also beneficial to other Apache communities (such as Zookeeper).
Known Risks
Project Name
Current project name is Soul, will change it to ShenYu after it is accepted by the Incubator.
Orphaned Products
The risk of the ShenYu project being abandoned is minimal. There are at least 40 organizations (JD, didiglobal, PerfMa, YY, CHINA TELECOM, IBM, STATE GRID etc.) are highly incentivized to continue development. Many of these organizations have built critical business applications upon ShenYu, and have devoted significant internal infrastructure investment in ShenYu.
Inexperience with Open Source
As mentioned in Core Developers section, the core developers all work for companies that have developed or contributed to many open source projects. There are at least four PMC members from other Apache projects together with members of other famous community.
Therefore, we believe we have enough experience to deal with open source.
Homogenous Developers
The current core developers work across a variety of organizations including Dromara.org, didiglobal, PerfMa, YY; some individual developers are accepted as core developers of ShenYu as well. ShenYu has an active community of developers, and we are committed to recruiting additional committers based on their contributions to the project.
Reliance on Salaried Developers
It is expected that ShenYu development will occur on both salaried time and on volunteer time, after hours. The majority of initial committers are paid by their employer to contribute to this project. However, they are all passionate about the project, and we are confident that the project will continue even if no salaried developers contribute to the project. We are committed to recruiting additional committers including non-salaried developers.
Relationships with Other Apache Products
ShenYu is closely integrated with Dubbo, Zookeeper, Curator, Shiro and commons in numerous ways.
ShenYu integrates Apache Zookeeper as one of the service registration/discovery mechanisms. ShenYu is deeply integrated with Apache Dubbo and supports its protocol.
To some extent, ShenYu has overlapping goals with the ASF existing API gateway APISIX, but they are in different ecological niche. APISIX is written by Lua and Perl with technical architecture Nginx + etcd, while ShenYu is written by Java. ShenYu can be conveniently integrated with the RPC framework in the Java ecosystem.
An Excessive Fascination with the Apache Brand
We acknowledge the value and reputation that the Apache brand would bring to ShenYu. However, our primary interest is in the excellent community provided by Apache Software Foundation, in which all the projects could gain stability for long-term development.
Documentation
A complete set of ShenYu documentations is provided in both English and Simplified Chinese. The project will be renamed to ShenYu when migrating.

English: https://dromara.org/projects/soul/overview/
Chinese: https://dromara.org/zh/projects/soul/overview/

Initial Source
The project consists of three distinct codebases: core, dashboard and document. The address of three existed Git repositories are as follows:

https://github.com/dromara/soul
https://github.com/dromara/soul-dashboard
https://github.com/dromara/dromara.github.io/tree/master/content/en/projects/soul

Initial Source and Intellectual Property Submission Plan
As soon as ShenYu is approved to join Apache Incubator, the Initial committers will submit ICLA(s). The code is already licensed under the Apache Software License, version 2.0.
External Dependencies
As all backend codes dependencies are managed using Apache Maven, none of the external libraries need to be packaged in a source distribution.

Initial Committers
Yu Xiao<EMAIL_ADDRESS>Jinwei Qin<EMAIL_ADDRESS>Yonglun Zhang<EMAIL_ADDRESS>Liming Deng<EMAIL_ADDRESS>Yudong Tang<EMAIL_ADDRESS>Lei Zhang<EMAIL_ADDRESS>Bin Chen<EMAIL_ADDRESS>Haochao Zhuang<EMAIL_ADDRESS>Jianming Ding<EMAIL_ADDRESS>Zhenbing Feng<EMAIL_ADDRESS>Affiliations
JD TECH: Yu Xiao, Yonglun Zhang
PerfMa: Yudong Tang
HelloBike: Lei Zhang
Shein: Xiaofeng Huang
didiglobal: Ziqiang Liang
YY: Haochao Zhuang
IBM: Ze Yang
Start-ups: Liming Deng, Bin Chen, Jianming Ding, Zhenbing Feng
Sponsors
Champion

Willem Ning Jiang (ningjiang at apache dot org)

Nominated Mentors

Willem Ning Jiang (ningjiang at apache dot org)
Jincheng Sun (jincheng at apache dot org)
Duo Zhang (zhangduo at apache dot org)

Sponsoring Entity
We are expecting the Apache Incubator could sponsor this project.
The vote is for All Initial Committers:
@yu199195
@tuohai666
@kimmking
@dengliming
@tydhot
@SaberSola
@nuo-promise
@fengzhenbing
@prFor
@dmsolr
Voters can either respond "agree, yes, +1", "disagree, no, -1", or "abstain".

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

all committers passed， I will clos it！


[Bug]: Uncaught SyntaxError: Unexpected end of input

Please confirm that you have:

[x] Searched existing issues to see if your issue is a duplicate. (If you’ve found a duplicate issue, feel free to add additional information in a comment on it.)
[x] Reproduced the issue in the latest CLI version.

In which of these areas are you experiencing a problem?
App
Expected behavior
Normally, the local server serves the JavaScript files without any issues.
Actual behavior
There is a bug with the shopify cli dev command and the local server, as it truncates the JavaScript source files, resulting in an 'Uncaught SyntaxError: Unexpected end of input' error.
The source file

The site locally

Verbose output
Uncaught SyntaxError: Unexpected end of input
Reproduction steps

start shopify cli dev without --legacy
edit a .js files
the locale site breack the .js file with error end of input

Operating System
Windows 11
Shopify CLI version (check your project's package.json if you're not sure)
3.67.2
Shell
PowerShell
Node version (run node -v if you're not sure)
v22.5.1
What language and version are you using in your application?
ruby 3.0.6p216 (2023-03-30 revision 23a532679b) [x64-mingw32]

This issue should related to 4535 and 4525

As mentioned, this is related to a fix included in 3.68.0. Please try it and let us know 🙏


Add a test in vagrant for PR #745

Show an example of a sensu::check with ensure => false

@Phil-Friderici could you please have a look.

This is needed for Issue #782

Oops, completely lost this, will have a look tomorrow.

Released in v2.36.0


Correct way to use --replace-unk and --raw-text?

I have preprocessed my data (I have *.idx, *.bin files) but I'm not clear how to use these flags. Specifically, what is the argument for --raw-text when I use --replace-unk?
For more context, I am using a pretrained model from here which generates <unk> in the translated output. I want to generate sequences without <unk>.

Please check the updated documentation and reopen a new issue if this is still a problem, thanks!


Standard_D2ds_v4 accelerated network support

Hi,
I can't seem to install a Standard_D2ds_v4 with accelerated network support, are the docs incorrect in stating that all of the Ddsv4-series supports accelerated networking?
Greetings
Klaas

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

ID: 6a43e5b4-7893-dcd7-839f-e394912d1bd9
Version Independent ID: 560d2e4a-6a12-48ac-dff7-44f036450250
Content: Ddv4 and Ddsv4-series - Azure Virtual Machines
Content Source: articles/virtual-machines/ddv4-ddsv4-series.md
Service: virtual-machines
Sub-service: sizes
GitHub Login: @brbell
Microsoft Alias: brbell

Hello @Klaas- ,
Thank you for your feedback! We will review and update as appropriate.

@Klaas- Apologies in delayed response on this.
Accelerated network support needs minimum 4 vCPU, you can try D4ds_v4.
However, this will be called out in the document. This Feedback has been shared to the document team to get the document updated.

@mimckitt
Can you please check and add your comments on this doc update request as applicable.

Being addressed in https://github.com/MicrosoftDocs/azure-docs-pr/pull/147078
#please-close

That pr link does not work for me, commit should be https://github.com/MicrosoftDocs/azure-docs/commit/e5eff7186b8c5e1b36336b8cbac007dab500b78d


Check if VR runtime is installed

Check that the runtime is installed before attempting to intialize VR. This way we don't throw an exception.
Fixes #412

SonarQube analysis reported 2 issues
Note: The following issues were found on lines that were not modified in the pull request. Because these issues can't be reported as line comments, they are summarized here:

 AncientFungus:LGEPR: Cppcheck cannot find all the include files (use --check-config for details)
 VRManager.cpp#L123: The function 'SetScale' is never used.

SonarQube analysis reported 2 issues
Note: The following issues were found on lines that were not modified in the pull request. Because these issues can't be reported as line comments, they are summarized here:

 AncientFungus:LGEPR: Cppcheck cannot find all the include files (use --check-config for details)
 VRManager.cpp#L123: The function 'SetScale' is never used.


Saturate Function

Hello, can you please explain what "Saturate" function do in this code? I don't think it's a built-in function.

Saturate commonly clamps between 0 and 1, typically: https://developer.download.nvidia.com/cg/saturate.html

Thank you!


Set App.ErrWriter in App.Setup()

What type of PR is this?
(REQUIRED)

[ ] bug
[x] cleanup
[ ] documentation
[ ] feature

What this PR does / why we need it:
(REQUIRED)

This change fixes App.ErrWriter not being initialized in App.Setup() like App.Writer. It also removes the App.errWriter() private method since App.ErrWriter is now set directly.
Which issue(s) this PR fixes:
(REQUIRED)

Fixes #1096
Release Notes
(REQUIRED)

- `App.ErrWriter` now defaults to `os.Stderr` if not set.

✨thanks! ✨


Make pygeobuf into a proper Python package

No changes to the code other than simplification of the tests by using pytest.
Committing the geobuf_pb2.py module to work around absence of current protobuf lib on Ubuntu.
Closes #15.

Changes Unknown when pulling fc82361aa737a6165f7a00f7d880e6e2637375ee on python-packaging into ** on master**.

Changes Unknown when pulling f575569b89bd6049da14f509f703b932b7029d15 on python-packaging into ** on master**.

Nice, thanks!


Compiling a 8 MB WASM file using Wasmtime dev build takes 20x as long as with Wasmtime 3.0.0

Hi!
I noticed that compiling an 8 MiB WASM module (produced by the experimental WASI SDK for .NET) when using Wasmtime from commit 28cf995fd3f9926a95036758c78390f54a0289ae (current dev release) takes much longer than when using Wasmtime 3.0.0 (tested on Windows 10 x64, Build 19044).
To reproduce:

Download the WASM file as .Zip file here (note: rename the .mov file to .zip ; I renamed it to be able to upload it here): https://user-images.githubusercontent.com/13289184/203989968-4639d6d5-15c9-4e57-bf01-c2eccd756642.mov
Download and extract wasmtime-v3.0.0-x86_64-windows.zip
Run wasmtime compile dotnet-codabix-wasm-build.wasm
Then try the same with the current dev release from commit 28cf995fd3f9926a95036758c78390f54a0289ae.

On my system, with Wasmtime 3.0.0 this takes about 0.7 seconds, but with the build from commit 28cf995fd3f9926a95036758c78390f54a0289ae it takes about 13.8 seconds, which is about 20 times as long.
Is this expected?
Bisecting shows that this starts to appear with commit fc62d4ad65892837a1e1af5a9d67c8b0d4310efe (#5231) - with a release build from this commit, I get the 13.8s time, but with the previous commit 33a192556e5f11ee95cffc7a90e74b78abc340c8, I get a time of about 0.7s.
Versions and Environment
Wasmtime version or commit: Wasmtime v3.0.0 vs 28cf995fd3f9926a95036758c78390f54a0289ae
Operating system: Windows 10 Pro x64, Build 19044
Architecture: x64 (x86-64)
Thank you!

cc @fitzgen for the slowdown here
For the crash you mention that the commit prior to 28cf995fd3f9926a95036758c78390f54a0289ae doesn't have the issue, but you also mention that it seems to have the same root cause with compliation time, and I'm curious what leads you to that conclusion? Additionally would you be able to share the .NET reproduction, even if it's tough to minimize further at this time?

Hi @alexcrichton,
sorry, the "same root cause" was probably  a bit overstatement - I just noticed the crash starts happening together with the compilation slowdown, but I'm not actually sure if it really has the same root cause.
I will try to isolate a .NET repro case of this crash, but it may take a while (I think a few days).
Thank you!

Thanks for filing this bug @kpreisser! And thanks for the reproducer, Alex. Digging in.

All the compilation time is in regalloc:
$ RUST_LOG=wasmtime_cranelift=trace cargo run --release -- compile --disable-cache ~/scratch/slow.wasm
    Finished release [optimized + debuginfo] target(s) in 0.16s
     Running `target/release/wasmtime compile --disable-cache /home/nick/scratch/slow.wasm`
 DEBUG wasmtime_cranelift::compiler > FuncIndex(171) translated in 11.172192689s
 TRACE wasmtime_cranelift::compiler > FuncIndex(171) timing info
======== ========  ==================================
   Total     Self  Pass
-------- --------  ----------------------------------
   0.094    0.094  Translate WASM function
  22.156    0.087  Compilation passes
   0.003    0.003  Control flow graph
   0.013    0.013  Dominator tree
   0.001    0.001  Loop analysis
   0.001    0.001  Pre-legalization rewriting
   0.003    0.003  Dead code elimination
   0.023    0.023  Global value numbering
   0.208    0.026  Loop invariant code motion
   0.000    0.000  Remove unreachable blocks
   0.003    0.003  Remove constant phi-nodes
   0.051    0.051  VCode lowering
   0.018    0.018  VCode emission
   0.001    0.001  VCode emission finalization
  10.673   10.673  Register allocation
   0.176    0.176  Layout full renumbering
======== ========  ==================================

Added some logging for the number of vcode instructions and blocks we get after lowering.
Before:
 DEBUG cranelift_codegen::machinst::compile > Number of lowered vcode instructions: 35194
 DEBUG cranelift_codegen::machinst::compile > Number of lowered vcode blocks: 3972

After:
 DEBUG cranelift_codegen::machinst::compile > Number of lowered vcode instructions: 149067
 DEBUG cranelift_codegen::machinst::compile > Number of lowered vcode blocks: 38237

So 4.2x more instructions and 9.6x more blocks. That's... more than expected.

And the number of CLIF instructions and blocks we lower:
Before:
 DEBUG cranelift_codegen::machinst::compile > Number of CLIF instructions to lower: 98854
 DEBUG cranelift_codegen::machinst::compile > Number of CLIF blocks to lower: 2446

After:
 DEBUG cranelift_codegen::machinst::compile > Number of CLIF instructions to lower: 279615
 DEBUG cranelift_codegen::machinst::compile > Number of CLIF blocks to lower: 36468

So 2.8x more clif instructions and 14.9x more clif blocks.

But I'm a bit confused why the before clif does not have a spectre guard at all? That is what is preventing the de-duping in the after clif.

Ah, the Spectre guard isn't needed in this case because the guard region is large enough: for any value in 0..2^32-1 of v2, the base+index will land in the guard. So it seems with the patch we are unnecessarily re-introducing Spectre guards; that's the problem, rather than something about the way we lower them.

Okay, before the heap access size is being reported as 1 which makes no sense since an i32 is being loaded. In after, it is correctly reported as 4. This pushes the limit just below the 0xffff_ffff threshold where explicit bounds checks are needed.
Trying to figure out why the access size changed at all here.

Yeah it seems this logic for factoring in guard page sizes was in cranelift-wasm rather than heap_addr. Trying to untangle now...

Okay I've put up https://github.com/bytecodealliance/wasmtime/pull/5335 and also double checked that it returns us to our original compile times for this issue's test case.

I will try to isolate a .NET repro case of this crash, but it may take a while (I think a few days).

I have now managed to isolate the .NET code required to reproduce the access violation with Wasmtime.Dotnet. I think I will create a new issue for that, as I'm not sure if it is actually related to the regression of the compile time.
Thanks!

Thank you for the quick fix of this issue!


adminAuth and reverse proxy with BasicAuth

What are the steps to reproduce?
Place Node-red under a nginx reverse proxy with basicauth enabled
Enable AdminAuth in node-red
OR
Set httpRoot: '/red'
Enable httpStatic
Enable AdminAuth in node-red
Enable httpStaticAuth
What happens?
Whenever you log-in in the administrator screen you are logged out of the static/reverse_proxy
What do you expect to happen?
Stay logged in in the static/reverse_proxy
Any theory?
BasicAuth uses the "Authorization "Basic"' header while the AdminAuth wants to get a token by sending an 'Authorization "Bearer"' header, logging it out from the BasicAuth.
Please tell us about your environment:

[v0.18.4] Node-RED version:
[v8.10.0] node.js version:
[5.6.0] npm version:
[Docker official image] Platform/OS:
[Chrome 64.0.3282.186] Browser:

Hi, this will be an issue with your proxy configuration, it is not an issue with the core of node-red.
If you check out our contribution guidelines you'll see we prefer to handle this sort of thing on the mailing list, slack team or you could ask a question on Stack Overflow and tag it node-red. That way the whole Node-RED user community can help, rather than rely on the core development team.
Thanks!

Hello @knolleary
if you see the second situation:
Set httpRoot: '/red'
Enable httpStatic
Enable AdminAuth in node-red
Enable httpStaticAuth
it has nothing to do with proxy. it has to do with the two security system implemented not being compatible.
regards

it has nothing to do with proxy.

It sounds like a fundamental incompatibility with enabling basicauth on the proxy and enabling node-red's own authentication. I'm not sure how you'd expect that to work?

i would expect the authentication to use the x-auth header instead of the auth header

I'm not familiar with x-auth and a google search finds nothing. Do you have any more details to share?

https://stackoverflow.com/questions/39017297/what-is-difference-between-x-auth-token-vs-authorisation-headers-which-is-prefer
Authorization is the primary header used by clients to authenticate against peers in HTTP as foreseen in RFC 7235. It is often linked to the Basic authentication scheme as per RFC 7617, but that is not a given.
The Basic scheme allows clients to provide a username-password-pair separated by a colon (:) coded in Base64. It cannot be stressed enough that this is a transport coding that provides no real security benefits. E.g. the example given by you can trivially be 'decrypted' into Aladdin:open sesame.
Through the IANA HTTP Authentication Scheme Registry (see also: RFC 7235, sec. 5.1) you will find the Bearer scheme (defined in RFC 6750), which is closely tied to OAuth 2.0. X-Auth-Token is pretty much providing a shortcut here as it (presumably) does not rely on either OAuth or the HTTP authentication framework.
Please note that with X-Auth-Token being an unregistered header, it is subject to no formal specification and its presence and content is always tied to a respective application. No general assumptions can be made on it.

err, the last line of that is the important bit. It's not a standard

@hardillb true. but Authorization is a standard used to BasicAuth and it is being deleted by the new protocol, completly ignoring its possible usage by someone else.
Considering that BasicAuth is also used in node-red, being expelled from the static content because you entered the admin area does not seems to be sensible.
That said, the Authorization header also allows for Basic and Bearer to co-exist by the usage of a comma but the current protocol just overwrites it.

Okay, my apologies, I thought your second scenario still involved the proxy as the issue title talks about this being an issue with using a proxy.
Having tested your scenario, I'm not able to recreate it.
I have both adminAuth and httpStaticAuth enabled. httpRoot has been set.

I access a static file - prompted for basic auth.
I access the editor, login/logout etc.
I access a second static file (so there's no caching going on) - no prompt for auth.

Docker Parameter
    - USER_DIR=/data
    - CONFIG_DIR=/config
    - STATIC_DIR=/static
    - NODES_DIR=/nodes
    - HTTP_ADMIN_ROOT=/admin
    - HTTP_NODE_ROOT=/nodes
    - HTTP_PROXY=https://${NODERED_HOSTNAME}
    - DISABLE_EDITOR=false
    - LOG_LEVEL=info
    - FLOWS=/nodes/flows.json
    - ADMIN_USER=saulo
    - NODES_USER=saulo
    - STATIC_USER=saulo
    - ADMIN_PASS=<>
    - NODES_PASS=<>
    - STATIC_PASS=<>
    restart: unless-stopped
    command: [ "npm", "start", "--", "--userDir", "/data", "--settings", "/config/settings.js" ]

** settings.js **
module.exports = {
    mqttReconnectTime: 15000,
    serialReconnectTime: 15000,
    debugMaxLength: 1000,
uiPort: process.env.PORT || 1880,
flowFile: process.env.FLOW_FILE,
flowFilePretty: true,
nodesDir: process.env.NODES_DIR,
httpAdminRoot: process.env.HTTP_ADMIN_ROOT,
httpNodeRoot: process.env.HTTP_NODE_ROOT,
httpStatic: process.env.STATIC_DIR,
    adminAuth: {
        type: "credentials",
        users: [{
            username: process.env.ADMIN_USER,
            password: process.env.ADMIN_PASS,
            permissions: "*"
        }]
    },
    httpNodeAuth: {user:process.env.NODES_USER,pass: process.env.NODES_PASS},
    httpStaticAuth: {user:process.env.STATIC_USER,pass: process.env.STATIC_PASS},
    disableEditor: process.env.DISABLE_EDITOR == 'false' ? false : true,
    functionGlobalContext: {
    },
    logging: {
        console: {
            level: "trace",
            metrics: false,
            audit: false
        }
    }
}

@knolleary
I still have the issue. now that you talked about the cache I had the idea of enabling cache in chrome (which is always of to facilitate web development).
with the (chrome) cache enabled the error disappears.
I'll close it. thank you for the help.

Ok - good to know.
Do let us know if you hit any more clashes between the different auth methods. It isn't an area I can recall having any problems raised in the past, but if you stumble on something, please do let us know.

I will.


Bitstamp problem

Hi, I got an error when I try to trade with Bitstamp (paper or live),
I know there isn't backfill but the date is wrong, I get "NaN%" and nothing happen :/
Gdax work very well no problem!
Thanks for your anwsers

cannot backfill bitstamp.XRP-EUR: exchange does not offer historical data
DATE            PRICE     DIFF            VOL         RSI                         ACTIONS                      BAL                PROFIT
---------------------------- STARTING PAPER TRADING ----------------------------
!!! Paper mode enabled. No real trades are performed until you remove --paper from the startup command.
Press  l  to list available commands.
1970-01-01 01:00:01  0.00000000 XRP-EUR                0                               0.00000000 XRP  208.97 EUR   +0.00%    NaN%

Nobody have this problem ? :(

@Dosix I saw this too, the bitstamp setup wasn't clear. For testing safely I made a subaccount in bitstamp with very little credit.
Is it reading your balance for you? I realised eventually that it wasn't authenticating with bitstamp correctly, since the clientID is your customerID not your account number. Changing the clientID for bitstamp to my customerID eventually got it running properly. Hope this helps!

Thanks for your reply
So I tried with this command in my main account and not with a subaccount

./zenbot.sh trade bitstamp.XRP-EUR --paper

And it worked but when I try without bitstamp.XRP-EUR, it doesn't work
Also I must wait few minutes (10/20min) with period=5m for get correctly the data
I don't know it running properly :/

same problem here

@Dosix I'm finding it harder to use this with bitstamp. Other exchanges allow you to fetch history of that selector. As far as I understand it, it means the bot usually has the data it needs to start trading immediately. Bitstamp doesn't seem to support that in their API, so the bot has to watch and wait until it has enough data to reliably start trading. I'm wondering if that's what causing you to wait 10/20 mins with a 5min period before you start seeing the data you expect?

@tiagosiebler Yeah you have totally right
I executed the bot all night and I think that's good now because I hav enough data to reliable start trading.
PS : I'm developing a web interface for run or create bots and show statistics. I think that I will put the code in open source later.
Thanks for your anwsers guys


setOnItemSelectedListener not implemented

Hi,
In regular list view there is
* Register a callback to be invoked when an item in this AdapterView has
* been selected.
*
* @param listener The callback that will run
*/
public void setOnItemSelectedListener(OnItemSelectedListener listener) {
mOnItemSelectedListener = listener;
}
since StickyListHeadersListView not extend ListView but FrameLayout therefore this method not accesable.
Could you please add to StickyListHeadersListView.java
public void setOnItemSelectedListener(OnItemSelectedListener listener) {
    mList.setOnItemSelectedListener(listener);
}

@parahall This already is implemented...
https://github.com/emilsjolander/StickyListHeaders/blob/master/library/src/se/emilsjolander/stickylistheaders/StickyListHeadersListView.java#L727-L729
Has been in there for some time now.

Hi
I have been struggling with the same issue.
You can access the internal ListView with stickyListView.getWrappedList() and register a listener on it.
This will be the solution
stickyListView.getWrappedList().setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {}

                @Override
                public void onNothingSelected(AdapterView<?> parent) {}
            });


Support for custom sources

Hi
First up - great work on the library, looks like it is going to solve a bunch of our problems so we dont have to! :+1:
I'd like to make it easy to create source 'plugins' which can lie outside the the joerd code tree so that users can easily get it to work with their own sources. Given that a huge portion of the issues are requests for supporting other data sources, I think it could be good to make it easy to extend joerd at runtime.
Proposed changes:

Allow plugin in plugin.py to accept a full path to a module to import, rather than assuming it lies in the joerd package. This would in turn require _sources in server.py to support a different way of specifying modules to allow external modules. Something like:

for source in cfg.sources:
           if 'module' in source:
               #import module from outside joerd package
               create_fn = external_plugin(source['module']) # could also adjust the signature of 'plugin' to support different arugments, rather than creating a new plugin function
            else:
                source_type = source['type']
                create_fn = plugin('source', source_type, 'create')

Define an interface for source plugins to implement.
As far as I can see, joerd implicitly defines an interface - from the _sources function it appears a source must support a create method. Other methods to support are listed here:
https://github.com/tilezen/joerd/blob/master/CONTRIBUTING.md
It could be good to explicitly define the interface - e.g. provide an abstract base class for plugin developers to implement.
I'd also advocate moving the documentation on the interface from CONTRIBUTING to the README or some dedicated documentation.
The line create_fn = plugin('source', source_type, 'create') seems slightly counter-productive as plugin supports a custom entry point function, but server then hardcodes it to create. I'd either take the name of the entrypoint from the configuration (e.g. sources['entrypoint']), or just define that all plugins must implement create and attempt to call it (throwing an appropriate error if it doesnt exist).

I think these are relatively small changes which would allow users to implement their own data sources without having to either
a) fork the entire codebase
or
b) wait for their pull request to be merged and a new release to be created.
Popular sources could still be merged into the base library, or even a separate plugin library maintained?
Same approach could be applied to stores and outputs

Thanks for your kind comments and proposal!
We've been working on v2 which addresses some of these concerns over at https://github.com/mojodna/marblecutter/. Please poke around over there to see if it suits your needs.


[5.10] Cherry-pick a couple of macro system fixes for attached accessor macros

Cherry-pick https://github.com/apple/swift-syntax/pull/2187 and https://github.com/apple/swift-syntax/pull/2315 into release/5.10.

Explanation: Couple fixes to MacroSystem - one to allow returning an empty list of accessors for an attached accessor macro and another to remove initializers if a getter/setter is returned.
Risk: Low
Testing: New test cases
Issues:  rdar://117442713
Reviewer: Alex Hoppen (@ahoppen)

@swift-ci please test

@swift-ci please test

@swift-ci please test

@swift-ci please test Windows platform

@swift-ci please test Windows platform


Documentation out of sync

As per issue 955, https://github.com/cloudfoundry/cf-release/issues/955, can you please update the documentation to include said changes - https://docs.cloudfoundry.org/deploying/common/deploy.html.

Could you provide more detail?

Hi Amit,
As per issue #955, the default login api for the development environment was https://api.<IP_ADDRESS>.xip.io, however since an update it's now https://api.bosh-lite.com.  It would be great if the documentation could outline the default routes.  Additionally when I run a bosh vms command I'm getting a different set of VMs than in the documentation as well.
Ideally someone might want to go through the documentation by doing an install from a clean slate to make sure all the steps are captured for a new user.
Thanks,
Brad

Hi Brad,
The docs assume you're following this workflow:
http://docs.cloudfoundry.org/deploying/boshlite/
Before the doc you linked to, it's assumed you followed
http://docs.cloudfoundry.org/deploying/boshlite/create_a_manifest.html, which
states:
If you deploy BOSH Lite to an AWS Vagrant VM, you must specify a system
domain in a manifest stub. If you are deploying to a local Vagrant VM this
step is not necessary.
By default, BOSH Lite uses the system domain bosh-lite.com
http://bosh-lite.com, which resolves to the address <IP_ADDRESS>. Update
the system domain property to one of the following two values:

The domain that you configured to point to the public IP address of
the BOSH-Lite box that you previously created.
The xip.io http://xip.io domain the corresponds to the public IP
address given to your BOSH-Lite vagrant box: YOUR_PUBLIC_IP.xip.io
http://YOUR_PUBLIC_IP.xip.io. For more information about xip.io
http://xip.io, see xip.io http://xip.io/.

Is the confusion you're highlighting that it's not clear in the doc you
linked that the assumption is you've first done the stuff in the previous
doc?
Amit
On Fri, Jun 3, 2016 at 10:32 AM, barkerb1<EMAIL_ADDRESS>wrote:

Hi Amit,
As per issue #955 https://github.com/cloudfoundry/cf-release/issues/955,
the default login api for the development environment was
https://api.<IP_ADDRESS>.xip.io, however since an update it's now
https://api.bosh-lite.com. It would be great if the documentation could
outline the default routes. Additionally when I run a bosh vms command I'm
getting a different set of VMs than in the documentation as well.
Ideally someone might want to go through the documentation by doing an
install from a clean slate to make sure all the steps are captured for a
new user.
Thanks,
Brad
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/cloudfoundry/cf-release/issues/970#issuecomment-223642545,
or mute the thread
https://github.com/notifications/unsubscribe/AC9t3mPhkaKTretIZL8UmWGy1-gmQp2zks5qIGVGgaJpZM4IttXo
.

Ah ok, it looks like that section precedes this one-
https://docs.cloudfoundry.org/deploying/common/deploy.html
Would it be possible to either reference back to create_a_manifest page or reiterate the routes in step 2 under "Verify the deployment"?

PR to docs has been merged, closing this issue.


Spidermonkey 91 is EOL and unsupported

CouchDB 3.x series currently only support Spidermonkey 91, this dependency has been EOL for a long time now.
In nixpkgs, we have a CouchDB packaging for the branch 3.x, we would like to package it using non-EOL SM.
Do you have a timeline or any plan to move away from SM91 in the future?
cc https://github.com/NixOS/nixpkgs/issues/157874

Thanks for the heads-up @RaitoBezarius. We're investigating using QuickJS https://github.com/apache/couchdb/issues/4448 but so far it hasn't made into a release yet. After the discussion in the Apache CouchDB meeting the plan is to release as an option first along with an automated background scanner to check users' design docs for compatibility between SM and QuickJS (or potentially any other JS engine in the future).
I had tried to bring SM 102 in with https://github.com/apache/couchdb/pull/4305 but they keep changing the C++ API almost every release so that didn't get very far.
Recent RHEL versions have removed spidermonkey from their base packages I see Debian Bookworm still supports https://packages.debian.org/bookworm/libmozjs-78-0. Presumably they have security patches for it as well? Perhaps nixpkgs can use the Debian version?

@nickva Bookworm has v102 now too, but v102 has no security support too and v115 will end in one year [1]. This matures fast ...

@big-r81 we can't use 102 they changed the C++ API

I know and maybe v102 -> v115 again ...  ;-)

Exactly!

Ok, I'll have to check thanks

any updates on the thread?

I see that quickjs is merged into main branch, is there a release coming soon? or at least an rc tag? it would be interesting to try out quickjs builds.

@xnox we're working toward a 3.4 release. QuickJS will be released as an experimental change, off by default,  with a scanner option to validate your views for compatibility.
To try it out off of the main branch using QuickJS as a default:  ./configure --disable-spidermonkey (add --dev if you don't want to build Fauxton or docs). Then make && make release
Some Linux OS still maintain SM 78 packages, so that may still be an option if you can use those.

@nickva i am linux distribution and was hoping to axe mozjs 91 from wolfi-os =)

Closing this, SpiderMonkey support for versions >91 was added with 2cfb0c3764ee811b70213df4dcea1de5618187fe.


linear-gradient percentages break

How can we reproduce this bug?
@mixin gradient-bg() {
    background-color: #1e5e75;
    background-image: linear-gradient(120deg, #006384, #026e8b 10%, #026e8b 10%, #0895a5 50%, #0896a6 51%, #0896a6 51%, #0fc7c6) !important;
}

What happened instead?
when inlined gets converted to
style="background-color: #1e5e75; background-image: linear-gradient(120deg,#006384,#026e8b10%,#026e8b10%,#0895a550%,#0896a651%,#0896a651%,#0fc7c6) !important;"

so #026e8b10% should be #026e8b 10% and so on
it breaks the gradient, and just has a white background

Closing as duplicate of https://github.com/foundation/foundation-emails/issues/918


Support for Structured Authorization for Shoots >= Kubernetes v1.30

How to categorize this issue?
/area control-plane
/kind api-change
/kind enhancement
What would you like to be added:
Hello Team 👋
We would like to benefit from the ability to use custom Kubernetes authorization webhooks in order to give a gardener provided control plane the ability to defer Authorization decisions to an external authorization engine like OpenFGA.
The ability to be able to configure the necessary kubernetes API server args via the Shoot CRD would be needed in order to achieve our desired result
Why is this needed:
This change is needed to enable users of gardener to profit form all the features that kubernetes provides in regards to authorization modes. We would like to use this feature within the context of the ORA project, so all contributers are able to use a central authorization engine, which is able to give authorization decisions in every layer of the product.
Thanks a lot and let me know in case any other input is needed!

We have to discuss to what extent we can expose this such that users cannot exclude/block gardenlet's operations on Shoots with their authz webhooks.

Let's implement this for both core.gardener.cloud/v1beta1.Shoots and operator.gardener.cloud/v1alpha1.Gardens if their Kubernetes version is at least v1.30.
I propose to extend their APIs as follows:
kubernetes:
  kubeAPIServer:
    authorization:
      structured:
        configMapName: name-of-configmap-containing-webhook-configurations

The referenced ConfigMap should contain the list of apiserver.config.k8s.io/v1beta1.AuthorizerConfigurations (we don't embed this directly in the Shoot/Garden for API-compatibility reasons, and to prevent "blowing up" the resource in case many authorization webhooks are used).
It could look like this:
apiVersion: v1
kind: ConfigMap
metadata:
  name: name-of-configmap-containing-webhook-configurations
  namespace: garden-my-project
data:
  config.yaml: |
    authorizers:
    - type: Webhook
      # Name used to describe the authorizer
      # This is explicitly used in monitoring machinery for metrics
      # Note:
      #   - Validation for this field is similar to how K8s labels are validated today.
      # Required, with no default
      name: webhook
      webhook:
        # The duration to cache 'authorized' responses from the webhook
        # authorizer.
        # Same as setting `--authorization-webhook-cache-authorized-ttl` flag
        # Default: 5m0s
        authorizedTTL: 30s
        # The duration to cache 'unauthorized' responses from the webhook
        # authorizer.
        # Same as setting `--authorization-webhook-cache-unauthorized-ttl` flag
        # Default: 30s
        unauthorizedTTL: 30s
        # Timeout for the webhook request
        # Maximum allowed is 30s.
        # Required, with no default.
        timeout: 3s
        # The API version of the authorization.k8s.io SubjectAccessReview to
        # send to and expect from the webhook.
        # Same as setting `--authorization-webhook-version` flag
        # Required, with no default
        # Valid values: v1beta1, v1
        subjectAccessReviewVersion: v1
        # MatchConditionSubjectAccessReviewVersion specifies the SubjectAccessReview
        # version the CEL expressions are evaluated against
        # Valid values: v1
        # Required, no default value
        matchConditionSubjectAccessReviewVersion: v1
        # Controls the authorization decision when a webhook request fails to
        # complete or returns a malformed response or errors evaluating
        # matchConditions.
        # Valid values:
        #   - NoOpinion: continue to subsequent authorizers to see if one of
        #     them allows the request
        #   - Deny: reject the request without consulting subsequent authorizers
        # Required, with no default.
        failurePolicy: Deny
        connectionInfo: {} # NOT ALLOWED, SEE BELOW
        # matchConditions is a list of conditions that must be met for a request to be sent to this
        # webhook. An empty list of matchConditions matches all requests.
        # There are a maximum of 64 match conditions allowed.
        #
        # The exact matching logic is (in order):
        #   1. If at least one matchCondition evaluates to FALSE, then the webhook is skipped.
        #   2. If ALL matchConditions evaluate to TRUE, then the webhook is called.
        #   3. If at least one matchCondition evaluates to an error (but none are FALSE):
        #      - If failurePolicy=Deny, then the webhook rejects the request
        #      - If failurePolicy=NoOpinion, then the error is ignored and the webhook is skipped
        matchConditions:
        # expression represents the expression which will be evaluated by CEL. Must evaluate to bool.
        # CEL expressions have access to the contents of the SubjectAccessReview in v1 version.
        # If version specified by subjectAccessReviewVersion in the request variable is v1beta1,
        # the contents would be converted to the v1 version before evaluating the CEL expression.
        #
        # Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/
        #
        # only send resource requests to the webhook
        - expression: has(request.resourceAttributes)
        # only intercept requests to kube-system
        - expression: request.resourceAttributes.namespace == 'kube-system'
        # don't intercept requests from kube-system service accounts
        - expression: !('system:serviceaccounts:kube-system' in request.user.groups)

[!IMPORTANT]
We only accept authorizers of type Webhook. If we find another type, we should abort and return an error.
Similarly, the webhook.connectionInfo must similarly not be provided. Instead, we should create our own type:
import apiserver1beta1 "k8s.io/apiserver/pkg/apis/apiserver/v1beta1"

type WebhookAuthenticator struct {
  apiserverv1beta1.WebhookConfiguration `json:",inline"`
  KubeconfigSecretName *string `json:"kubeconfigSecretName,omitempty"
}

❗ In such Secrets containing the kubeconfig for the connection, we should check that no file references are used, and return an error otherwise.
gardenlet can read this ConfigMap, generate a new ConfigMap (in the shoot namespace in the seed cluster if needed, see below), and configure kube-apiserver's --authorization-config accordingly.
Based on the KubeconfigSecretName, gardenlet can then set the connectionInfo for the webhook configurations:
authorizers:
- type: Webhook
  name: webhook
  webhook:
    connectionInfo:
      type: KubeConfig
      kubeConfigFile: <path-to-kubeconfig-secret>

❗ Also, we should always manipulate the matchConditions[] of the webhook configurations to prevent that users exclude the gardenlet or kubeconfigs generated via the shoots/{admin,viewer}kubeconfig subresource.
Generally, gardenlet would always need to compute a ConfigMap for kube-apiserver with apiserver.config.k8s.io/v1beta1.AuthorizationConfiguration:
# for workerless shoots
apiVersion: apiserver.config.k8s.io/v1beta1
kind: AuthorizationConfiguration
authorizers:
- type: RBAC
  name: rbac

# for regular shoots
apiVersion: apiserver.config.k8s.io/v1beta1
kind: AuthorizationConfiguration
authorizers:
- type: Node
  name: node
- type: RBAC
  name: rbac

The additional user-provided webhook authorizers via the ConfigMap in .kubernetes.kubeAPIServer.authorization.structured.configMapName can be amened above, e.g.:
apiVersion: apiserver.config.k8s.io/v1beta1
kind: AuthorizationConfiguration
authorizers:
- type: Node
  name: node
- type: RBAC
  name: rbac
- type: Webhook
  name: webhook
  webhook:
    authorizedTTL: 30s
    unauthorizedTTL: 30s
    timeout: 3s
    subjectAccessReviewVersion: v1
    matchConditionSubjectAccessReviewVersion: v1
    failurePolicy: Deny
    connectionInfo:
      type: KubeConfig
      kubeConfigFile: <path-to-kubeconfig-secret>
    matchConditions:
    # some rules that exclude the `gardenlet` and users generated via the `shoots/{admin,viewer}kubeconfig` subresource
    - expression: has(request.resourceAttributes)
    - expression: request.resourceAttributes.namespace == 'kube-system'
    - expression: !('system:serviceaccounts:kube-system' in request.user.groups)

[!CAUTION]
The --authorization-mode/--authorization-webhook-* flags must no longer be provided when --authorization-config is set.

[!IMPORTANT]
gardener-operator should be adapted to make use of the new structured authorization config for the SeedAuthorizer when Garden is of >= v1.30 Kubernetes.

/remove-lifecycle rotten

/assign


Add since option for posts and videos of a page

reopen https://github.com/Fullscreen/funky/pull/92 from origin for test on travis

Coverage decreased (-5.4%) to 94.454% when pulling 7afd94e7c2ef1dbe914a41a2fe026f0f4aa0b315 on add-since into 41cf1360f8518d460955e7c67a1ceda8cc2e9c2a on master.

     Funky::ConnectionError:
       {"error":{"code":1,"message":"Please reduce the amount of data you're asking for, then retry your request"}}

Test didn't pass because of this error. Merging for now, later find another way to run test


Container doesn't get any logs

I tweaked this image so that I can monitor pfSense logs. My conainter is listening on port 5140 and pfSense is sending logs to the ip adress of the machine running the container on port 5140 but nothing get there.

My conainter is listening on port 5140

What container? What input?

Container running ELK stack configured to monitor pfSense logs.
Input tcp/udp on 5140

ELK means Elasticsearch/Logstash/Kibama, it's 3 containers here, I just wanted to make sure we were talking about the same thing :)
Is your stack running on a different machine? If yes, did you expose the TCP/UDP port 5140?

No it's one container running the whole stack as services.
The stack and pfSense are running on different machine and I exposed the ports in the Dockerfile
(EXPOSE 5140)

I send data to the container when I'm on the machine running it btw (echo "test" | nc localhost 5140)

No it's one container running the whole stack as services.

It's not, it's 3 separate containers started together, and configured to work together.

I exposed the ports in the Dockerfile

EXPOSE does not actually expose any port, it's purely metadata to indicate what port your service uses. If you want to properly expose a port to the outside you have to bind it to your host. Check the link I posted above and add your own ports please.


Pre-exacted Image Feature for Visual Genome(VG)

Hello,
I'm currently in the process of re-implementing ptp-blip for my research in the field. However, I encountered an issue during the second step mentioned in ptp/DATASET.md, which is "2. Download/Prepare Corpus (image-text pair)." Following the instructions provided, I was able to download object features for COCO2014 train/val/test, 2015 test, CC3M, and SBU using the provided download_cc3m_predictions.sh script. However, I couldn't find a download link for VG (Visual Genome) and I'm currently searching for it.
If you happen to know the download link for VG or if image features for VG are not required separately, it would be immensely helpful if you could let me know. Once again, I want to express my gratitude for the excellent research work done with ptp.
Thank you!

Here is a screenshot from the oscar website showing that there is no download link available for VG's image features.

Hi Jin.
For the VG, the image feature is not provided.
Follow "https://github.com/FingerRec/OA-Transformer/blob/main/ObjectExtractor/multiprocess_full_cc3m_complementary_modify_tsv_gen_from_video.py" or BUTD (https://github.com/MILVLG/bottom-up-attention.pytorch/blob/master/extract_features.py)  implementation in to generate vg feature.

Hi FingerRec,
Thank you for the code to extract the image features for VG. I didn't realize there was a code available for that, so I appreciate you letting me know and sharing the link. Thanks a lot!


Does not exist anymore https://github.com/bcdev/calvalus-instances

The repository at  https://github.com/bcdev/calvalus-instances does not exist anymore.
This blocks #67

It's not needed


Add WorkManager test for SeedDatabaseWorker

This add a test for the SeedDatabaseWorker using the TestListenableWorkerBuilder introduced in WorkManager v2.1.

Thank you!


[javadocs] Fixed typo in Output.java

"Emits a record the side output identified...." -> "Emits a record to the side output identified..."

Thanks a lot for the fix & review. Merged.


push and relay mode for container copy/move

All looks good to me. What we should do is update our documentation and explain pull, push, and relay to our users.

Yeah, I think I want to just be there as a somewhat hidden option for now so we can get more people playing with it. Eventually I think I want a per-remote flag to control that too.


Test: add some unit tests for service create

add some "create sandbox" unit tests

add some "create container" unit tests

Since those tests care dedicated to create service, I think it's better
to rename service_test.go to create_test.go to make it clearly.

ok. I have renamed it.


Setup of code testing analysis with Codecov

Added code coverage, testing analysis and reporting functionalities using Codevoc

Welcome to Codecov :tada:
Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests.
:information_source: You can also turn on project coverage checks and project coverage reporting on Pull Request comment
Thanks for integrating Codecov - We've got you covered :open_umbrella:


omero user role

A role for creating OMERO users and groups, and for resetting passwords non-interactively in the database.
This requires the OMERO.cli JSON output PR so Ansible can parse the output of omero user and omero group:

https://github.com/openmicroscopy/openmicroscopy/pull/4906
https://github.com/openmicroscopy/openmicroscopy/pull/4904

The non-interactive password reset is done by running omero db password, then running psql. No check for idempotency is done if a password change is forced.
What would be nice is if the OMERO.cli supported setting passwords non-interactively, (perhaps only if run by an admin?). What would also be nice is if the root password could be reset by omero admin ... instead of having to run psql manually.

This looks really nice. Besides the few inline comments, 2 high-level comments:

any potential for re-using something lower-level, like omero-server or omego for getting the required properties for direct DB connection?
this could certainly use a test, perhaps as part of training? cc: @kennethgillen @pwalczysko

any potential for re-using something lower-level, like omero-server or omego for getting the required properties for direct DB connection?

This is where roles start getting tightly coupled together :). I'm not sure of the best way to handle it, since these issues are only coming to light as we start to do more complicated stuff.

this could certainly use a test

Yes, can't promise to do it in the immediate future though

Proposal to move to a -dev directory before extracting.

Rebased, moved to roles-dev, and added a test (which will probably conflict with other PRs).

Rebased again, added tests/omero-server.yml

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#1084. See the console output for more details.
Possible conflicts:

PR #150 manics 'Add external munin roles and idr munin playbook'

ansible/ansible.cfg

Conflicting PR. Removed from build MANAGEMENT_TOOLS-merge#1085. See the console output for more details.
Possible conflicts:

PR #150 manics 'Add external munin roles and idr munin playbook'

ansible/ansible.cfg

Merging as the current state of deployment for idr 0.3.0 now that this has been clearly marked roles-dev. Cheers.


How does it work?

I really like your plugin but when I try and use it I get the paging but no table records? Which selector do I need to use from the code below: It looks like the pagination js injects the paging links into the selector but how does it redisplay the table rows?
Here is my html structure:

Date Created
Library Name
Month
Financial Year
Authority
Visitors
Details
Edit

etc

              </tbody>
</table>

My JS code is:
$(function () {
    $('#pagelist').pagination({
        items: 24,
        itemsOnPage: 8,
        cssStyle: 'light-theme'
    });
});

@bilalakil thanks for the blog post and code example!
Just for posterity's sake, here's the code sample from @bilalakil's blog post:
jQuery(function($) {
    // Grab whatever we need to paginate
    var pageParts = $(".paginate");

    // How many parts do we have?
    var numPages = pageParts.length;
    // How many parts do we want per page?
    var perPage = 2;

    // When the document loads we're on page 1
    // So to start with... hide everything else
    pageParts.slice(perPage).hide();
    // Apply simplePagination to our placeholder
    $("#page-nav").pagination({
        items: numPages,
        itemsOnPage: perPage,
        cssTheme: "light-theme",
        // We implement the actual pagination
        //   in this next function. It runs on
        //   the event that a user changes page
        onPageClick: function(pageNum) {
            // Which page parts do we show?
            var start = perPage * (pageNum - 1);
            var end = start + perPage;

            // First hide all page parts
            // Then show those just for our page
            pageParts.hide()
                     .slice(start, end).show();
        }
    });
});

Note that when I was working with a list, and had the ul selected/cached, I had to do this:
$ul.children('li').slice(5)

… and cssStyle should replace cssTheme in above code sample.

@mhulse, thanks for pointing out the cssTheme problem. I've no idea how long I've been doing it wrong >< I'll fix it... everywhere.

Oh, no worries @bilalakil! I just figured maybe there used to be a cssTheme option? No biggy though. THanks so much for sharing the code, it really helped me get my app working just right. :+1: :octocat: