serializeAllProperties returns lines in a different structure than getLine from ifcApi

Retrieving all the lines as a properties blob is great, however the lines that are retrieved do not have the same structure as the ones that you get from the getLine function. Digging into IFCWorker.js:88765 the cause is very clear:
getItemProperty(modelID, id, properties) {
        try {
            const props = await this.webIfc.GetLine(modelID, id);
            if (props.type) {
                props.type = IfcTypesMap[props.type]; // ******** Q: Why is the type replaced from the number to the string?
            }
            this.formatItemProperties(props);
            properties[id] = props;
        }
        catch (e) {
            console.log(`There was a problem getting the properties of the item with ID ${id}`);
        }
    }
    formatItemProperties(props) {
        Object.keys(props).forEach((key) => {
            const value = props[key];
            if (value && value.value !== undefined)
                props[key] = value.value; // ************** Q: Why do you set it directly to the value and drop the object structure underneath
            else if (Array.isArray(value))
                props[key] = value.map((item) => {
                    if (item && item.value)
                        return item.value; // ************** Q: Same Question as above
                    return item;
                });
        });
    }

2 Questions:

Why does the structure even change, i dont think there is a reason for it since it makes writing lines back to the ifc a lot harder (or basically impossible seeing how many different lines there are)
Would it be possible to AT LEAST offer a function that does not do this?

::take

::drop

🟢🟢🟢

::drop

Hi, @aka-blackboots! Thanks for giving it a try! It’s now once again available for anyone to take.

::take

🟢🟢🟢

::take

Hi, @quasarchimaere! Thanks for taking this bounty! The due date is January 2, 2023 UTC.
If you need to submit some pull requests (PR) to complete the tasks, make sure that the last and only the last PR has a title that either starts with the bounty ID or is exactly the same as the bounty name. After the PR is merged, this bounty’s status will automatically changed to done.
If you do not need to make a PR, tell the manager @agviegas to run ::done command after your tasks is confirmed to be done.
Good luck!

🟢🟢🟢

::drop

Hi, @quasarchimaere! Thanks for giving it a try! It’s now once again available for anyone to take.

::take

🟢🟢🟢

::take

Hi, @D4ve-R! Thanks for taking this bounty! The due date is February 21, 2023 UTC.
If you need to submit some pull requests (PR) to complete the tasks, make sure that the last and only the last PR has a title that either starts with the bounty ID or is exactly the same as the bounty name. After the PR is merged, this bounty’s status will automatically changed to done.
If you do not need to make a PR, tell the manager @agviegas to run ::done command after your tasks is confirmed to be done.
Good luck!

@agviegas can be marked as done, same issues with github's resolve comment, sorry about that!

🔴🔴🔴
Hi, @D4ve-R! The date is past due, your assignment has been revoked. It’s now available for anyone to take.

@D4ve-R take this and I'll mark it as done. Sorry for the delay!

@agviegas no worries!

::take

🟢🟢🟢

::take

Hi, @D4ve-R! Thanks for taking this bounty! The due date is March 19, 2023 UTC.
If you need to submit some pull requests (PR) to complete the tasks, make sure that the last and only the last PR has a title that either starts with the bounty ID or is exactly the same as the bounty name. After the PR is merged, this bounty’s status will automatically changed to done.
If you do not need to make a PR, tell the manager @agviegas to run ::done command after your tasks is confirmed to be done.
Good luck!

::done

🟢🟢🟢

::done

Hi, @D4ve-R! Thanks for your contributions! Please submit an expense to IFC.js Open Collective. Then, tell us the invoice number via the ::expense::_____ command (replace the _____ with the invoice number).

::expense::125715

🟢🟢🟢

::expense::125715

Hi, @D4ve-R! Thanks for the confirmation! We’ll proceed to review the expense. Once it’s approved, the payment will be scheduled.


Package download command

sh aemw pkg download --pid "$group:$name:$version" --file my/local/pkg.zip

optionally support omiting $version so that recent package matching $group and $name will be downloaded

closing, only the omiting is not implemented, feel free to reopen if it is needed


Implements basic filtering of results

Support basic on-keypress filtering of the device address,
URI, and URL values so we can thin out the list in beacon-rich
environments (like my desk).

@marcwan PTAL


Initial implementation of ADC interface

Adds an initial implementation of oneshot ADC conversion.

Closes #11.

Hm, something seems off. I've tried to read the temperature sensor but I'm getting absurd values (i.e. way outside the calibration values).

Hmm, did you ensure that you waited for t_start time before prodding the temperature sensor? Also are the stored calibration values left or right aligned?

Hmm, did you ensure that you waited for t_start time before prodding the temperature sensor?

I haven't checked the t_start time but I would assume that a few seconds should be enough.
The calibration values are 16 bit values and I've checked that they are read okay and make sense (by plugging those into the formulas to arrive at 110°C and 30°C respectively). They are 1325 (for 110°C) and 1792 (for 30°) while the ADC readings end up somewhere around 27920, so they're off by a factor of 16ish...

NB: You're missing channel 18 for V_bat.

Factor of 16ish

They are probably right aligned, while our values are left alinged, so that would make sense as that make a factor of 16 with 12 bits

Our abstraction is completely useless for non mcu-specific code otherwise. No code can guess that we only use the lowest few bits while returning a u16 (not the whole range).

The awkward bit is that all the MCU provided calibration bits are going to be right aligned then. Also @therealprof VBat should be available on stm32f04x and stm3207x devices, but I had gated it out on stm3203x devices as @david-sawatzke mentioned that it wasnt present there. Also the discussion on alignment is in one of the earlier revolved conversaions.

Vbat also doesn't exist on stm32070 (it's the same RM)

Our abstraction is completely useless for non mcu-specific code otherwise. No code can guess that we only use the lowest few bits while returning a u16 (not the whole range).

I disagree. The difference between left-aligned and right-aligned is qualitative vs. quantitative measurements. If you're just interested in (resolution independent) fractions the whole range then you go left aligned, if you're interested in the actual value then you go right-aligned.
Not that I would care much but Arduino does right-aligned by default so you will find a lot of users which would expect the same here.
In general the alignment and also the resolution should be a users choice and not fixed by the implementation.

Also @therealprof VBat should be available on stm32f04x and stm3207x devices, but I had gated it out on stm3203x

No worries, that can be added later.

@therealprof @david-sawatzke I think this is in just about final shape. I'd appreciate some glances over and input. The only extensions I have currently in mind are adding functions to read things like the TSense value as degrees C using the RM example code, however I am uncertain as to how good/bad using floating point code will be, so I might have to take a careful look at that. Also not sure if offering a builder interface for configuring an Adc at creation would be appreciated or not.

Also I'm happy to do one last pass and flatten it down to one commit before merge.

@HarkonenBade Looking great! Please add to CHANGELOG.md, cargo fmt it and squash into fewer commits.

Roger

@therealprof Done, though there are a few tiny issues remaining. It doesn't currently build clean with no features, and I'm not quite sure how to wrangle that. Also the cargo fmt run wanted me to shift a huge pile of feature statements in other files from being split over lines into being stacked on one line, I have ignored those but it does mean it doesn't fmt clean.


can not auto import

plugin version: 1.4.2
idea version: 2021.2

Need more information, please provide a simple project for it.

归档.zip

This plugin can auto-resolve protos in dependencies jar. You don't need config any settings.
Just mark your src/proto as resource dir in maven pom, or move your protos to src/resources.

Check the modified project.
No config, just add protobuf-java to dependency and mark src/proto as resource dir.
demo.zip

Check the modified project.
No config, just add protobuf-java to dependency and mark src/proto as resource dir.
demo.zip

It works thx!


Download 3.0.3 with apt-get install

Hey guys,
I still ned the 3.0.3 version on my VM since there are beaking changes on 4.X.. Is there a way to download the old version with apt-get?
I tried with apt-get install bless=3.0.3 but can't find the package.
Thank you

git clone https://github.com/BlessCSS/bless.git
git checkout 3.x
cd bless
npm install -g

npm install -g<EMAIL_ADDRESS>should work.


Refactor retries

What would you like to be added?
Refactor retries
Why is this needed?
Retries are one of the many actions that could be undertaken when an error is caught.
The current retry (strategy) definition should IMO be referenced by an handler that undertakes a retry upon given kinds of error (or upon all errors, possibly except some). It actually mixes both the handler and the retry concerns, and as such limit possibilities that we could open with my proposal.
What is your proposal?
Create a new errorHandler definition, that would allow users to define the errors they want to catch (or not to catch) and how they want to react (or not to react) to them.
An errorHandler could look like the following:
name: on-503
catch:
  when:
    #type: https://fake.hotel.com/errors/bookings/failed
    status: 503
    # title: NotAvailable
    # condition: ${ jqexpression }
  #whenNot:
  #...
then:
  continue: true #continue the flow as if nothing happened
  #retry:
  #  policy: my-retry-policy
  # end: true
  # compensate: true

An action could then reference it like so:
actions:
  - name: my-action
    functionRef: my-first-action
    onError:
      - on-503

cc @fjtirado

It's seems like this is another style of error representation as which describe in https://github.com/serverlessworkflow/specification/issues/770 . Should we keep use an unified representation？


feat: Add extism_plugin_update

This gives host the ability to re-use plugin descriptors instead of loading a new plugin each time. The plugin memory and everything is reset, so no state is shared with the newly loaded plugin. This could be used to assign a static plugin ID to a specific user or to reload an updated WASM file, I think there are a lot of ways this could come in handy.
I tried to update every SDK, but couldn't get PHP to work with my environment - @nilslice maybe you could take a look at that one?

Cool! Yes, I'll take a look at it this evening and push to this branch.

Just a quick update.. I am working on the PHP sdk, just a bit slowly. Blocked on trying to understand the class autoloading stuff that composer sets up & I've not really got much experience with. But will figure it out!

@zshipko - I think this is good to merge, and want to get the PHP sdk deployed to packagist asap.. So, once CI passes (I added PHP test back in), I'll merge.


Add Ctrl+N shortcut for "New Window"

Per the GNOME HIG, the New Window button from the primary menu should have the Ctrl+N shortcut assigned.

@fsobolev @DaPigGuy if one of you want to implement this for #322 ... as well as #321

Now that I think of it, this shortcut makes sense for creating a new account too. After carefully reading the HIG:

Creates a new content item, sometimes in a new window or tab.

If I understand correctly, creating a new window is second resort?

Now that I think of it, this shortcut makes sense for creating a new account too. After carefully reading the HIG:

Creates a new content item, sometimes in a new window or tab.

If I understand correctly, creating a new window is second resort?

Yes. These are the current shortcuts:

So both Ctrl+N and Ctrl+N+Shift are taken. Probably best to leave it as is.

Yeah, I think the way it is right now is better. I think I overthought the too much. Sorry for opening the issue :/

No worries...always good to discuss and make sure we are doing things right :)


New circular shape feature

Description
Created _buildFlagWidget(), _buildCircularFlag() and _buildRectangularFlag() methods for displaying circular or rectangle flag shape.
Reformulated README.md
Type of Change

✨ New feature (non-breaking change which adds functionality)
📝 Documentation

Can you instead make this take an enum not a String so it's less error prone

Can you instead make this take an enum not a String so it's less error prone

Thanks for suggest that change, I'm going to implement it.
For sure, this change will make code less error-prone.


Margin missing on available update

When you have a small screen (or split panes) the buttons stack and there is no margin separating them from the rest, so it looks weird:
This is under Settings > Updates

Adding this margin to that .btn-group fixes the issue
margin: 5px 0 10px;

Thanks for the report! Would you mind reopening this on https://github.com/atom/settings-view? Thanks!
Also take a look at https://discuss.atom.io/t/id-like-to-report-an-issue-request-an-enhancement-for-atom-where-on-github-do-i-do-that/19290 for a guide on where to post issues

Thanks! Will do!


Conditionally Enable/Disable the ability to drag

Is your feature request related to a problem? Please describe.
Not a problem
Describe the solution you'd like
Optionally enable/disable the ability to drag
Describe alternatives you've considered
I thought of adding a state variable 'isEditing' and if true show a DraggableFlatlist  else show a regular Flatlist, but I was wondering if it was possible to just change a prop on DraggableFlatlist instead of changing components

just don't call drag() if isEditing is true?

I should have read the doc more carefully. Thanks for the quick response and thank you for the new version


Updates README.md to clarify a gotcha

Updates the docs to clarify a gotcha with BUNDLE_DIR_NAME, as reported by #100.
I don't know what changed between django 1.8 to 2.2 but it took me a good while to figure out that the / was the issue now on django 2.2.

Thanks


update to v2.0.1

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Not sure why the bot didn't do this for us...

@conda-forge-admin, please rerender


merge package from arlac77/npm-package-template

package.json

chore(package<EMAIL_ADDRESS>chore(package<EMAIL_ADDRESS>chore(scripts): cover@#overwrite c8 --temp-directory build/coverage ava && c8 report -r lcov --temp-directory build/coverage
chore(engines<EMAIL_ADDRESS>chore(package): add nyc from template
chore(package): set $.ava.require='esm' as in template
chore(package): set $.ava.files='tests/-test.js,tests/-test.mjs' as in template
chore(package): set $.ava.extensions='js,mjs' as in template

.travis.yml

chore(travis): remove node versions 10.15.1
chore(travis): add node versions 10.15.2

Codecov Report

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

@@           Coverage Diff           @@
##           master     #416   +/-   ##
=======================================
  Coverage   93.93%   93.93%
=======================================
  Files           1        1
  Lines          33       33
=======================================
  Hits           31       31
  Misses          2        2

Continue to review full report at Codecov.

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

Coverage remained the same at 91.489% when pulling 7c3b1df2b73d757e771cd93f492bcff12fd0e8fa on template-sync-1 into 04ba1ce34486a523f7683a21e5a163e7937e28d7 on master.


Absence of value

Description
Get document at any inexisting path

Expected outcome
null
In firebase.js snapshot.val() returns null if value is empty.

Actual outcome
{}

Live Demo

Steps to reproduce

Browsers Affected

[X] Chrome

Based from what I have experienced working on this, it forces all values to be {} and not null. There's this line in https://github.com/firebase/polymerfire/blob/master/firebase-document.html at 163 where it uses this.zeroValue. If you look at line 66. get zeroValue() returns {}. You might want to set zeroValue to null if you want (but I haven't tried that though). The problem with doing a null for zeroValue is it might have undesired consequences, like accidentally deleting the value of the path (because saving at a path with a null value deletes it).
That's why what I did for now (which is a bit hackish) is to use a checker to check if the value returned is an empty object. signifying that it is either null or {}, which is for me a false value if I want to check for its existence

@tjmonsi thank you! You're right. Seems very risky. But I'll try to experiment with it.
I'm having some mess with code because of {}.
I have places where {} is OK within architecture but I have to add additional check or add some attribute that I have to take care.

@tjmonsi seems that setting zeroValue to null works as well as dom-if. Awesome!

I would not recommend altering your copy of polymerfire locally.
This is because of #33.
TLDR: it currently resolves null values to {} to make bindings easier/more friendly.

At least dom-if is not working with {}. In general I'd like to have undefined before binding and null if path is empty. And Yes, there are cases when default {} makes job easier. May be there should be parameter that handles behavior of zeroValue?

Please discuss in #33 as this is a duplicate issue. You can see my thoughts and @mbleigh's in there also :)


Fix issue where Component super args were incorrect

This makes types less safe, but previously, TypeScript would squash
the type param making it incorrect.
Before
declare type ComponentConstructor = {
    new <T extends ComponentSignature = {}>(...args: ConstructorParameters<GlimmerComponentConstructor>): Component<T>;
};
declare const Component: StaticSide<typeof import("@glimmer/component").default> & ComponentConstructor;

After:
declare type ComponentConstructor = {
    new <T extends ComponentSignature = {}>(owner: unknown, args: unknown): Component<T>;
};
declare const Component: StaticSide<typeof import("@glimmer/component").default> & ComponentConstructor;

Instead of merging into main, this should be its own branch for 0.7.3.

I'm going to close this since #280 landed. Thanks again!


Control Plane as a Service

What would you like to be added:
Gardener is providing a fully manged K8S clusters as a service. It is taking care for everything:

Infrastructure
Nodes
Control Plane with properly configure and enable cloud extensions(ccm, csi)
Network plugins
and others

In #1896 I was thinking loudly that the shoot API resource might need to support use-case where the Gardener provides and manages the control plane only and let the user have the full control over the infrastructure, nodes and cloud specific extensions.
Based on whether the fields shoot.spec.provider.[infrastructureConfig|workers]  are provided or not, the Gardener will provide a fully managed cluster or just the control plane.
It should be possible to switch between both offerings K8SaaS and CPaaS for the same cluster.
For the CPaaS case the credentials for the IaaS API are not needed, so the Gardener has to manage it even if shoot.spec.secretBindingName is not provided.
Why is this needed:
In this way the end user has the full control and opinion how to setup its infrastructure, while the Gardener is taking care to operate, monitor and back-up its control plane.

For the CPaaS case the credentials for the IaaS API are not needed

See my comment: https://github.com/gardener/gardener/issues/1896#issuecomment-583964646

Though, generally, please keep in mind that the control plane also contains provider-specific components like cloud-controller-manager or CSI controllers which are requiring a) the cloud provider credentials and b) proper configuration. I don't think it's reasonable to offer CPaaS without these essential components. If you want to offer CPaaS you have to find a way to let the user configure these components for his use-case (we don't control the infrastructure anymore, hence, user needs full control).

This is why I have used

and let the user have the full control over the ... cloud specific extensions.

I have not much experience with CCM/CSI, but I believe they can be deployed outside the seed and talk with the k8s API via the "public" endpoint.

I have not much experience with CCM/CSI, but I believe they can be deployed outside the seed and talk with the k8s API via the "public" endpoint.

But doesn't that kinda defeat the CPaaS idea?

But doesn't that kinda defeat the CPaaS idea?

Why? The infrastructure can be anything and there is no extension that is aware about it, so it has to be handled by the shoot owner.
The Gardener will provide only general purpose components like etcd, kube apiserver, kube controller manager and kube scheduler, and maybe a few others.

But doesn't that kinda defeat the CPaaS idea?

Why? The infrastructure can be anything and there is no extension that is aware about it, so it has to be handled by the shoot owner.
The Gardener will provide only general purpose components like etcd, kube apiserver, kube controller manager and kube scheduler, and maybe a few others.

That depends on what we mean by control-plane. Some infrastructure controllers (cloud-controller-manager, machine-controller-manager etc.) are as much control-plane as the more general purpose components like etcd, kube-apiserver, etc.
A way to host such infra-specific control-plane components adjacent to the general purpose control-plane components would be nice (but, of course, hard). This is what I meant.

... shoot API resource might need to support use-case where the Gardener provides and manages the control plane only and let the user have the full control over the infrastructure, nodes and cloud specific extensions.

I think it is clear that in this case Gardener and its extensions will not take care about VMs, VPC/subnets, cloud-controller-manager, csi and other cloud specific resources. So CPaaS is only the general purpose cloud agnostic components.

I don't think we will work anytime soon on it, nor it's unclear whether this is in the scope of g/g. Shall we close the issue for now? /cc @vlerenc @vasu1124 @gardener/gardener-maintainers

@rfranzke Are we reopening this one now again or create a new one, now that this subject matter is under discussion?

I would vote for opening a new issue - this one here was having a slightly different scope:

here the Gardener provides and manages the control plane only and let the user have the full control over the infrastructure, nodes and cloud specific extensions.

What we actually worked on in the Hackathon end of 2021 was to only manage the Kubernetes control plane without the intention of letting the user manually connect/configure nodes or any cloud provider specifics.


Update mnemosyne to 2.4.1

After making all changes to the cask:

[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} left no offenses.
[x] The commit message includes the cask’s name and version.

Do not merge.

This app does not have a code signature, so I've uploaded it to VirusTotal instead: https://www.virustotal.com/en-gb/file/71cbd92d9621834701c2420b53f9e05290b6c39c061157ccd8b076eca6a6d43d/analysis/1494752816/

@Mnemosyne_proj The SHA-256 hash for your the Mnemosyne app has changed. Was this legitimate? cc @homebrewcask

https://twitter.com/gtmgianni/status/863686680292855808

No signature; no developer reply. Closing.


[ISSUE #214]Fix bug: Ensure that the QoS of Payload Messages sent in response to a Subscription is set to the minimum of the QoS of the original message and the maximum QoS granted by the Server (MQTT-3.8.4-6)

Ensure that the QoS of Payload Messages sent in response to a Subscription is set to the minimum of the QoS of the original message and the maximum QoS granted by the Server (MQTT-3.8.4-6)

fix issue https://github.com/apache/rocketmq-mqtt/issues/214

please pr to develop


Create a workspace snapshot data type.

Workspace snapshots represent the state of the workspace  at a certain point in time. Ideally it'd be great to use Roslyn's workspace as a motivation but their workspace is tied too strictly to their types so we'll need to make our own. A workspace snapshot changes overtime, for instance when you add a file to the workspace the previous workspace instance no longer equals the new one (they're immutable).
This issue doesn't track creating/updating snapshots its reason is to provide a common type that other infrastructure bits can use to make decisions.
Basic structure of a workspace snapshot
// VersionStamp is a Roslyn type
VersionStamp Version { get; }

// Dependent on https://github.com/protobuflab/protobuf-langserver/issues/4
IReadOnlyList<DocumentSnapshotType> Documents { get; }

// Might need some helper methods here to enable a parser to find imports and friends.

A workspace snapshot is immutable.

https://github.com/protobuflab/protobuf-langserver/commit/7a94c93ae341bba915c066d88ff7a219ee1b766f


Three

[x] only start the simulation when someone is listening (fixes #45)
[x] make forceCenter less aggressive  (fixes #81)
[x] tests (#17)
[x] add forceRadial x, y and angle accessors (#167)

Because of the breaking changes in #81 (which impacts #17), #167 (and partly #45) this branch is "maximalist", and should be published as d3-force@3.
I would prefer to do this "maximalist" approach now to integrate into d3v6, but the alternative option is to have a minimalist d3-force@2 (#172) and wait for d3@7 to include these changes.

If we’re willing to break backwards-compatibility then I think having explicit start is better than implicit start on the first event listener.

I've just pushed that change (with simulation.restart aliased as simulation.start).
The code is admittedly cleaner, but it feels a bit awkward. (Maybe I just need a moment to get used to it.)

Concerning forceCenter() there is probably a case to be made for when you want an immediate centering (in particular to recenter an initial phyllotaxis arrangement).
Should we remove the dependency on alpha and just leave an optional strength() function? Then the default strength(1) would be immediate, and strength(0.05) or so would be the go-to choice for gentle interactive recentering.

TL;DR: Drop #45 ; merge #167, #81 and #17.
After more consideration and tests:

I'm not terribly happy with #45; automatic start is nicer to use than having to explicitly call simulation.start, and easy to override with simulation.stop(). The logic of "waiting for listeners" (dubbed solution 1) was not right either (even if that's not recommended, you can imagine a situation in which the forces themselves are producing some side effects, the simulation being used like a timer…). The issue it wants to address can be solved by an example (stop, load then restart). So I'd vote to walk back this part.

forceRadial x, y and angle accessors (#167) are great; I don't think that it will impact many examples (or any at all) but the change is technically breaking (the getters now returning a function rather than a number). We might want to add a strength setter too.

forceCenter.strength solves #81 and defaults to the previous behavior, meaning it can be included with no breaking change, now or later.

the tests are now immune to the change in forceCenter, so they can be included with no breaking change

closing in favor of #174


fix(docs): add discord invitation link

Issue number: #1469
Summary
Changes

Please provide a summary of what's being changed

Add Discord invitation where the Slack invitation was before (#1210 ). I wasn't sure if the Discord link should be added to docs/tutorial as well.
User experience

Please share what the user experience looks like before and after this change

New users will now be redirected to the community in Discord, instead of Slack.
Checklist
If your change doesn't seem to apply, please leave them unchecked.

[x] Meet tenets criteria
[x] I have performed a self-review of this change
[ ] Changes have been tested
[ ] Changes are documented
[x] PR title follows conventional commit semantics

Is this a breaking change?
No

Acknowledgment
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
Disclaimer: We value your time and bandwidth. As such, any pull requests created on non-triaged issues might not be successful.

View rendered README.md

Thank you @sthuber90 !!!!


Automatically execute SQL files mounted in a specific directory upon container creation

We run SQL Server as part of a Docker Compose setup that starts a bunch of databases from different vendors to test our product Flyway (https://flywaydb.org).
As part of this setup we need to create a number of different SQL Server databases for our various test cases.
It would be great to be able to mount a volume say to /sql that contains a bunch of SQL scripts that would be executed in alphabetical order once the database server is up and running.
Right now we have to override the entrypoint to do this. Other images like postgres and mysqlsupport this out of the box and it's super useful.

We envision this "feature" too because it will give you a lot of flexibility in what you can do.  It could be used to create logins, populate test data, run some maintenance scripts, etc.  Let's keep this here as a distinct enhancement request until we can get to it.

I used the genschsa/mssql-server-linux image which does it exactly like the postgres and mysql/mysql-server images, i.e.

docker run -p 1433:1433 --name mssql -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=Strong(!)Password' -v $PWD/initdb.d:/docker-entrypoint-initdb.d -d genschsa/mssql-server-linux


support for multidate

In the previous plugin version If a schema field had type:[Date] and in datePickerOptions multiple dates were enabled multidate: true - only the first date was saved into array after form submit.
Example:

I choose 2 dates in datepicker: 07/03/2015,10/04/2015
I submit the form
there is only one value in dates array: 2015-03-07 00:00:00.000Z

Also the problem was with update form: in rendered template nothing appeared in datepicker input field if we had type:[Date].
With new changes it is solved.

+1 it 'd be awesome when merged!

:+1:


"Extends" property

I suggest the use of extends: string<path_to_foreign_config_file> property in options which are related to foreign packages configuration. In this manner, the reboost's own options are kept separate from the foreign ones.
For example, in contentServer, resolve, chokidar, PostCSSPlugin, esbuildPlugin, BabelPlugin, etc.
There are people who like having a main config file, like windows "registry", and others who prefer working with many small config files. Just give them the freedom to choose and keep them satisfied.

I always thought that they can do it using Node JS modules. For example
// resolve.config.js
module.exports = {
  // Resolve options
}

// babel.config.json
{
  "plugins": ["some-plugin"]
}

// reboost.js
const { start } = require('reboost');
const BabelPlugin = require('@reboost/plugin-babel');
const resolveConfig = require('./resolve.config.js');
const babelConfig = require('./babel.config.json');

start({
  resolve: {
    ...resolveConfig,
    // If I want to override `extensions` option
    extensions: myExtensions
  },
  plugins: [
    BabelPlugin({
      ...babelConfig,
      include: /.*/,
      exclude: /node_modules/
    })
  ]
})

So do we really need that option?

 We do not really need it! You may keep it as a low priority sugar syntax for the spread operator in future when all other high priorities will have been settled down and you'll wonder what else small features can be added to "improve/develop" the project. I have seen that "extends" property is often used by other packages, too.

 Leaving this issue open.


MS Visual Studio 2015 support

latest dev code with latest sqlpp-mysql-connector compile fail in 2015
and 0.35 sqlpp I cannot compile with the latest sqlpp-mysql-connector... so I feel confused!
Can you release sqlpp-mysql-connector with sqlpp's version?

Hi,
As you can see here, @ACB1337 was able to compile on Windows using the latest release of both, sqlpp11 and sqlpp11-connector-mysql.
Running a rebuild, I can see that there is a problem when trying to compile with MariaDb, something about snprintf which looks really annoying, but should be unrelated.
If you continue having problems, can you send me actual error messages, please?
Best,
Roland

sqlpp::mysql::connection db(config);
		test::User user_table;
		auto x = db.run(sqlpp::select(sqlpp::all_of(user_table)).from(user_table).where(true));

1>crow\example.cpp(157): error C2672: 'sqlpp::mysql::connection::run': no matching overloaded function found
1>crow\example.cpp(157): error C2893: Failed to specialize function template 'unknown-type sqlpp::mysql::connection::run(const T &)'
1>  crow\example.cpp(157): note: With the following template arguments:
1>  crow\example.cpp(157): note: 'T=sqlpp::assert_where_arg_is_not_cpp_bool_t'

Thank you!

I found .unconditionally() function compile good!
Please update sqlpp11-mysql-connector's example!

The error message is good news. Shows that even though MSVC is swallowing the static assert, you get something to work with.
I updated the README, too. Thanks!


Error: Unable to run the generated Docker image

Have you read a contributing guide?

[X] I have read CONTRIBUTING.md
[X] I have searched the existing issues and didn't find any that were similar
[X] I have considered creating a pull request with fixes instead of a bug report and want to proceed

Current Behavior
The build process finishes with the following log:
# ~/volume/any-sync-dockercompose# make start

docker buildx build --tag generateconfig-env --file Dockerfile-generateconfig-env .
[+] Building 3.5s (10/10) FINISHED                                                                                docker-container:sad_faraday
 => [internal] load build definition from Dockerfile-generateconfig-env                                                                         0.1s
 => => transferring dockerfile: 276B                                                                                0.0s
 => resolve image config for docker-image://docker.io/docker/dockerfile:1                                                                       1.6s
 => CACHED docker-image://docker.io/docker/dockerfile:1@sha256:fe40cf4e92cd0c467be2cfc30657a680ae2398318afd50b0c80585784c604f28                 0.0s
 => => resolve docker.io/docker/dockerfile:1@sha256:fe40cf4e92cd0c467be2cfc30657a680ae2398318afd50b0c80585784c604f28                            0.0s
 => [internal] load metadata for docker.io/library/python:3.11-alpine                                                                           0.9s
 => [internal] load .dockerignore                                                                                0.0s
 => => transferring context: 2B                                                                                0.0s
 => [1/4] FROM docker.io/library/python:3.11-alpine@sha256:700b4aa84090748aafb348fc042b5970abb0a73c8f1b4fcfe0f4e3c2a4a9fcca                     0.1s
 => => resolve docker.io/library/python:3.11-alpine@sha256:700b4aa84090748aafb348fc042b5970abb0a73c8f1b4fcfe0f4e3c2a4a9fcca                     0.1s
 => [internal] load build context                                                                                0.0s
 => => transferring context: 104B                                                                                0.0s
 => CACHED [2/4] WORKDIR /code                                                                                0.0s
 => CACHED [3/4] COPY docker-generateconfig/env-requirements.txt requirements.txt                                                               0.0s
 => CACHED [4/4] RUN pip install -r requirements.txt                                                                                0.0s
WARNING: No output specified with docker-container driver. Build result will only remain in the build cache. To push result image into registry use --push or to load image into docker use --load
docker run --rm \
	--volume /root/volume/any-sync-dockercompose/:/code/ \
	generateconfig-env
Unable to find image 'generateconfig-env:latest' locally
docker: Error response from daemon: pull access denied for generateconfig-env, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
See 'docker run --help'.
make: *** [Makefile:5: generate_env] Error 125

Expected Behavior
.
Steps To Reproduce

Clone the repository.
Navigate to the project directory.
Execute the command: make start.

Environment
- OS: Ubuntu 20.04.6 LTS
- Version: 27.1.1

Anything else?
No response

I cannot reproduce this on my system, but according to stackoverflow, adding the --load flag should help.
please try running it from this branch. I've made the necessary changes there.

@pppaapp did the flag --load help you

@pppaapp did the flag --load help you

I had the same problem on an aarch64 device and the --load command was useful


Delayed Job Executor, take 2

This PR supersedes #983 since the recent changes in the LiberTEM internals made a complete re-implementation easier than a rebase.
Closes #224

[x] Also include #1147 to use the same testing strategy.

Port to recent changes in UDFRunner and Executor
Same code to run UDFs directly or in a delayed fashion, only difference
is the executor.
Skip calculating UDF results if they are not required
Testing strategy for multiple executors

TODO and TBD items:

No happy path (yet), the result is a plain dask.delayed value
In particular, no chunking of the result
Documentation, examples etc

#983 allowed to calculate results for UDFs that use default merge as a chunked Dask array by bypassing the merge function and concatenating the result buffers instead. However, that became more difficult with the recent changes in the UDF interface such as running multiple UDFs in one pass and allowing get_results() for UDFs.
If one wanted to get results as Dask arrays, one should think more how that could be possible within the current boundaries of the UDF interface, or consider an extension. LiberTEM is inherently built around assigning into buffers procedurally, while Dask uses a more functional style. Also, the recently added much improved map() implementation in Hyperspy means that we can focus on other use cases.
Contributor Checklist:

[x] I have added or updated my entry in the creators.json file
[x] I have added a changelog entry for my contribution
[x] I have added/updated documentation for all user-facing changes
[x] I have added/updated test cases
[ ] I have included the rebuilt production build of the client (only if changes were made to the GUI)

Reviewer Checklist:

[ ] /azp run libertem.libertem-data passed

/azp run libertem.libertem-data

/azp run libertem.libertem-data

Marked as WIP since I had an idea how to make proper Dask arrays for result buffers. @matbryan52 perhaps we can discuss once I have the alternative approach prototyped and see if there are still better options?

/azp run libertem.libertem-data

Marked as WIP since I had an idea how to make proper Dask arrays for result buffers. @matbryan52 perhaps we can discuss once I have the alternative approach prototyped and see if there are still better options?

I put together a prototype last week which created Dask result buffers, and which the user can assign into in the usual way (self.results.intensity[:] += val), but it's quite brittle! I had it working for a simple nav and sig buffer cases but didn't think about things like ROIs and corrections (though it might 'just work'). We also could only have result buffers chunked in the flat nav dimension as that is a constraint of the Partition interface.  If the nav dimension is then reshaped to 2D it would (effectively) require computing the whole array unless it happens to be that the partitions span nav_shape[1].

/azp run libertem.libertem-data

I'll try to get the proto finished then we can talk about it?

Sounds good! 👍

/azp run libertem.libertem-data

/azp run libertem.libertem-data

Superseded by #1170 and #1168


Requirements for reqmgr2 from comp/data-ops

This ticket is placeholder for collection of requirements we got from C&O week and chatting with comp/data-ops:
From Andrew Lahiff

ProcessingString by default should be what is already defined in the request (S)
Is this mean, Processing String is defined when request is made but can be changed by ops when it gets assigned? Or it won't be changed?

AcquisitionEra by default should be set to the campaign name (although there is at least one exception to this rule because the campaign begins with a number) (S)
How do you want handle exception? Drop the first number in front and make that AccquisitionEra?

ProcessingVersion by default should be 1, but if any of the output datasets of the workflow would conflict with any existing datasets in DBS and/or PhEDEx, this number should be incremented as necessary

(I set the default value to 1 for this release).
Do you want to automatically check out put dataset and increase the ProcessingVersion by one?
This would be a little tricky since we have to find what was the processing version from previous request.
It could be 1, 2, etc depending on howmany done. Also ACDC should be treated differently, correct?

the LFNbase should be set appropriately, e.g. /store/data, /store/mc, /store/himc, ... (S)
You mean LFN base should be set automatically? Could you give a written rule for which goes which?

for run-dependent MC ReDigi, the splitting should be changed automatically to event splitting and set such that at least 500 (PU_RD1) or 2000 (PU_RD2) jobs will be created (S)
I probably don't understand correctly on this.
The splitting parameter should be defined in the spec (EventPerJob) in this case, are you saying this should have different values for depending on the request type?

even if there was just a simple default site as well (e.g. Tier-1 with input dataset 100% on disk), then this would be very useful (S)
I have to check whether PhEDEx gives location by dataset (not block). Default value should be only the
100% on the disk?

Other comments:

for redigi workflows, there should be a check that the pileup dataset is on disk at the site you want to assign the workflow to (S)
We check this one in WQ, but I guess that is too late for checking. (All the location check is done in WQ by block). If there is location check by dataset in PhEDEx, can do first check in reqmgr.)

if the input dataset for a ReReco or ReDigi workflow is not PRODUCTION or VALID, then assignment should fail
This require on going inputdataset (data is still fed to that dataset) should be already set PRODUCTION or VALID. Can this precondition satisfied?

This covers most of what we have in the assignment script (there are some other things like changing timeouts, max merge events and/or memory limits based on the campaign but these are less important).
Original comments:

fast turn around of workflow templates, this can be done via approach I
propose (aka das maps upload), i.e. separation of templates/workflow
parameters from release cycles (V)

I was thinking putting the template in couchdb and can be loaded periodically or triggered. But we can discuss in later.

semi-automation of assignments/approval process by using data-ops scripts,
this is what we discussed but didn't implemented yet (S)
Need to talked to OPs about more concrete requirements.

auto-assignment/suggestion of workflows to site, this is new requirement
which we didn't address or discuss how to do. To do that we need to implement
an algorithm/API to get "business" of the site and provide an interface for
auto-assingment/semi-assignment, i.e. suggestion/manual-assignment (current
design). (V)

Since all the request will have different conditions. Bulk assignments need to be carefully reviewed

For dynamic templates support please take PR: #5701

Now that reqmgr2 is basically into production, shall we close this issue?

I'll not object
On Aug 30, 2016 3:29 PM, "Alan Malta Rodrigues"<EMAIL_ADDRESS>wrote:

Now that reqmgr2 is basically into production, shall we close this issue?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/dmwm/WMCore/issues/5696#issuecomment-243552057, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAHo0viMxravHEjv116AzRQ_sN07bE9Aks5qlIR_gaJpZM4DxZ6v
.


Remove redundant time_passed calculation

https://github.com/srobo/astoria/blob/4729db8983ec1cbdcc3106a670bbd85ae2b9dcfb/astoria/astprocd/usercode_lifecycle.py#L262-L279 has a before/after time which surrounds an inline function definition. This time elapsed value is likely to be ~0 so may as well be dropped.
Currently the code is potentially confusing as it looks like it's timing how long the body of the function might take, yet that's not at all what it's doing.

Whoops I actually pushed that to main
investigates branch settings


auto columns option for plain text page (and other pages?)

@JohnSmith-LT @FayCross @torinfo
I've committed the new auto columns optional properties for the plain text page https://github.com/thexerteproject/xerteonlinetoolkits/commit/07271b543aff9565b0b51f5c6f8843add59cfe04
I think even if we don't add this anywhere else, it's useful for the plain text page. The options include how many columns, gap/gutter size and ruler style, width and colour. e.g.

Please try it out and let me know if there are any issues or changes needed?
I'd like to add similar functionality to the multi-navigator (obviously not the columns option on that page) but might depend on when we think we are ready to release. There are some other pages that it would be useful for too but less important I think.

@ronm123 works well!

Thanks for testing @FayCross @JohnSmith-LT I'll close this now. Would like to add similar functionality to the multi-navigator but that's slightly more complicated because it would need to be per navigator pane so might have to wait until a later release.


OLS-419: User feedback HTTP responses

Description
User feedback HTTP responses
Type of change

[ ] Refactor
[x] New feature
[ ] Bug fix
[ ] CVE fix
[ ] Optimization
[ ] Documentation Update
[ ] Configuration Update
[ ] Bump-up dependent library

Related Tickets & Documents

Related Issue #OLS-419
Closes #

Checklist before requesting a review

[x] I have performed a self-review of my code.
[x] PR has passed all pre-merge test jobs.
[ ] If it is a core feature, I have added thorough tests.

/lgtm

Codecov Report
Attention: Patch coverage is 66.66667% with 3 lines in your changes are missing coverage. Please review.

Project coverage is 94.70%. Comparing base (5590b61) to head (241b5b9).
Report is 18 commits behind head on main.

Additional details and impacted files

@@            Coverage Diff             @@
##             main     #753      +/-   ##
==========================================
- Coverage   94.80%   94.70%   -0.10%
==========================================
  Files          53       53
  Lines        1906     1889      -17
==========================================
- Hits         1807     1789      -18
- Misses         99      100       +1

Files
Coverage Δ

ols/app/endpoints/feedback.py
89.13% <66.66%> (-4.72%)
:arrow_down:

... and 2 files with indirect coverage changes

/approve


Questions on how to switch from an GrpcContext to io_context and back

In our App we are using an implicitly constructed io_context, which means we only instantiate the agrpc::GrpcContext.  Our coroutines (spawned on agrpc::GrpcContext::get_executor()) run both grpc and classical asio tasks like timers and channels.
To ensure we are doing this correctly I would like to ask when and how we should switch executors. For example, suppose we have a coroutine (spawned on agrpc::GrpcContext::get_executor()) that runs the operations in a loop

Wait for data from an asio::channel.
Perform an agrpc call.
Send data over another channel.

Is the following (pseudo) code and comments correct?
asio::awaitable<void> task()
{
    for (;;) {

        // Assumes we are on the connect thread. Is this correct?
        co_await channel.async_receive(use_awaitable);

        // Do I have to bind use_awaitable on the grpc_context to do this call or this is ok so?
        co_await agrpc::ClientRP.request(use_awaitable);

        // Is this necessary? Switch back to the io_context thread and only then send into the channel?
        co_await asio::post(grpc_context.get_executor(), use_awaitable);

        // The thread is correct, can perform the call.
        co_await channel.async_send({}, T, use_awaitable);
    }
}

In other works

When do I have to bind the grpc_context executor?
When should I manually switch threads with asio::post?

Thanks.

The good thing about the new asio-grpc APIs new agrpc::ClientRPC, agrpc::Alarm and agrpc::ServerRPC is that you now longer have to bind_executor but you can if you want to switch contexts before completion. In your case however, I do not see a reason to do so. Btw, channels do not create an implicit io_context and you might be able to use agrpc::Alarm to avoid creating one all together.
Assuming that somewhere else in your code:
Channel channel{grpc_context};

and
asio::co_spawn(grpc_context, task(), ...);

Then the context switches would behave as follows:
asio::awaitable<void> task()
{
    // On the GrpcContext's thread
    for (;;) {

        // The channel will wait for a message using the GrpcContext's thread (because the grpc_context was passed as argument to the channels constructor.
        // As soon as one arrives it will switch to the completion handler's executor
        // (the one provided by `use_awaitable` which is the executor that was used in co_spawn'ing this task).
        // In your case they are the same, so that's a no-op.
        co_await channel.async_receive(use_awaitable);

        // On the GrpcContext's thread

        // Works just fine without binding executor. This will use the GrpcContext's thread to wait for the server's response (because grpc_context is passed as first argument to `request`).
        // As soon as it arrives it will switch to the completion handler's executor
        // (the one provided by `use_awaitable` which is the executor that was used in co_spawn'ing this task).
        // In your case they are the same, so that's a no-op.
        co_await agrpc::ClientRPC::request(grpc_context, ..., use_awaitable);

        // On the GrpcContext's thread

        // This is a no-op, the first argument and the completion handler's executor are the same.
        co_await asio::post(grpc_context.get_executor(), use_awaitable);

        // On the GrpcContext's thread

        // Same behavior as `async_receive`
        co_await channel.async_send({}, T, use_awaitable);

        // On the GrpcContext's thread
    }
}

When using an implicit io_context created from a GrpcContext, Asio makes sure that user code never runs in the background thread that is created for it. Which means if you wait for a steady_timer for example and it completes, it will first switch to the GrpcContext's thread and then to the completion handler's thread.

Does this mean that agrpc is totally transparent and I never have to switch contexts if I never instantiate the io_context myself? This link states that agrpc will start a background thread to run the implicit io_context. But if I construct all my IO objects with GrpcContext why would it even need an io_context? Which handlers are passed to it? Are those only a subset of Asio IO-objects like socket and timers? I other words, when and how should I interact with the implicit io_context?

It is not agrpc that is transparent, it is Asio itself. It's service makes it possible that any execution_context (like GrpcContext) can be used to construct all of Asio's I/O objects. Depending on the object however, it will end up creating that implicit io_context. I don't know which objects require an io_context exactly, but timers, sockets and signal do. On Linux for example they need to create a file descriptor and poll on it. GrpcContext cannot provide that functionality for them, that's why they create the io_context.
Like I said, the implicit io_context is completely transparent. User code will never be executed on the background thread that it runs on.

Btw, channels do not create an implicit io_context and you might be able to use agrpc::Alarm to avoid creating one all together.

Do you mean a timer? Otherwise I don't see how an Alarm can substitute a asio::channel. Why should I prefer an Alarm over a timer btw?

Yes I meant asio::steady/system_timer. A channel does not create an implicit io_context anyways. Using Alarm over timer might give you a performance benefit: No context switching with the io_context background thread.


[nuxt] allow non-primitive type options in nuxt.config.ts

Clear and concise description of the problem
For now nuxt.config.ts uses useRuntimeConfig to pass options to runtime. This adds a limitation to what kind of options can be passed, only allowing primitive type variables (string/number...).
This is linked to #200 #192 #195
Suggested solution
Maybe re-use addTemplate or something like that. 🤔
Alternative
No response
Additional context
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guide.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

would require use of eval, may  try to rethink that in v4 (if it ever comes to life)


Clean up old Cxx TM member generation

Summary:
As we had already cut a branch for RN 0.73
https://github.com/reactwg/react-native-releases/discussions/64
We can delete this code already
Changelog: [Internal]
Differential Revision: D51785199

Closing as abandoned internally


{Core} az login: Add extra empty line to separate the tenant warning from output

Related command
az login
Description
Currently, if some tenant contains no accessible subscription, Azure CLI shows a warning as below:

However, it can confuse the user and make the user think the JSON contains inaccessible tenants.
This PR adds an extra empty line to separate the warning from output.

Per my understanding, a better place to show the warning is after the JSON, in the post-output hint (https://github.com/Azure/azure-cli/pull/16242), since if the JSON is very long, it will "flood" the warning message. The user will have to scroll all the way up to see it. However, the post-output hint feature along with its implementation detail is still under discussion.

Add @dcaro to share some comments for above two proposals.


strip_prefix does not work for fallback URL in urls attribute

For the urls mechanism of providing the location of the LLVM distribution, the strip_prefix is always empty when the host-os key is not present in the dict, even when there is a user-provided fallback.

Should be fixed by 414e11a1a3a1ba59fabaa572535e06db4511373a. Now included in release 0.8.


notifications: Enable desktop notifications for the UNMUTED topic.

UNMUTED topics in muted streams obey stream-specific notification settings and global notification settings as fallback.
A user receives or does not receive email or push notifications for messages in UNMUTED topics depending on the email or push stream-specific notification settings configured, and global notification settings are used as a fallback.
This commit updates the logic to send or not send desktop notifications for messages in the UNMUTED topic depending on the corresponding stream-specific notification settings configured and global notification settings as a fallback.
Corresponding backend logic for reference:
def user_allows_notifications_in_StreamTopic(
    stream_is_muted: bool,
    visibility_policy: int,
    stream_specific_setting: Optional[bool],
    global_setting: bool,
) -> bool:
    """
    Captures the hierarchy of notification settings, where visibility policy is considered first,
    followed by stream-specific settings, and the global-setting in the UserProfile is the fallback.
    """
    if stream_is_muted and visibility_policy != UserTopic.VisibilityPolicy.UNMUTED:
        return False

    if visibility_policy == UserTopic.VisibilityPolicy.MUTED:
        return False

    if stream_specific_setting is not None:
        return stream_specific_setting

    return global_setting

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[ ] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[ ] Visual appearance of the changes.
[ ] Responsiveness and internationalization.
[ ] Strings and tooltips.
[ ] End-to-end functionality of buttons, interactions and flows.
[x] Corner cases, error conditions, and easily imagined bugs.

Nice, merged, thanks @prakhar1144!


Proper Location of common fields.

In my Database, All tables have some common fields (like ID,CreatedOn,CreatedBy etc.)
I want to put these common fields in a base class.
What is your recommendation?
[Should I modify Row.cs? or create a new class derived from Row then use it as base class of all rows]

I will prefer ignore. Also if you want to use polymorphism you need handle it yourself. I prefer create an interface for this.

There is an example about this on Users Table- userRow.
Users table contains İnsertUsertİd, İnsertDate, UpdateUserİd, UpdateDate
LoggingRow handle this fields.
UserRow class inherits LoggingRow instead of Row and UserRowFields inherits LoghingRowFields instead of FieldsBase
This methods is very usefull for managing audit log. You can add same behaviur leki this with own fileds

Make sure you use a base class, similar to LoggingRow, and use same field names everyware, it's easier to manage


Fixed syntax error

See #12

Thanks for this fix.
@timokoesters Please rev roll the version to 3.0.3. After you make that update I'll merge it in.

How can I do this? This is one of my first commits to another project.

@timokoesters you do it by editing the version number listed in setup.py. Just push your update to this branch that you submitted for the pull request


[Docs] Update connections.md

Notes for Reviewers
This PR fixes #
Signed commits

[ ] Yes, I signed my commits.

🚀 Preview for commit 6c1bec4cd18f3a46e157187de2ea987479a5cc96 at: https://6555965b926b362fb03b7f1a--meshery-docs-preview.netlify.app


zsh history search not working. would also like auto complete on

Fixed

Auto complete working. history search is still not ideal?


core: notify already-connected systems on register_on_discover

This PR changes register_on_discover in such a way that it directly publishes the uuids of the systems that are already connected.
Before that, one had query the list of already connected systems, but it probably never makes sense to register to the callback without wanting to know which ones are already connected.
Working on an integration test from Swift.

I don't have a strong opinion on the naming here. However, it is out of the scope of this PR :-).

You also need to updated the in-source docs for DroneCore::register_on_discover() to reflect this behaviour change.


Can't set colour of raised button

 Issue by Hixie
Tuesday Nov 03, 2015 at 18:37 GMT
Originally opened as https://github.com/flutter/engine/issues/1918

You can do this now.


Provide set arc height method for set arc height at run time

Provide set arc height method for set arc height at run time

please try with https://github.com/florent37/ShapeOfView


Not supported on .NET Framework 3.5

.NET Standard isn't supported in Doorstop 3-something and Unity 5.0.0 doesn't support doorstop 4.3.0 that supports net 8.0. I cannot upgrade engine version because its a modification

I don't know what Doorstop 3 is, but Riptide is built for Unity 2019.4 and beyond (as indicated by the Unity package.json). If you want to fork the repo and make it work for Unity 5/.NET Framework 3.5 you are of course free to do so, but this is not a change I want to make to this core/official repo.

Doorstop in Unity is a C# Loader that loads C# code outside of unity faster than the engine itself, so you can add additional code to the game with the usage of Harmony. Doorstop was used in universal mod loaders like BepInEx or in proprietary mod loaders like BSIPA or MSCLoader

Also i did a recompile to .NET Framework 3.5 but windows native function for reserving sockets always throws an exception that a pointer is wrong


Remove useless if-else

It is better to use simple form without else.
Signed-off-by: Hu Keping<EMAIL_ADDRESS>

LGTM


tegra-udrm-gbm: update to version 1.1.0

This update is required due to the removal of nvgbm in 35.2.1. It replaces the nvgbm wrapper with its own buffer allocation using nvbuffersurface.

Thanks @kekiefer for the updates.


Examples needed for LISTEN/NOTIFY

Would love to see some examples on how to use LISTEN/NOTIFY.
Well, especially how to LISTEN and "connect it" to a callback

Looked at LISTEN/NOTIFY again.
Here is some code to explain:
void onData(Notification event) {
print("Notify: ${event.channel}: ${event.payload}");
}
...
connection = PostgreSQLConnection(...);
connection.notifications.listen(onData);
await connection.open();
await connection.execute('LISTEN test;');
...
And from example pgAdmin, execute:
NOTIFY test,'test payload';
the onData handler will be called.


Feature type status display values

Description :sparkles:
Add fields for status and type translations.
Issues :bug:
Closes :no_good_woman:
ATV-115: Display values for type and status
Related :handshake:
Testing :alembic:
Automated tests :gear:
Yes
Manual testing :construction_worker_man:
Screenshots :camera_flash:
Additional notes :spiral_notepad:

Codecov Report

Merging #60 (246ce1a) into main (51a2a62) will increase coverage by 0.02%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main      #60      +/-   ##
==========================================
+ Coverage   90.62%   90.65%   +0.02%
==========================================
  Files          53       53
  Lines        1408     1412       +4
  Branches      134      134
==========================================
+ Hits         1276     1280       +4
  Misses         93       93
  Partials       39       39

Impacted Files
Coverage Δ

documents/api/docs.py
100.00% <ø> (ø)

documents/api/querysets.py
82.85% <ø> (ø)

documents/api/viewsets.py
95.12% <ø> (ø)

documents/models.py
100.00% <100.00%> (ø)

documents/serializers/document.py
98.61% <100.00%> (+0.01%)
:arrow_up:

documents/serializers/status_history.py
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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


See if we can somehow use .gitignore

I don't think we want to use .gitignore automatically, but maybe in ack 2.1 we can do something like add a --ignorefile=.gitignore.

+1 --ignore-dir entires in ackrc grow larger and larger, because I can't simply ignore what's in gitignore

Thanks everyone for chiming in.  ack2 is in a bit of a code freeze at the moment; @petdance would like to go through everything that's changed since 2.14 so that 2.16 can be released, and we don't want to heap any more work on at the moment.  If anyone is willing to submit a pull request implementing the feature, however, we can merge it in once 2.16 is released!

Does anyone know how Windows Git does .gitignore?

.gitignore is all globs, right?  The .gitignore would be the only place that ack handles globs.
Does anyone know how Windows Git does .gitignore?
Handling .gitignore is not a CYJ.  (Can't you just...)

I don't know for sure, but I'm guessing that gitignore on Windows works pretty much the same as on OS X/Linux, maybe with some accounting for case insensitivity.
.gitignore can contain more than just globs; you can have inverted expressions (ex. ignore all .jar files, except for those under deps), or relative paths (ex. ignore all jars in /.mvn or something).  Absolute paths introduce an especially sinister level of complexity, since they're absolute with respect to the root of the working tree.  Which means we would have to detect the root of the working tree, which means respecting GIT_WORK_TREE and GIT_DIR.  And let's not forget that there's not just one gitignore file; you have .gitignore, $GIT_DIR/info/exclude, the config setting core.excludesfile, and anything else I forgot to mention.  Long story short, that would be a lot of git implementation details to put into ack, and frozen to which ever version's implementation we would port over.
That being said, we could shell out to git ls-files, but then we have to handle the case where someone doesn't have git installed, or isn't in a git repository, and reconcile potential differences between versions of Git.  So even that route is frought with peril.
My suggestion is this:  if you really want this feature, write a shell wrapper around ack to call git ls-files and populate ACK_OPTIONS based on its output, and then call ack.  If we end up implementing this feature, it probably won't be for a while.

fwiw, from issues like e.g. https://github.com/ggreer/the_silver_searcher/issues/100 it appears the ag folks went the route of parsing .gitignore themselves (apparently imperfectly)

Well this is unfortunate. This bug is the reason that I'll be switching to ag.

Perhaps one way to achieve this without supporting .gitigore directly in ack could be to write a script that generates a $PROJECT/.ackrc from all the .gitignore files (and whatnot) in the project.
Probably not trivial to write if all the corner cases must be supported. @hoelzro wrote:

And let's not forget that there's not just one gitignore file; you have .gitignore, $GIT_DIR/info/exclude, the config setting core.excludesfile, and anything else I forgot to mention.

This would certainly scratch my itch right now:
cd $PROJECT
$ACK/contrib/generate-ackrc-from-gitignore.pl . > .ackrc
ack pattern

Also, then it isn't baked directly into ack.

alias gack="git ls-files -oc --exclude-standard | ack -x" is what I use.

Does my heart good to see people using ack -x.

I don't want ack to have to dig into .gitignore files, but we can put the git line in the docs.

Good idea, I agree with you that ack should not parse .gitignore files.
One caveat with that alias is that submodules are listed by the git command and they are directories -- ack then (correctly) complains about the directories.
With git 2.11+, the --recurse-submodules option may be used which should work around this, and of course match files within submodules which might not be desired.
Here's the same command with the long options which are semantic so better for docs:
alias gack="git ls-files --others --cached --exclude-standard | ack -x"

We are not going to parse .gitignore.

This issue was moved to petdance/ack3#40

Because you’re going to use this only inside a Git repo you can also make it a Git alias similar to the built-in git grep:
git config --global alias.ack '! git ls-files --others --cached --exclude-standard | ack -x'
git ack foo

Because you’re going to use this only inside a Git repo you can also make it a Git alias similar to the built-in git grep:
git config --global alias.ack '! git ls-files --others --cached --exclude-standard | ack -x'
git ack foo

That's pretty slick.  I might have to put that in the docs somewhere.

That's pretty slick.  I might have to put that in the docs somewhere.


[20.03] ghc: add new version 8.8.4

(cherry picked from commit dd6ce8c8799130f388cac697eb0e1d7dffa63d3f)

Motivation for this change
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

@GrahamcOfBorg build haskell.compiler.ghc884

@peti which one did you mean is needing a backport?

6d54b2f918c ghc 8.8.4, 8.10.1: disable profiled builds on aarch64 to avoid 2GB output limit
8ffedd83693 haskellPackages: bump default compiler to ghc-8.8.4

6d54b2f ghc 8.8.4, 8.10.1: disable profiled builds on aarch64 to avoid 2GB output limit

Back-porting this commit feels like a good idea. I'm not sure how to test whether the change actually works for aarch64, but Hydra might do that verification for us for free, maybe? I suppose @vcunat might be able to advice.

8ffedd8 haskellPackages: bump default compiler to ghc-8.8.4

This commit should NOT be back-ported. Users of a stable release branch probably don't want their default compiler to be updated.

@peti what about switching the default package set from 8.8.3 to 8.8.4?

The community aarch64 box would probably be well usable for this.  I can run builds there, in case you don't have an account.  Actually the borg also runs them there IIRC.

Follows on: https://github.com/NixOS/nixpkgs/pull/94372


I can't see what is described

In the section Beautify the next line can be found:
"You'll see that it's gray, thus it's not valid. Prepend + to the build word and save it again:"
but I can't see it gray, it was until later that I activate the molokai, that I see it as gray. I am wondering if the theme part should be move a little up.

Hi @dubyte
What do you mean by theme part? Maybe adding a line, saying "throughout the tutorial, the colors and descriptions are made for the color scheme molokai. It might be different if you use a different color scheme" ?


should prevent listen socket inherited by subprocess

I start a websocket server, and then start a sub console proccess.
when I quit the gui parent process,  the listen port still  open by  the subprocess.

Do you have a suggestion how to do what you’re asking?


[Python] Change default code() return to StatusCode.OK instead of None

Fix an issue which return of grpc.aio.ServicerContext.code() is None instead of StatusCode.OK
Related: https://github.com/grpc/grpc/issues/35450

I agree that returning StatusCode.OK is more correct here, but this is a backwards-incompatible change and it doesn't seem to be a clear-cut case where the docs said one thing and the implementation did another. Especially for the sync stack, it might not be worth it to change this behavior.
At the very least, I think we'll want to send out a request for comments on the grpc-io mailing list to make sure that this change wouldn't be disastrous.

I agree that returning StatusCode.OK is more correct here, but this is a backwards-incompatible change and it doesn't seem to be a clear-cut case where the docs said one thing and the implementation did another. Especially for the sync stack, it might not be worth it to change this behavior.
At the very least, I think we'll want to send out a request for comments on the grpc-io mailing list to make sure that this change wouldn't be disastrous.

Make sense, while working on change sync stack, I also noticed that it won't be an easy and clean change, we have multiple conditions depends on code to be None so we can't simply change the default value.
I'll put this PR on hold for now and investigate the user's level of interest in this change.


Openshift compatibility request and/or doc integration

Contact Details
<EMAIL_ADDRESS>Is your feature request related to a problem? Please describe.
Describe the bug
Launching kubeshark in an Openshift environment will pop-up the web interface but it's not possibile to see any data
To Reproduce
Steps to reproduce the behavior:

Run kubeshark tap -A
See error like:  Waiting for Kubeshark Agent to start... W1213 15:45:54.259442  256971 warnings.go:70] would violate PodSecurity "restricted:latest": allowPrivilegeEscalation != false (containers "kubeshark-api-server", "basenine" must set securityContext.allowPrivilegeEscalation=false), unrestricted capabilities (containers "kubeshark-api-server", "basenine" must set securityContext.capabilities.drop=["ALL"]), runAsNonRoot != true (pod or containers "kubeshark-api-server", "basenine" must set securityContext.runAsNonRoot=true), seccompProfile (pod or containers "kubeshark-api-server", "basenine" must set securityContext.seccompProfile.type to "RuntimeDefault" or "Localhost")

Workaround
Launch the command as instructed to monitor a single pod/namespace or the whole cluster, ignore the warning and then give the correct scc to the kubeshark-service-account in order to get the daemonSet deployed and collecting data:
oc adm policy add-scc-to-user privileged -z kubeshark-service-account -n kubeshark
Original Thread
No response
Describe the solution you'd like to see
It would be nice to have some kind of --openshift flag for the kubeshark command in order to instruct the creation of the service account with already the privileged scc. Otherwise a note on the docs explaining the workaround would also suffice.
Provide additional context
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

I believe "hostnetwork-v2" is enough?
BTW for openshift you can create the route with
oc create route edge --service kubeshark-api-server --port 8899 -n kubeshark


create properties for the datastax connection pool settings

This PR changes the way we configure Datastax's Connection Pool settings. Before this PR, we:

call setCoreConnectionsPerHost() to the value of INITIAL_CASSANDRA_CONNECTIONS
call setMaxConnectionsPerHost() to the value we calculate based on MAX_CASSANDRA_CONNECTIONS and number of DB/C* nodes

The MAX_CASSANDRA_CONNECTIONS is also used when configuring Astyanax connection pool.
With this PR, we:

call setCoreConnectionsPerHost() to the value of DATASTAX_CORE_CONNECTIONS_PER_HOST
call setMaxConnectionsPerHost() to the value of DATASTAX_MAX_CONNECTIONS_PER_HOST
call setMaxRequestsPerConnection() to the value of DATASTAX_MAX_REQUESTS_PER_CONNECTION, with a default value of 1024.

MAX_CASSANDRA_CONNECTION is now only for configuring Astyanax connection pool.

Coverage decreased (-0.08%) to 74.977% when pulling 3f9319360e802cd6951d040456c5de222ea69ca0 on shintasmith:dtx_pool into 243671b51979943106eb7061323f1422ff743d45 on rackerlabs:master.

@ChandraAddala , I fixed the method names. I also added logging for the range, when we're getting timeout exception

Coverage decreased (-0.1%) to 74.942% when pulling 2150b753388547bd107bbccf499063acb3dba15f on shintasmith:dtx_pool into 243671b51979943106eb7061323f1422ff743d45 on rackerlabs:master.

Coverage decreased (-0.06%) to 74.992% when pulling 2150b753388547bd107bbccf499063acb3dba15f on shintasmith:dtx_pool into 243671b51979943106eb7061323f1422ff743d45 on rackerlabs:master.


Question: Which template file I should work on to tweak "_parse_response" generated code?

Describe the bug
While the openapi-python-client tool works well for generating code as per the Open API Specification for https://codebeamer.com/cb/v3/swagger/editor.spr , Some times the server sends unexpected response which is outside of the OpenAPI Spec contract.
In such case, For example, Take a situation of HTTP Error code 429,
def _parse_response(
    *, response: httpx.Response
) -> Optional[Union[TooManyRequestsException, TrackerItem]]:
    if response.status_code == 403:
        response_403 = TrackerItem.from_dict(response.json())

        return response_403
    if response.status_code == 404:
        response_404 = TrackerItem.from_dict(response.json())

        return response_404
    if response.status_code == 200:
        response_200 = TrackerItem.from_dict(response.json())

        return response_200
    if response.status_code == 429:
        response_429 = TooManyRequestsException.from_dict(response.json())

        return response_429
    return None

Server has to send an JSON object but it sends string message. This makes
response.json()

to fail.
I would like to handle such a situations via templates , I would like to write code like below,

if response.status_code == 429:

     try:

        response_429 = TooManyRequestsException.from_dict(response.json())
      except JSONDecodeError as ex:
         ....#Do error handling / Log it well

        return response_429

I tried to achieve this behavior by changing jinja templates. I looked into templates/endpoint_module.py.jinja but I am lost.
Question:
Which template I should edit to achieve Json decoder error handling?
To Reproduce
NA
Expected behavior
NA
OpenAPI Spec File
NA
Desktop (please complete the following information):

OS: Ubuntu 22.04.1 LTS
Python Version: 3.10
openapi-python-client version: 0.11.6

Additional context
NA

I think you're looking in the write file, you probably want to edit this block:
{% if parsed_responses %}
def _parse_response(*, response: httpx.Response) -> Optional[{{ return_string }}]:
    {% for response in endpoint.responses %}
    if response.status_code == {{ response.status_code }}:
        {% import "property_templates/" + response.prop.template as prop_template %}
        {% if prop_template.construct %}
        {{ prop_template.construct(response.prop, response.source) | indent(8) }}
        {% else %}
        {{ response.prop.python_name }} = cast({{ response.prop.get_type_string() }}, {{ response.source }})
        {% endif %}
        return {{ response.prop.python_name }}
    {% endfor %}
    return None
{% endif %}

to add your statement around {{ prop_template.construct(response.prop, response.source) | indent(8) }} (and adjust indents appropriately).
To be clear, though, I don't think it's the generated client's job to handle the server misbehaving or the spec being wrong—so this isn't the sort of thing that should be added universally to the generator. Instead, this should be part of custom templates which are unstable—so make sure to pin to an exact version of openapi-python-client if you're going that route.

Thanks @dbanty  , Yes its clear that its not generator's Job. That is why I am looking in Custom templates. I have already used the custom templates to handle datetime related issue.
Ex: datetime_property.py.jinja
{% set transformed = source + ".isoformat(timespec='milliseconds')" %}

Awesome, great! Just wanted to make sure I wasn't accidentally setting false expectations 😅

Thanks for letting me know , I will be careful with custom templates :)
On Thu, Sep 29, 2022 at 8:01 PM Dylan Anthony @.***>
wrote:

Awesome, great! Just wanted to make sure I wasn't accidentally setting
false expectations 😅
—
Reply to this email directly, view it on GitHub
https://github.com/openapi-generators/openapi-python-client/issues/678#issuecomment-1262370424,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB7TGMK7G2FFX7ER335YDUDWAWR5XANCNFSM6AAAAAAQX5WLMU
.
You are receiving this because you authored the thread.Message ID:
@.***
com>

--
Regards,
Bakkiaraj M


feat: LogCollector use alloy_rpc_types::Log

Motivation
resolve: #6746

Solution

hi @mattsse, are my changes the expected solution?

Needs rebase to alloy-primitives 0.6.0. Log is now LogData among other things.

Does this mean I need to update alloy_rpc_types::Log to use alloy_primitives::Log

Yes that would be ideal, since the only fields we're using are data and topics

that sounds reasonable!


fix(revaultd/client): use crate jsonrpc instead

https://github.com/apoelstra/rust-jsonrpc/ or async-jsonrpc

The rust-jsonrpc crate can now be added support for UDS transport, which i believe would be welcome. Maybe post an issue there to ask them or ask on #rust-bitcoin on freenode.

Update on this issue: rust-jsonrpc is going to support UDS soon. See https://github.com/revault/revault-gui/pull/147 as a dirty PoC.


Pattern part summary image link

Clicking the part image on the patterned parts overview page opens a modal with an image of the unpatterned part. Should open the part page right?

I basically copied the old markup so it probably always went to the image but your idea is a good and I've changed the markup.


Move email templates to files and update it

#494

@umputun I moved templates from GO because it is more comfortable to edit HTML in a separate file. It can help to new contributors change templates as files against part of GO file.
Also, the reply template has 66 lines (and I tried to collapse some lines to single) and I think it's pretty big.
What do you think? If you sure that templates should be placed in GO files I will move them back.

If you sure that templates should be placed in GO files I will move them back.

Currently, it is not the question of what is better aesthetically because templates from external files are not loaded (in case of the binary distribution), i.e. this change breaks things for sure. I suggest moving them back and, in case if we decide to introduce another step into our build process, we can always move them out.

Okay, I got it. I will move separation in other PR ;)


Job failed to load: undefined class/module User::Identity

This is driving me batty, mostly due to the random nature of it.
We are running Rails 4.1 and I have a simple ActiveResource (not ActiveRecord) object called "User" with a method called "update_metadatas" (it takes a json hash as a param). So I'll load up a User object (let's call it u) and then call u.update_metadatas(data). Works great. However, when I do u.delay.update_metadatas(data), things go screwy.
Seemingly depending on the time or day or direction of the wind (ok not really), the above job will immediately fail with:
Job failed to load: undefined class/module User::Identity
The errors aren't that revealing.
Sometimes it will work great with no problems. This behavior happens on both development (local workstation) and production (Heroku).
My guess is that this is a preloading issue . . . i.e., it seems random only because it is affected by when the worker runs (before or after when the rest of the application loads). For example I'll have all the jobs fail for a 2 hour period, and then they'll start working again. I tried the suggestion about turning off config.threadsafe! in production.rb for rake tasks, but that doesn't work for Rails 4.1. I tried the suggestion of adding an initializer like "require 'user'", but that didn't help.
ANY ideas?
P.S. I also run Puma, not sure if that matters (I don't believe Puma is used for the rake tasks though).

The error says it can't find User::Identity. Which means that is not cleanly autoloading. Look for where that comes from and determine why that wouldn't load.

Yeah, I saw that, no idea where that is coming from. Will continue investigating, wasn't sure if that was more of a generic error.

I'm having the same issue. For some reason delayed jobs isn't loading autoloading classes properly. Even manually requiring job classes via an initializer isn't fixing this issue for me.

We don't do any loading or autoloading. That is all rails and usually means you have things defined in an unusual way

I'm getting this when I have a job that queues up another job.

I've been having this issue too, and it is seemingly random.  Anyone come up with a solution?

I got this error too, with the undefined class/module being the name of my Custom Job Struct. This issue comes up for me on my staging server, but not on local / development environment. The delayed job is being called within a rake task.
FWIW: ssh'ing in and manually restarting the daemon (a la bin/delayed_job restart) allowed my job to run without the error.

I'm also getting this error. Has anyone come up with a solution?

@DMcKinnon-mdsol, it turns out this whole time I was dealing with this issue, there were multiple instances of the daemon running (due to a faulty deploy script). There are some instructions here for seeing how many instances of delayed_jobs daemon are running and killing them.

Oh, cool. This might actually be my problem, too. Thanks!

I am getting this error, and the suggestion to include a custom initializer that loads the missing class did not work. Also, the suggestion of restarting the delayed_job worker did not work. I don't have multiple delayed_job workers running on the machine either.
Has anyone else figured out another solution? It does not happen every time, only sometimes, but I cannot determine a pattern that makes sense. Here is an example of the failure message:
Job failed to load: undefined class/module NotificationMailer. Handler: "--- !ruby/object:Delayed::PerformableMailer\nobject: !ruby/class 'NotificationMailer'\nmethod_name: :notification\nargs:\n- !ruby/*****\n"
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/backend/base.rb:87:in `rescue in payload_object'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/backend/base.rb:85:in `payload_object'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/backend/base.rb:132:in `max_run_time'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/worker.rb:265:in `max_run_time'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/worker.rb:204:in `block in run'
/usr/local/lib/ruby/2.2.0/benchmark.rb:303:in `realtime'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/worker.rb:203:in `run'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/worker.rb:280:in `block in reserve_and_run_one_job'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `call'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `block in initialize'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `call'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `execute'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:40:in `run_callbacks'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/worker.rb:280:in `reserve_and_run_one_job'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/worker.rb:187:in `block in work_off'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/worker.rb:186:in `times'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/worker.rb:186:in `work_off'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/worker.rb:150:in `block (4 levels) in start'
/usr/local/lib/ruby/2.2.0/benchmark.rb:303:in `realtime'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/worker.rb:149:in `block (3 levels) in start'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `call'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `block in initialize'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `call'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `execute'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:40:in `run_callbacks'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/worker.rb:148:in `block (2 levels) in start'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/worker.rb:147:in `loop'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/worker.rb:147:in `block in start'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/plugins/clear_locks.rb:7:in `call'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/plugins/clear_locks.rb:7:in `block (2 levels) in <class:ClearLocks>'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:79:in `call'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:79:in `block (2 levels) in add'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `call'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `block in initialize'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:79:in `call'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:79:in `block in add'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `call'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `execute'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:40:in `run_callbacks'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/worker.rb:146:in `start'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/command.rb:124:in `run'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/command.rb:112:in `block in run_process'
/usr/local/bundle/gems/daemons-1.2.3/lib/daemons/application.rb:265:in `call'
/usr/local/bundle/gems/daemons-1.2.3/lib/daemons/application.rb:265:in `block in start_proc'
/usr/local/bundle/gems/daemons-1.2.3/lib/daemons/daemonize.rb:84:in `call'
/usr/local/bundle/gems/daemons-1.2.3/lib/daemons/daemonize.rb:84:in `call_as_daemon'
/usr/local/bundle/gems/daemons-1.2.3/lib/daemons/application.rb:269:in `start_proc'
/usr/local/bundle/gems/daemons-1.2.3/lib/daemons/application.rb:295:in `start'
/usr/local/bundle/gems/daemons-1.2.3/lib/daemons/controller.rb:56:in `run'
/usr/local/bundle/gems/daemons-1.2.3/lib/daemons.rb:193:in `block in run_proc'
/usr/local/bundle/gems/daemons-1.2.3/lib/daemons/cmdline.rb:88:in `call'
/usr/local/bundle/gems/daemons-1.2.3/lib/daemons/cmdline.rb:88:in `catch_exceptions'
/usr/local/bundle/gems/daemons-1.2.3/lib/daemons.rb:192:in `run_proc'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/command.rb:110:in `run_process'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/command.rb:91:in `block in daemonize'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/command.rb:89:in `times'
/usr/local/bundle/gems/delayed_job-4.0.6/lib/delayed/command.rb:89:in `daemonize'
/opt/bedboard2admin/bin/delayed_job:5:in `<main>'

I tried creating a file called config/initializers/custom.rb with the following line:
require 'notification_mailer'

But that did not seem to help. Here is my bin/delayed_job script for reference:
#!/usr/bin/env ruby

require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment'))
require 'delayed/command'
Delayed::Command.new(ARGV).daemonize

And config/environment.rb, which is referenced by that file:
# Load the Rails application.
require File.expand_path('../application', __FILE__)

# Initialize the Rails application.
AppName::Application.initialize!

And config/application.rb, which is referenced by that environment.rb:
require File.expand_path('../boot', __FILE__)

require 'rails/all'

# Require the gems listed in Gemfile, including any gems
# you've limited to :test, :development, or :production.
Bundler.require(*Rails.groups)

module Bedboard2
  class Application < Rails::Application
    # some config lines omitted here...

    config.autoload_paths << Rails.root.join('lib')

    # some config lines omitted here...
  end
end

And config/boot.rb:
# Set up gems listed in the Gemfile.
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)

require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])

I'm just confused as to why it works sometimes, and doesn't work other times. The missing file is located in app/mailers/notification_mailer.rb. Should I explicitly add app/mailers to the config.autoload_paths in application.rb?
 The failures only show up in the delayed_jobs table in the database.

+1 I am getting this as well, seems to be random and I can't duplicate it if I login to the console and make the same call.

We were encountering this error (Rails 5.0.2 and DelayedJob 4.1.2):
Job failed to load: undefined class/module Foo::Bar
We tried require 'foo/bar' in our initializer/delayed_job.rb, but that didn't work.
However, require_relative '../../lib/foo/bar' did work. Seems like delayed jobs might be doing some weird autoloading on it's workers.

I'm not sure if it's helpful to anyone besides me, I use rake to start my delayed_job workers, and I just learned that rails overrides eager_load to be false for all rake commands. This was causing issues with undefined class names for me

So I just ran into this issue and I can confirmed that after reading this the only think i needed to do was adding the require 'foo_bar' on my initializer/delayed_job.rb and it worked

I was having uninitialized class errors and the issue was due to my worker pools running off of an older release. See issue #911.

In
config/initializers/application.rb
add at the end the following line
load(relative/path/to/your/rubyfile)
in my case I needed delay one method from Device.rb that I placed in lib folder...

I think I'm also being affected by the same issue, here's the error message I'm getting:
Job failed to load: undefined class/module ActiveRecord::ConnectionAdapters::PostgreSQL::OID::Integer

As with the other above, it's intermittent and I can't see what's causing it.
App is on Heroku, using DJ to send emails with a worker. Because it's an ActiveRecord class/module that isn't being found, would that still be an autoloading issue in Rails?
Is the monkey patch above preventing the error from bubbling up from Psych?

@maxshelley did you recently do a rails upgrade? That looks more like an ActiveRecord internal that may have moved between versions.

@albus522 Yes, we have, but that errors seem to occurring for jobs that were, I think, created after the update. I don't feel like I've brought enough information to this conversation, I'm going to dig further, thank you for taking the time to respond and I think you're right about the Rails update being part of my issue.

I made a pull request to help with this problem.
Meanwhile you can use this lines
# config/initializers/delayed_job.rb

# Monkey patch to use old class references
module Psych

  class << self; attr_accessor :old_class_references end
  @old_class_references = {}

  class ClassLoader
    private

    def find klassname
      klassname = ::Psych.old_class_references[klassname] || klassname
      @cache[klassname] ||= resolve(klassname)
    end
  end

  module Visitors
    class ToRuby < Psych::Visitors::Visitor
      def revive klass, node
        if klass.is_a? String
          klassname = ::Psych.old_class_references[klass] || klass
          klass = Kernel.const_get(klassname) rescue klassname
        end
        s = register(node, klass.allocate)
        init_with(s, revive_hash({}, node), node)
      end
    end
  end
end

# Add all old dependencies (hash keys) pointing to new references (hash values)
Psych.old_class_references = {
  'ActiveRecord::AttributeSet' => 'ActiveModel::AttributeSet'
  # ...
}

Just quickly contributing our situation here.
In one of our views, we were trying to load the handler via YAML.load( job.handler ) and got the following error:
ActionView::Template::Error (undefined class/module Facility):

For some reason, it could not load the Facility model properly, even though this is in our Rail app where the Facility model has already been loaded (and used).
The fixed we used was literally calling the Facility model prior to calling YAML.load( job.handler ), like this:
<% Facility -%>
<%= YAML.load( job.handler ).object.name %>

Not sure what the root issue is but maybe that will help somebody in the meantime.
Cheers.

@DMcKinnon-mdsol, it turns out this whole time I was dealing with this issue, there were multiple instances of the daemon running (due to a faulty deploy script). There are some instructions here for seeing how many instances of delayed_jobs daemon are running and killing them.

Thanks! This helps me to solve my issue! :+1:

@DMcKinnon-mdsol, it turns out this whole time I was dealing with this issue, there were multiple instances of the daemon running (due to a faulty deploy script). There are some instructions here for seeing how many instances of delayed_jobs daemon are running and killing them.

Thanks! This helps me to solve my issue! :+1:


Multiline Records in CSVs?!?

PHP Version
Does not Matter
Shopware Version
Current Trunk and earlier
Expected behaviour
CSV needs a LineDelimiter that is not the same than the column-delimiter.
That's at least how i understood RFC4180
Line-Breaking after each column causes problems with the CSV-Syntax.
Actual behaviour
If we look at the body or header of the csv-export-templates to export to idealo.
Or body and header of those to export to billiger.de I can see newlines after each column.
This ends in very strange CSV-Files.
How to reproduce
Just use one of the templates mentioned above in a "Product-Comparison-Sales-Channel".
And "Enjoy" the Preview or result of such an Export.
Imho there are to much newlines.
Additional information:
I tried to quick-fix things with "{% apply spaceless %}" and "{% endapply %}" but they seem to be powerless here.

Hello,
Within our company roadmap and work capacity, we try to address each bug or improvement request but admit that not each one will be resolved. To continue our culture of honesty and openness, we are closing this issue to focus on our roadmap on behalf of all Shopware users.
If you feel like this issue is still impacting you, please create a new issue and let us know.
Thank you again for your valuable feedback.