Negated boolean filters are compiled to "<>" that prevents using indices in the DB

Hi,
if you write a query like this:
ctx.Messages.Where(q => !q.IsArchived)
then it is translated to this SQL query (~more-less):
Select ... FROM Messages WHERE IsArchived <> 1
The problem is the comparison like <> prevents the sql engine to use indicies including the IsArchived column. Better would be translating it to "IsArchived = 0".
(In this case, the IsArchive column has a large selectivity -> the big majority of the records is archived, so including this column in an index makes sense, )
The workaround is using q.IsArchived == false instead, but this is a bit ugly of course (and developers tend to forget it). Is there any chance to fix this in an upcoming version?
regards,
Tamas

EF Team Triage: This issue is not something that our team is planning to address in the EF6.x code base.  This does not mean that we would not consider a community contribution to address this issue.
Moving forwards, our team will be fixing bugs, implementing small improvements, and accepting community contributions to the EF6.x code base. Larger feature work and innovation will happen in the EF Core code base (https://github.com/aspnet/EntityFramework).
Closing an issue in the EF6.x project does not exclude us addressing it in EF Core. In fact, a number of popular feature requests for EF have already been implemented in EF Core (alternate keys, batching in SaveChanges, etc.).
BTW this is a canned response and may have info or details that do not directly apply to this particular issue. While we'd like to spend the time to uniquely address every incoming issue, we get a lot traffic on the EF projects and that is not practical. To ensure we maximize the time we have to work on fixing bugs, implementing new features, etc. we use canned responses for common triage decisions.


adjust rule paranoia level

Hi all, i think below only based on keywords rule paranoia level should not be level 1.
https://github.com/coreruleset/coreruleset/blob/v3.3.4/util/regexp-assemble/regexp-942140.data

Ho @leveryd, have you experienced any false positives? Can you give an real-world example?

@azurit yes, there is false positive in my situation, sorry for i can not give u complete request because of privacy,but i can tell u the matched argument part is below
jupiter的information_schema系统表权限

Really? It is so obvious that it has no relationship with sql,I do not know why u think it is not a false postive.
And set only based-keyword rule paranoia level 1 is not reasonable, i think this is obvious too.

On the second thought, i agree this is a FP. We need to discuss what we can do with it.

We talked this through at our monthly meeting yesterday. We decided to leave it as is: https://github.com/coreruleset/coreruleset/issues/3252#issuecomment-1668414215
The reasoning is that the payload in question is an SQL related payload. It is a false positive but the use of the keyword was linked to SQL usage, so the rule hit is actually desired. It is a false positive, but in the same sense that a discussion about an SQL query would trigger false positives.
It is unfortunate and an edge case, but we want to keep this at PL1.
Closing this issue now.

@leveryd I can help you with writing an exclusion rule if you are interested.


Child elements in GtPlotterHorizontalValueProjectionsElement are all linked to the same domain object because of initialization of GtPlotterSingleScaleContext outside of loop.

Original Discord thread here. The below code always spawns the last domain object of the values collection no matter on which element you click.
aDay := Date today.
aDuration := Timespan starting: DateAndTime today + 5 hours duration: 1 hour.
anotherDuration := Timespan
        starting: DateAndTime today + 17 hours
        duration: 3 hour.
durations := {aDuration. anotherDuration}.
durations2 := {anotherDuration. aDuration}.
ticks := ((GtPlotterNumberTicks
        from: 0
        to: 24
        count: 24) gtPreviewFor: GtPhlowProtoView new) asElement.
plotter := GtPlotterHorizontalValueProjectionsElement new
        scale: (GtPlotterLinearScale new domainFrom: 0 to: 24 * 60);
        scaleData: [ :each | each start asTime asSeconds // 60 ];
        constraintsDo: [ :c |
            c vertical fitContent.
            c horizontal matchParent ];
        valueElement: [ :aGtPlotterSingleScaleContext | BlElement new ];
        valueStyle: [ :anElement :aGtPlotterSingleScaleContext |
            anElement
                background: Color red;
                constraintsDo: [ :c |
                    c horizontal matchParent.
                    c frame horizontal
                        weight: aGtPlotterSingleScaleContext originalValue duration asMinutes / (24 * 60) ];
                when: BlClickEvent
                    do: [ :anEvent | anEvent target phlow spawnObject: aGtPlotterSingleScaleContext originalValue ] ];
        values: durations.
BrVerticalPane new
    hMatchParent;
    vFitContent;
    aptitude: BrShadowAptitude;
    background: Color white;
    addChildren: {plotter.
            ticks}

You can confirm issue by swapping durations & durations2 as the parameter to values:.
The issue lies in GtPlotterSingleScaleValueBasedElement>>#initializeElements where aScaleContext := GtPlotterSingleScaleContext new. is currently ran outside of the looping through values, where it should happen inside the loop so that every context references it's own domain object. Changing code as below resolves the issue.

Seems like other implementors of initializeElements have similar issues where contexts need to be initialized inside loops. Can be found below:
GtPlotterScaleBasedElement gtIsOrInheritsFrom & #initializeElements gtImplementors


Windows: Enable some commit tests

Signed-off-by: John Howard<EMAIL_ADDRESS>This enables 3 tests from docker_cli_commit_test.go on Windows CI. Simple removal of the Linux test requirement.

LGTM

LGTM 🐸


[integration] Enable gather unit test for windows

Change-Id: I2e34015b4e28b195ba1509ee3900b876250a7bfb
Description
Brief description of what this PR is about

If this change is a backward incompatible change, why must this change be made?
Interesting edge cases to note here

Codecov Report

Merging #1638 (00cdbb9) into master (bb5073f) will decrease coverage by 1.22%.
The diff coverage is 62.14%.

@@             Coverage Diff              @@
##             master    #1638      +/-   ##
============================================
- Coverage     72.08%   70.86%   -1.23%
- Complexity     5126     5433     +307
============================================
  Files           473      507      +34
  Lines         21970    23769    +1799
  Branches       2351     2589     +238
============================================
+ Hits          15838    16843    +1005
- Misses         4925     5637     +712
- Partials       1207     1289      +82

Impacted Files
Coverage Δ

api/src/main/java/ai/djl/modality/cv/Image.java
69.23% <ø> (-4.11%)
:arrow_down:

...i/djl/modality/cv/translator/BigGANTranslator.java
21.42% <ø> (-5.24%)
:arrow_down:

...odality/cv/translator/BigGANTranslatorFactory.java
33.33% <0.00%> (+8.33%)
:arrow_up:

...nslator/InstanceSegmentationTranslatorFactory.java
14.28% <0.00%> (-3.90%)
:arrow_down:

.../modality/cv/translator/YoloTranslatorFactory.java
8.33% <0.00%> (-1.67%)
:arrow_down:

...i/djl/modality/cv/translator/YoloV5Translator.java
5.69% <0.00%> (ø)

...odality/cv/translator/YoloV5TranslatorFactory.java
8.33% <0.00%> (-1.67%)
:arrow_down:

...pi/src/main/java/ai/djl/ndarray/BytesSupplier.java
54.54% <0.00%> (-12.13%)
:arrow_down:

api/src/main/java/ai/djl/ndarray/NDArray.java
78.40% <ø> (+1.13%)
:arrow_up:

...ain/java/ai/djl/ndarray/index/dim/NDIndexPick.java
100.00% <ø> (ø)

... and 242 more

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 4f70b05...00cdbb9. Read the comment docs.


Add custom code from plugin to the main chunk (or random chunk)

Hi everyone.
I wrote plugin that has one place where it generates some js code, that I need for work.
It looks like, e.g.:
var a = 'my custom code';
console.log(a);

And i want to add it to one of the chunks, so I can open page and see my message in console.
How can I do it?

For example, I know that i can add my cystom asset to compilation.assets array as:
compiler.plugin('emit', function(compilation, callback) {
  compilation.assets[name] = {
    size: function() { return Buffer.byteLength(source, 'utf8'); },
    source: function() { return new Buffer(source); }
  };
  callback();
});

So I need just name and source of my cystom asset to do this.
Can i do the same but for js code injection?

You should be able to addModule()... but honestly, this is one very undocumented API.
But please look at the currently available plugin docs. We are working on upgrading the docs too! :)

Now I'v done it as it works in BannerPlugin:
chunkWrapper = options.chunk;
compilation.plugin('optimize-chunk-assets', function(chunks, callback) {
  chunks.forEach(function(chunk) {
    if (options.entryOnly && !chunk.initial) return;
    if (chunk.name === chunkWrapper) {
      chunk.files.filter(ModuleFilenameHelpers.matchObject.bind(undefined, options)).forEach(function(file) {
        if (/\.js?$/.test(file)) {
          compilation.assets[file] = new ConcatSource(myCustomCode, '\n', compilation.assets[file]);
        }
      });
    }
  });
  callback();
});

To add myCustomCode to chunk, that I can set in plugin options(chunkWrapper).
It works but looks ugly.

Or you can just use the BannerPlugin with the raw option.
But think twice before adding custom code to the bundle. Is is possible to put the custom code in a module and add it as entry point?

If still relevant, feel free to re-open at Stack Overflow. Thanks.


Incomplete / incorrect .dal files

Describe the bug
When navigating to a .dal file, the .dal file only contains fields and global variables, but nothing else (like field properties, field triggers, table triggers, keys, procedures).
To Reproduce
Steps and to reproduce the behavior:

Declare a variable of an object on which your app is depending
F12/Go to Definition

var
    SalesLine: record "Sales Line";

Expected behavior
Getting a .dal file containing the entire object
Screenshots
5.0.271898 and earlier:

5.0.277602 and later:

Also note that in field 1 Enum "Sales Document Type" has been replaced by "Sales Document Type" Quote, Order, Invoice, "Credit Memo", "Blanket Order", "Return Order"
5. Versions:

AL Language: 5.0.277602 and 5.0.279165
Business Central: W1 16.0 (Platform 16.0.11233.12061 + Application 16.0.11240.12076)

Works here with AL 5.0.279165. Is this definitely consistent for you? IIRC I've seen it a couple of times, even in earlier versions, but a close/restart usually fixed it - something that's sadly needed often in VScode/AL with no apparent legitimate cause.

Same issue for me AL Language:  5.0.279165

Yes it's consistent here, restarting does not fix it. Also I'm having the same behavior for a simple table like Geolocation (with only one GUID and two Decimal fields) - so it may be unrelated to the Enum thing I noticed in the Sales Line table.

I take it that if you Download Symbols after changing to the new/bugged AL version, nothing changes?

No changes for me after downloading symbols

No, no changes here as well after downloading symbols and restarting VS Code

Do you have more than one configuration in your launch.json ?
It also happened to me (in v15 times) but never when I had only one configuration

No, I have one configuration in my launch.json

Same issue here. Very annoying. Workaround is using the AL Object Designer

Unfortunately the latest vsxix has been released from a branch where gotodefinition is refactored
to get rid of defaultLaunchConfigurationName  and also to support gotodefinition within a DAL file.
But this one needs  the latest 16.2 server. Thus until that is released gotodefinition would only show metadata information.

We will release a fix that things will work as before the defaultLaunchConfigurationName has been introduced if one targets runtime < 5.2
For runtimes >= 5,2 the new gotodefinition logic will take place.

Thanks a lot!
Also, great news that gotodefinition will become available in DAL files!

We have pushed a new version where this issue should be fixed if you target apps with a runtime version < 5.1

I am closing this issue because it appears that it has been resolved. Please open a new issue if you believe this has not been resolved and reference the current issue.

Yes, it's resolved, thank you!

Can somebody please point me into the right direction?
I am currently developing on a 5.0 runtime (BC 16.0), and my dal files are still as empty as they used to be. Am I missing something, or does the fix not work for my runtime?
I understood it should:

We have pushed a new version where this issue should be fixed if you target apps with a runtime version <= 5.1

What's the version of the VS Code extension 'AL Language'? Should work with 5.0.280447

It is the latest from Marketplace, 5.0.280447

Then I don't know... Works for me with that version and runtime 5.0, BC16.0...


Add a wipe_signatures option to LVM volume group

As mentioned in https://github.com/chef-cookbooks/lvm/issues/45 -  RHEL7's lvm command now interactively prompts users with a WARNING: ext3 signature detected on /dev/xvdb at offset 1080. Wipe it? [y/n] message.
This is particularly painful for AWS users, where ephemeral volumes come preformatted with ext3.
This PR adds a wipe_signatures option to lvm_volume_group that looks like so:
  lvm_volume_group 'opscode' do
    physical_volumes [ '/dev/xvdb', '/dev/xvdc' ]
    wipe_signatures true
  end

This feature comes with a big CAVEAT EMPTOR that it will wipe out the physical volumes provided to lvm_volume_group -  but this is the behavior you already get with lvm on RHEL <= 6 and all of the Ubuntu so really the point here is to have platform parity for RHEL7.

@irvingpop Does this need to go in the docs?

Yes - I'll update the README if feedback is positive.

Added documentation to the README, thanks for the tip @tas50 !


[Feature] [Table] Support classes for th in the table header and rows

Summary
Can we please make the padding also adjustable for the table header and the rows. Right now they are hardcoded in Table and the DefaultRow to
// Table

...

Basic example

   ...

Please update to the v0.17.5
npm i -D flowbite-svelte@latest

And let me know.
Please note that I will update all table components soon and the structure will be different.

Blocked with this #93 bug. Will test as soon as I find a resolution

Tested and this works great in Table class..
However, can we also fix this in the TableDefaultRow

@dennismphil I'm updating whole Table components. Could you wait a day or so please?

Sure. Thank you

I just updated to v0.18.0. It has new structure and flexible.
Please update/test and let me know.

Closing the issue for now.
Please feel free to create issues when you find more.
Thank you for your contribution.


Refs #35844 -- Expanded compatibility for expected error messages in command tests on Python 3.12 and 3.13.

Refs #35844 -- Expanded compatibility for expected error messages in command tests on Python 3.12 and 3.13.
Trac ticket number
ticket-35844
Branch description
Updated CommandTests.test_subparser_invalid_option and CommandDBOptionChoiceTests.test_invalid_choice_db_option to use assertRaisesRegex() for compatibility with modified error messages in Python 3.12, 3.13, and 3.14+.
https://github.com/python/cpython/commit/66b3922b97388c328c9bd8df050eef11c0261fae
Checklist

[X] This PR targets the main branch.
[X] The commit message is written in past tense, mentions the ticket number, and ends with a period.
[X] I have checked the "Has patch" ticket flag in the Trac system.
[X] I have added or updated relevant tests.
[ ] I have added or updated relevant docs, including release notes if applicable.
[ ] I have attached screenshots in both light and dark modes for any UI changes.

@tainarapalmeira Thanks :+1:
Context
Follow up to 4c3897bb154a3d3a94e5f7e146d0b8bf41e27d81.
It's been backported to Python 3.12 and 3.13:

https://github.com/python/cpython/commit/21524eec48f5b1c807f185253e9350cfdd897ce0
https://github.com/python/cpython/commit/d3d306a9d63e879d4eac42694b94ed4a7f440332

We should backport this to stable/4.2.x, stable/5.0.x, and stable/5.1.x. (Fortunately, these are only test adjustments so there is no need for release notes.)


Add code syntax  highlighting

Add code highlighting for the code examples in the section "Comparing null and undefined"

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

:sparkles: :sparkles: :sparkles: Awesome! Congratulations on your first contribution to freeCodeCamp! :sparkles: :sparkles: :sparkles:
Thank you for helping us improve this section of the guide, @weihungchin. We're all really looking forward to your next contribution.


feat(Unicon): add hover-fill property

Thank you for your contribution to the vue-unicons repo.
Before submitting this PR, please make sure:

[X] Your code builds clean without any errors or warnings
[x] Your commits follow the сonvention

What kind of change does this PR introduce? (check at least one)

[ ] Bugfix
[X] Feature
[ ] Refactor

Importantly
To avoid wasting your time, it's best to open a suggestion issue first and wait for approval before working on PR.

Hello, this PR broke the reactivity of the fill prop. Now we cant change the icon fill from the parent, after icon mounted.

You mean, change via css or what? Could you show me where it happens, and I will try to fix that asap

@leyenda It's not quite clear what we're talking about.
P.S. merged PR is not a good place for discussion. Please open an Issue on this subject and provide an example.

Thank you for your responses, I'll open a new issue to make it more clear.


Draft of activity/second limiting.

I'm assuming we're dropping/redoing this one in favour of using server-side rate limiting, right?


ARTEMIS-4774 Fixing PageCounters out of sync after AckMnager retries

I need to merge this PR. I have hours and hours of testing on this where I tweaked parameters.sh in multiple ways  and the counters are always accurate.
If there are minor issues or even tweaks that are needed to the code those could be addressed in a later PR.. .or feel free to send further commits on the branch.


can we add a search function to lxde to find the tools installed?

xfce seems to have nice search function

lxde doesn't offer anything. Decision: We link to the website from a menu entry: https://neurodesk.github.io/applications/
todo in: https://github.com/NeuroDesk/neurodesktop/issues/69


[R2] Add upload/download examples to rclone example

Changed provider to Cloudflare which is supported in 1.59 - 1.59 is now in stable

https://patch-62.cloudflare-docs-github.pages.dev/r2/examples/rclone/

FWIW, I didn't test the 5TB scenario due to not, uh, having 5TB of disk space.

It'll happily accept 10GiB (over the max 5GiB size of a single PutObject) call since it uses multipart uploads though - so I see 0 reason why that wouldn't work.


Some Azure endpoints have some trouble handling duplicated slashes ('//') in the endpoint's URL

Hey!
I encountered an issue when I wanted to query an AppConfiguration endpoint with the azure_svc_appconfiguration crate.
The generated URL contained a duplicate slash, which confused Azure's AppConfiguration endpoint.
Example:
My base URL: https://some-app-conf.azconfig.io/
The generated request's URL: https://some-app-conf.azconfig.io//keys?api-version=2023-10-01
This resulted in a 404 response. However, if I remove the duplicated slash from the Request, like:
https://some-app-conf.azconfig.io/keys?api-version=2023-10-01
everything just works as expected.
This could be an issue for other Azure REST endpoints as well.
I think some Azure endpoints experiencing some troubles dealing with duplicated slashes in the URL.
I tried with the latest version (0.20.0).
I made a draft Pull Request to solve this problem: https://github.com/Azure/azure-sdk-for-rust/pull/1663

Please see this comment on the PR as I am also facing this issue!


NMS.KK.DND.002 - Deactivate beneficiaries added to DND database

NMS shall mark a beneficiary as deactivated with associated reason if the beneficiary has its MSISDN number added to the DND database. This requirement applies to both cases listed below:

The beneficiary is called for first time
The beneficiary has added its MSISDN number to the DND database while the OBD service is ongoing

In case a beneficiary removes its number from DND database, then such a use-case is currently not handled by the software.

duplicate of #170


Menu Fixes and Changes

#243 #244 #245

this pull request reverts #214

commented out because the underlying issue was refactored away


docs: remove unused docs

Codecov Report

Merging #4 (48018b8) into main (5044873) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main       #4   +/-   ##
=======================================
  Coverage   97.36%   97.36%
=======================================
  Files           3        3
  Lines          38       38
  Branches        4        4
=======================================
  Hits           37       37
  Partials        1        1

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 5044873...48018b8. Read the comment docs.


Support building the Morpheus containers when Morpheus is a submodule

Description
If Morpheus is added to another repo as a submodule, most of the Docker build and conda build fail since the .git directory is outside of the Docker build context.
This PR allows a variable Docker build context to support using Morpheus when it is a submodule.

#548

#548

Excellent. Didnt know there was an issue for this.

/merge


Feature request: Add support for Multiple Webcams

Please accept my appologies if this is the wrong place to make a request I wasn't sure where to put it so followed previous posts.
I have no idea if this is easy or hard to do, but if it is at all possible, could you add the ability to add multiple Webcams as sensors Please?
Ihave 4 Webcams set up, each requireing a different lighting set up and this will make it so much easier.
As I am typing this i just thought I can use a button.. but being able to change the lights depending on which cam is active would be somuch easier (for me at least).
Thank you for your time and for the program!

Thanks for creating an issue!
This is not possible with our current implementation as Windows does not discriminate between different devices for its privacy logs. There mayb be other ways to get that information but that'll take some research.

Maybe looking for individual power states of USB devices? If it goes from D1/2/3 (low power states) to D0 (fully on state) then it would be active and in use

I have looked into this and it seems pretty complicated since Windows doesn't offer nice APIs / any possibility to query this. I would very much love to be able to select which webcam is active as well - in my particular use case (or actually any modern setup) I have a virtual IR camera for Windows Hello authentication. This infrared camera is used for authentication and of course doesn't need any lights turned on since it's infrared and has its own infrared light source. Not important - but annoying that all lights turn on for authentication and I have no way to query what webcam is used and disable everything for this particular webcam.
I saw the webcam process sensor (https://github.com/sleevezipper/hass-workstation-service/blob/master/hass-workstation-service/Domain/Sensors/WebcamProcessSensor.cs), but couldn't find it in the UI - how to use it? Maybe I could activate things only if e.g. "Zoom" is using the webcam or "Teams" or something like that?
The current implementation is to check the following registry key: https://github.com/sleevezipper/hass-workstation-service/blob/7fd20a4fc5718fcd5960e318ab81186b073af82d/hass-workstation-service/Domain/Sensors/WebcamActiveSensor.cs#L86 (as well as local machine). This registry key gets populated with the current executable using any webcam and the last time it was used - you do not know which webcam if you have multiple.
You can see this data nicely (Windows 10/11) when going to Settings > Privacy & security > camera. There you can see what app is currently using a webcam and the last time any app has accessed any webcam.
I have tried getting any webcam active state using WMI (e.g. using Get-PnPDevice & Get-PNPDeviceProperty like so get-pnpdevice | ? {$_.FriendlyName -like "*webcam*"} | Get-PnpDeviceProperty). Unfortunately WMI does not provide the power states of the camera (D0/D1/D2/D3) in fact the WMI information doesn't change one bit if the camera in question is on or off in other words: WMI doesn't contain the power state information ☹
The only location I could find the power state information is in the device manager, as other have already figured out:

https://stackoverflow.com/questions/15000196/reading-device-managers-property-fields-in-windows-7-8
https://stackoverflow.com/questions/51725639/getting-current-usb-power-state

The second method seems a bit hacky and using SetupDiGetDeviceRegistryProperty() seems to be the correct way, but also involves calling some ancient WIN32 APIs. It should be possible also from HASS workstation service, some example code (not on power states, but how to work with the API) can be found here: https://theorypc.ca/2017/06/28/remove-ghost-devices-natively-with-powershell/
So no solution here, maybe just a way forward if someone wants to step into SetupDiGetDeviceRegistryProperty. It would be possible to list all webcams, and check which webcam is active looking at the power states.


Allow to define a Type for catchErrorSource (@state-adapt/rxjs)

In my Angular project i would like to define my error state of a login request as following:
export interface AuthState {
  user: Models.User<any> | null;
  error: HttpErrorResponse | null;
}

@Injectable({ providedIn: 'root' })
export class AuthStore {
  readonly login$ = new Source<{ email: string; password: string }>(
    '[Auth] Login'
  );

  private readonly authService = inject(AuthService);

  private readonly accountCreateEmailSession$ = this.login$.pipe(
    concatMap(({ payload }) =>
      this.authService
        .login(payload.email, payload.password)
        .pipe(toRequestSource('[Auth API] Login'))
    )
  );

  private store = adapt(initialState, {
    adapter: authAdapter,
    sources: () => {
      const { success$: loginSuccess$, error$: loginFailed$ } =
        splitRequestSources(
          '[Auth API] Login',
          this.accountCreateEmailSession$
        );

      return {
        loginSuccess: loginSuccess$,
        loginFailed: loginFailed$
      };
    },
  });
}

Is there a way to define a Type for this error loginFailed$? I think https://angular.io/api/common/http/HttpErrorResponse would be a great fit. Currently I have to type error as any.

Sorry for the late reply.
I don't know what you mean by "Currently I have to type error as any." The error is just typed as any in toRequestSource. You can have your state be whatever because any can be cast to pretty much anything.
I would have to change it to allow a generic to be passed in for the error type, but then you'd have to explicitly pass in the generics for the action payload and prefix too, because TypeScript doesn't do partial generic inference. I don't think this is worth it, especially because there's little difference between passing in a generic and just casting the resulting type like loginFailed$ as Observable<Action<HttpErrorResponse, '[Auth API] Login'>>. TypeScript will just obey you in either case. Not much safety there. And that's basically what TypeScript is already doing when you pass it into loginFailed: loginFailed$. So the only added benefit would be if you're doing some intermediate processing with that error. I've never seen anyone do that.

@mfp22 thanks for your answer.

I don't know what you mean by "Currently I have to type error as any." The error is just typed as any in toRequestSource. You can have your state be whatever because any can be cast to pretty much anything.

I mean defining the type for error in my state Interface.
Solved it by applying your suggestion and casting the response to HttpErrorResponse: https://github.com/mathisvester/ng-x/commit/b2234608e605a524853b8217d31870af42035f21.


PDF export doesn't respect document scale for tables

When
When designing a large table with many columns.
Outcome
The PDF export through CTRL+P doesn't respect the document scale and tables are cut off at the right margin.
A scroll bar appears but of course cannot be used in the PDF.

The table is scaled properly in the live rendering.

This is not the case for plain text where too long lines are properly wrapped.
Environment

Linux Debian stretch
Chromium  53.0.2785.143
Monod version ff0b2d9
Template: no template

Hi, thanks for the bug report!
The issue related to the scrollbars might have been solved by #282. Yet, it looks like we did not deploy the latest version... Gotta deploy it!

I have the same issue with plain text. The lines do not wrap.


[ffmpeg-qsv] Add VPP CSC 10bit test suites

I don't think we need this 10bit specialized test. We can use the existing vpp/csc.py to test 10bit formats. Just add it to the test case config with explicit 10bit formats.

The only thing that this specialization will do is determine how it is reported by our current report generators.  But I don't think that is enough to warrant the addition.

Thanks for the feedback! I agree with you that don't add specialized tests for the 10-bit format. I'll update the PR to use the existing vpp/csc .py tests.


[Jenkins] Unit test - Unable to load shared library

Hi,
I'm not sure if it's cconnected with this task https://github.com/ericsink/SQLitePCL.raw/issues/444. So, I create new one.
The latest version is working fine locally but during executing unit tests on jenkins, it throws exception below:
System.TypeInitializationException : The type initializer for 'Microsoft.Data.Sqlite.SqliteConnection' threw an exception.
14:28:36  ---- System.Reflection.TargetInvocationException : Exception has been thrown by the target of an invocation.
14:28:36  -------- System.DllNotFoundException : Unable to load shared library 'e_sqlcipher' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: libe_sqlcipher: cannot open shared object file: No such file or directory

I need more details.  What is different about the jenkins environment?  Is it .NET Core or .NET Framework?  What unit test framework are you using?  Did this previously work with 2.0.4?

Jenkins environment is linux virtual machine with docker.
Locallly we work on Windows with docker. We execute each steps using bash scripts to build, test and publish our application.
Application: .NET Core 5
Unit test framework: xunit
Yes, it's working with 2.0.4. Currently I downgraded to this version.
Do you need something else?

Do you need something else?

Probably, but I'm not sure yet what to ask for.  :-)
Let me think about this a bit.

Well I guess the obvious thing to ask for is a minimal docker setup that reproduces the problem.  :-)
Any chance you could make one?

This is our Dockerfile:
FROM ubuntu:18.04
RUN apt-get update
RUN apt-get install -y ca-certificates

# https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb
COPY packages-microsoft-prod.deb /tmp
RUN dpkg -i /tmp/packages-microsoft-prod.deb
RUN apt-get update

RUN apt-get install -y \
      apt-transport-https \
      dotnet-sdk-5.0 \
      dotnet-runtime-5.0
# because microsoft - that's why...
ENV DOTNET_CLI_TELEMETRY_OPTOUT=true
# needed for ~/.dotnet/
ENV HOME=/mnt/src/.home

# need newer NPM, than the one in Ubuntu 18.04 repos
RUN apt-get install -y \
      lsb-release \
      gnupg
COPY nodesource.list /etc/apt/sources.list.d/
COPY nodesource.gpg.key /tmp/
RUN apt-key add /tmp/nodesource.gpg.key
RUN apt-get update
RUN apt-get install -y nodejs # for npm
RUN npm install -g newman

RUN apt-get update && apt-get install -y openjdk-11-jdk
RUN dotnet tool install dotnet-sonarscanner --version 5.0.4 --tool-path /usr/local/tools/sonarscanner
ENV PATH="${PATH}:/usr/local/tools/sonarscanner"
RUN chmod 777 -R /usr/local/tools/sonarscanner/

RUN chmod 777 -R /tmp/NuGetScratch/

nodesource.list
deb     https://deb.nodesource.com/node_12.x bionic main
deb-src https://deb.nodesource.com/node_12.x bionic main

nodesource.gpg.key
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1
Comment: GPGTools - https://gpgtools.org

mQINBFObJLYBEADkFW8HMjsoYRJQ4nCYC/6Eh0yLWHWfCh+/9ZSIj4w/pOe2V6V+
W6DHY3kK3a+2bxrax9EqKe7uxkSKf95gfns+I9+R+RJfRpb1qvljURr54y35IZgs
fMG22Np+TmM2RLgdFCZa18h0+RbH9i0b+ZrB9XPZmLb/h9ou7SowGqQ3wwOtT3Vy
qmif0A2GCcjFTqWW6TXaY8eZJ9BCEqW3k/0Cjw7K/mSy/utxYiUIvZNKgaG/P8U7
89QyvxeRxAf93YFAVzMXhoKxu12IuH4VnSwAfb8gQyxKRyiGOUwk0YoBPpqRnMmD
Dl7SdmY3oQHEJzBelTMjTM8AjbB9mWoPBX5G8t4u47/FZ6PgdfmRg9hsKXhkLJc7
C1btblOHNgDx19fzASWX+xOjZiKpP6MkEEzq1bilUFul6RDtxkTWsTa5TGixgCB/
G2fK8I9JL/yQhDc6OGY9mjPOxMb5PgUlT8ox3v8wt25erWj9z30QoEBwfSg4tzLc
Jq6N/iepQemNfo6Is+TG+JzI6vhXjlsBm/Xmz0ZiFPPObAH/vGCY5I6886vXQ7ft
qWHYHT8jz/R4tigMGC+tvZ/kcmYBsLCCI5uSEP6JJRQQhHrCvOX0UaytItfsQfLm
EYRd2F72o1yGh3yvWWfDIBXRmaBuIGXGpajC0JyBGSOWb9UxMNZY/2LJEwARAQAB
tB9Ob2RlU291cmNlIDxncGdAbm9kZXNvdXJjZS5jb20+iQI4BBMBAgAiBQJTmyS2
AhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRAWVaCraFdigHTmD/9OKhUy
jJ+h8gMRg6ri5EQxOExccSRU0i7UHktecSs0DVC4lZG9AOzBe+Q36cym5Z1di6JQ
kHl69q3zBdV3KTW+H1pdmnZlebYGz8paG9iQ/wS9gpnSeEyx0Enyi167Bzm0O4A1
GK0prkLnz/yROHHEfHjsTgMvFwAnf9uaxwWgE1d1RitIWgJpAnp1DZ5O0uVlsPPm
XAhuBJ32mU8S5BezPTuJJICwBlLYECGb1Y65Cil4OALU7T7sbUqfLCuaRKxuPtcU
VnJ6/qiyPygvKZWhV6Od0Yxlyed1kftMJyYoL8kPHfeHJ+vIyt0s7cropfiwXoka
1iJB5nKyt/eqMnPQ9aRpqkm9ABS/r7AauMA/9RALudQRHBdWIzfIg0Mlqb52yyTI
IgQJHNGNX1T3z1XgZhI+Vi8SLFFSh8x9FeUZC6YJu0VXXj5iz+eZmk/nYjUt4Mtc
pVsVYIB7oIDIbImODm8ggsgrIzqxOzQVP1zsCGek5U6QFc9GYrQ+Wv3/fG8hfkDn
xXLww0OGaEQxfodm8cLFZ5b8JaG3+Yxfe7JkNclwvRimvlAjqIiW5OK0vvfHco+Y
gANhQrlMnTx//IdZssaxvYytSHpPZTYw+qPEjbBJOLpoLrz8ZafN1uekpAqQjffI
AOqW9SdIzq/kSHgl0bzWbPJPw86XzzftewjKNbkCDQRTmyS2ARAAxSSdQi+WpPQZ
fOflkx9sYJa0cWzLl2w++FQnZ1Pn5F09D/kPMNh4qOsyvXWlekaV/SseDZtVziHJ
Km6V8TBG3flmFlC3DWQfNNFwn5+pWSB8WHG4bTA5RyYEEYfpbekMtdoWW/Ro8Kmh
41nuxZDSuBJhDeFIp0ccnN2Lp1o6XfIeDYPegyEPSSZqrudfqLrSZhStDlJgXjea
JjW6UP6txPtYaaila9/Hn6vF87AQ5bR2dEWB/xRJzgNwRiax7KSU0xca6xAuf+TD
xCjZ5pp2JwdCjquXLTmUnbIZ9LGV54UZ/MeiG8yVu6pxbiGnXo4Ekbk6xgi1ewLi
vGmz4QRfVklV0dba3Zj0fRozfZ22qUHxCfDM7ad0eBXMFmHiN8hg3IUHTO+UdlX/
aH3gADFAvSVDv0v8t6dGc6XE9Dr7mGEFnQMHO4zhM1HaS2Nh0TiL2tFLttLbfG5o
QlxCfXX9/nasj3K9qnlEg9G3+4T7lpdPmZRRe1O8cHCI5imVg6cLIiBLPO16e0fK
yHIgYswLdrJFfaHNYM/SWJxHpX795zn+iCwyvZSlLfH9mlegOeVmj9cyhN/VOmS3
QRhlYXoA2z7WZTNoC6iAIlyIpMTcZr+ntaGVtFOLS6fwdBqDXjmSQu66mDKwU5Ek
fNlbyrpzZMyFCDWEYo4AIR/18aGZBYUAEQEAAYkCHwQYAQIACQUCU5sktgIbDAAK
CRAWVaCraFdigIPQEACcYh8rR19wMZZ/hgYv5so6Y1HcJNARuzmffQKozS/rxqec
0xM3wceL1AIMuGhlXFeGd0wRv/RVzeZjnTGwhN1DnCDy1I66hUTgehONsfVanuP1
PZKoL38EAxsMzdYgkYH6T9a4wJH/IPt+uuFTFFy3o8TKMvKaJk98+Jsp2X/QuNxh
qpcIGaVbtQ1bn7m+k5Qe/fz+bFuUeXPivafLLlGc6KbdgMvSW9EVMO7yBy/2JE15
ZJgl7lXKLQ31VQPAHT3an5IV2C/ie12eEqZWlnCiHV/wT+zhOkSpWdrheWfBT+ac
hR4jDH80AS3F8jo3byQATJb3RoCYUCVc3u1ouhNZa5yLgYZ/iZkpk5gKjxHPudFb
DdWjbGflN9k17VCf4Z9yAb9QMqHzHwIGXrb7ryFcuROMCLLVUp07PrTrRxnO9A/4
xxECi0l/BzNxeU1gK88hEaNjIfviPR/h6Gq6KOcNKZ8rVFdwFpjbvwHMQBWhrqfu
G3KaePvbnObKHXpfIKoAM7X2qfO+IFnLGTPyhFTcrl6vZBTMZTfZiC1XDQLuGUnd
sckuXINIU3DFWzZGr0QrqkuE/jyr7FXeUJj9B7cLo+s/TXo+RaVfi3kOc9BoxIvy
/qiNGs/TKy2/Ujqp/affmIMoMXSozKmga81JSwkADO1JMgUy6dApXz9kP4EE3g==
=CLGF
-----END PGP PUBLIC KEY BLOCK-----

Installed packages in Tests project:

xunit: 2.4.1
xunit.runner.visualstudio: 2.4.3
moq: 4.16.1
microsoft.net.test.sdk: 16.11.0
coverlet.collector: 3.1.0

ConnectionString: "DataSource=:memory:"

Hmmm.  What I was looking for a minimal way to reproduce the problem so I can try to diagnose what's going on.
That Dockerfile doesn't exactly fit my definition of "minimal".  I mean, it installs the JDK.  Can this be pared down to something smaller and still reproduce the problem?
Furthermore, CAN I use this Dockerfile to actually reproduce the problem?  I see your follow-on comment about the dependencies of the Tests project, but that project doesn't seem to be mentioned in the Dockerfile?

I will prepare simple solution to reproduce this problem.
In my opinion it can require only test project which creates Sqliteconnection with connection string like above.
Probably we can skip node and JDK packages in Dockerfile because we need only dotnet sdk there.
FROM ubuntu:18.04
RUN apt-get update
RUN apt-get install -y ca-certificates

# https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb
COPY packages-microsoft-prod.deb /tmp
RUN dpkg -i /tmp/packages-microsoft-prod.deb
RUN apt-get update

RUN apt-get install -y \
      apt-transport-https \
      dotnet-sdk-5.0 \
      dotnet-runtime-5.0
# because microsoft - that's why...
ENV DOTNET_CLI_TELEMETRY_OPTOUT=true
# needed for ~/.dotnet/
ENV HOME=/mnt/src/.home

RUN chmod 777 -R /tmp/NuGetScratch/

Yes.  I think this problem slipped in when we changed the native builds to use GitHub Actions.  I'm working on it.

OK, I think I've confirmed the problem.  I changed the script over in the cb repo to build the binaries on ubuntu-18.04 instead of ubuntu-latest.  Unsurprisingly, the resulting libe_sqlite3.so works fine on ubuntu-18.04 (since that's where it was built).
@bricelam I suspect this issue is relevant to your release cycle, as you probably don't want e_sqlite3 binaries that only work on ubuntu-20.04.  How far back in ubuntu releases do you need to support?

The repro project posted by @MDzyga fails for me on ubuntu-18.04 with 2.0.5 but it works with 2.0.6-pre20210902144138.

@bricelam I haven't found anything I would call definitive, but it kinda looks like .NET 6 intends to support ubuntu-16.04.
And technically, 14.04 LTS doesn't go end of life until April 2022.
https://wiki.ubuntu.com/Releases

Yes, 16.04. Here is the official list of supported OSes.

Fixed in 2.0.6

@ericsink Thank you :)


Support Zero, One, FromPrimitive, ToPrimitive for dashu-float

Thanks for the implementations! I will fill out some of the missing parts after merging this.


Hitting NotFoundGraphError2: Graph.addDirectedEdge: source node error in CI

Original issue: https://github.com/git-town/git-town/issues/4195 by @EngHabu

We use git-town actions to populate the stack view in the PR description.
It has been working well until recently (today?) where we started hitting this:
/home/runner/work/_actions/git-town/action/v1/dist/index.js:24877
        throw new NotFoundGraphError("Graph.".concat(name, ': source node "').concat(source, '" not found.'));
              ^

NotFoundGraphError2: Graph.addDirectedEdge: source node "<a branch name here>" not found.
    at addEdge (/home/runner/work/_actions/git-town/action/v1/dist/index.js:24877:15)
    at Graph.<computed> [as addDirectedEdge] (/home/runner/work/_actions/git-town/action/v1/dist/index.js:26139:20)
    at /home/runner/work/_actions/git-town/action/v1/dist/index.js:42861:15
    at Array.forEach (<anonymous>)
    at main (/home/runner/work/_actions/git-town/action/v1/dist/index.js:42860:[16](https://github.com/unionai/cloud/actions/runs/11693203423/job/32564253997?pr=9227#step:3:22))
    at run (/home/runner/work/_actions/git-town/action/v1/dist/index.js:47005:10)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

Node.js v20.13.1

It's unclear to me what's going on... The referenced branch is not related to my PR and isn't part of the stack...

@EngHabu I'll need a bit more information from you to figure out what's going on. Would you be able to share the action's inputs from the problematic workflow run? You can find this information from the step's output:

I've seen this error before, I believe it could be related to #36. Once you provide me with some further information I'll dig into the issue ASAP!

We're seeing the same thing also,
/home/runner/work/_actions/git-town/action/v1/dist/index.js:24877
          throw new NotFoundGraphError("Graph.".concat(name, ': source node "').concat(source, '" not found.'));
                ^

  NotFoundGraphError2: Graph.addDirectedEdge: source node "..." not found.
      at addEdge (/home/runner/work/_actions/git-town/action/v1/dist/index.js:24877:[15](https://github.com/stockx/iron/actions/runs/12011258930/job/33481569022#step:3:19))
      at Graph.<computed> [as addDirectedEdge] (/home/runner/work/_actions/git-town/action/v1/dist/index.js:26139:20)
      at /home/runner/work/_actions/git-town/action/v1/dist/index.js:42861:15
      at Array.forEach (<anonymous>)
      at main (/home/runner/work/_actions/git-town/action/v1/dist/index.js:42860:[16](https://github.com/stockx/iron/actions/runs/12011258930/job/33481569022#step:3:20))
      at run (/home/runner/work/_actions/git-town/action/v1/dist/index.js:47005:10)
      at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

  Node.js v20.13.1

I'm not sure what information I can provide other than:

We have a lot of branches (800+) I've deleted a bunch but the action still stops at the same branch.
No forks
Copy/paste the action out of the example without any changes
Branch failing on does exist

@mwisner Would you be able to share the action's inputs from the problematic workflow run? You can get this from the step's output, as seen in https://github.com/git-town/action/issues/42#issuecomment-2475023158.

@mwisner @EngHabu
I've released v1.0.6 which contains fixes for #19 & #36. I believe this should resolve the error! Please monitor the action & report back if the issue persists.
I'll be closing this issue just to keep things tidy, but if the error comes up again I'm more than happy to reopen it 😊

Works great, thank you!!!


Attempting to reinstall an operator that uses conversion webhooks fails

Bug Report

What did you do?
When attempting to reinstall an operator that uses conversion webhooks by

Deleting the operator subscription and any CSVs associated with it
Recreating the operator subscription

The resulting InstallPlan enters a failed state with message similar to

error validating existing CRs against new CRD's schema for "devworkspaces.workspace.devfile.io": error listing resources in GroupVersionResource schema.GroupVersionResource{Group:"workspace.devfile.io", Version:"v1alpha1", Resource:"devworkspaces"}: conversion webhook for workspace.devfile.io/v1alpha2, Kind=DevWorkspace failed: Post "https://devworkspace-controller-manager-service.test-namespace.svc:443/convert?timeout=30s": service "devworkspace-controller-manager-service" not found

When the original CSVs are deleted, the operator's main deployment and service are removed, but CRDs are left in-cluster. However, since the service/CA bundle/deployment that serve the conversion webhook are removed, conversion webhooks are broken at that point. Eventually this impacts garbage collection on the cluster as well.
This can be reproduced by installing the DevWorkspace Operator from the Red Hat catalog. (I can provide yamls/upstream images that reproduce as well, if that's helpful). It may be necessary to create a DevWorkspace in the cluster before deletion, e.g. by oc apply -f https://raw.githubusercontent.com/devfile/devworkspace-operator/main/samples/plain.yaml
What did you expect to see?
Operator is able to be reinstalled without removing CRDs and all instances.
What did you see instead? Under which circumstances?
It's necessary to completely remove the operator including CRDs. For our operator (DevWorkspace), this also makes uninstall especially complicated as finalizers are used (so CRDs cannot be deleted if the controller is removed, and the controller cannot be restored by reinstalling)
Environment

operator-lifecycle-manager version: 4.10.24

Kubernetes version information: Kubernetes Version: v1.23.5+012e945 (OpenShift 4.10.24)

Kubernetes cluster kind:  OpenShift

Possible Solution
The only details I noticed that may be relevant are

The order of objects in the InstallPlan varies per install, and sometimes CRDs are applied earlier
The installPlan fails at the point of trying to apply CRDs

Additional context
Add any other context about the problem here.

Thanks for submitting this ticket @amisevsk.

When attempting to reinstall an operator that uses conversion webhooks by

Deleting the operator subscription and any CSVs associated with it
Recreating the operator subscription

The resulting InstallPlan enters a failed state with message similar toerror validating existing CRs against new CRD's schema for "devworkspaces.workspace.devfile.io": error listing resources in GroupVersionResource schema.GroupVersionResource{Group:"workspace.devfile.io", Version:"v1alpha1", Resource:"devworkspaces"}: conversion webhook for workspace.devfile.io/v1alpha2, Kind=DevWorkspace failed: Post "https://devworkspace-controller-manager-service.test-namespace.svc:443/convert?timeout=30s": service "devworkspace-controller-manager-service" not found

Yep, that's a valid bug and something we need to address. OLM does not allow a CSV to "adopt/update" an existing CRD if it would invalidate existing CRs on cluster. In this case, the installation is failing because OLM can't check existing CRs because there is no operator servicing the conversion webhook defined in the CRD.
There are a few paths forward
Option 1: Disable Conversion Webhooks when deleting CSVs
When uninstalling a CSV, if the CRD is not "owned" by a new CSV (as it would during an upgrade), change the conversion strategy to None.
Option 2: Don't perform CRD/CR validation if openapiv3schema has not changed
When installing or upgrading a CSV, do not perform CRD/CR schema validation checks if the openapiv3 schema has not changed.
I prefer option 1, as the conversion webhook won't impact GC between uninstalling (deleting the subscription + csv) and reinstalling the operator, but will need to confirm that it fully resolves the issue. I'll be sure to comment on this issue with what I find.

What did you expect to see?
Operator is able to be reinstalled without removing CRDs and all instances.

You may be able to workaround this by manually setting the CRD's conversion strategy to none.

You may be able to workaround this by manually setting the CRD's conversion strategy to none. I'm going to spin up a cluster to check.

The proposed workaround works, if you set all CRD Conversion Strategies to None prior to reinstalling the operator.

@awgreene Thank you for testing it out -- this is something we will need to document.
I assume this is the case, but just to double-check: in the case that a user deletes the subscription and CSV without setting conversion to None, the workaround can still be used (i.e. we can set conversion to None before reinstalling), correct?

I just did a quick test in a small cluster and setting
spec:
  conversion:
    strategy: None # note .spec.conversion.webhook is removed here

on all involved CRDs worked as expected and I was able to reinstall the operator.
Thanks again!

I'll work on getting a PR to update a CRD's conversionStrategy to None if no CSV owns the CRD.

I'll work on getting a PR to update a CRD's conversionStrategy to None if no CSV owns the CRD.

I'm not sure I entirely understand, but note that we currently support some flows where the operator is not installed via OLM, so in some cases CRDs may exist on the cluster that were not created by OLM, and these CRDs need to keep their conversion settings. In these cases, we use service.beta.openshift.io/inject-cabundle: 'true' and mount the certificate to the controller ourselves.

Sorry, it would be part of OLM's cleanup of a CSV:

Check if the CSV defined any conversion webhooks
If a conversion webhook was defined in the CSV, check if the CSV is being replaced or uninstalled
If uninstalled, set the conversion strategy to None.

@awgreene was the fix for this one backported for OpenShift 4.10/4.11?


Disable rules with inline comments

Hi all,
As a linter used in IDEs, the possibility to add inline comments to ignore a line would be useful.
I think this could inpire us.
What do you think?

So far we have tried to treat json and yaml files the same but we wouldn't be able to do that in this case.
Technically I think this is possible.  We would have to rework the yaml parser to store comments into an object we can parse and look for certain patterns, etc, etc.
It would be a little inefficient but we would have to capture all the failures and then see if each error was inside the enable/disable blocks.
Let me think on this... I'm working through a few more issues before I would be able to get to this one.

I see your point. I like your idea of capturing all errors and checking then if we can ignore them.
Furthermore, a first step would be to simply check for end of the line ignore rules comment. Then, the support for ignore block could come.

You can disable rules with the currently undocumented Metadata section, example in tests.

Is it possible to disable specific instances of check? E.g., since transform include is not supported (https://github.com/awslabs/cfn-python-lint/issues/15#issuecomment-383575448) it would be nice to disable the type of output below (on a template that passes aws cloudformation validate-template). I still would like to see other instances of E3001 though.
E3001 Type not defined for resource Fn::Transform
shared_nested_stack_client/parent_template.yaml:18:3
E3006 Resources Fn::Transform has invalid name.  Name has to be alphanumeric.
shared_nested_stack_client/parent_template.yaml:18:3
E3001 Invalid resource attribute Name for resource Fn::Transform
shared_nested_stack_client/parent_template.yaml:19:5
E3001 Invalid resource attribute Parameters for resource Fn::Transform
shared_nested_stack_client/parent_template.yaml:20:5

Right now you can only turn on and off rules.  But for your use case, it seems like it might make more sense for us to enhance the linter to lint around Fn::Transform?  I can add that as an enhancement.

Excellent, thanks @cmmeyer, let me know if I can provide any other information, and if you could add a link here for the issue once created, much appreciated.

@sd65 quick and dirty patch but useful for me (I need to exclude jinja2 syntax in my files):
https://github.com/dmorel/cfn-python-lint/commit/a21c58a7c39303fd5f38df2088a239c1eb58afd7

Resource based exceptions are now available in v0.20.0 using the Resources Metadata.

@kddejong Could we get a link posted here of an example or usage for the sake of continuity? I think this issue has been hot enough that it has a fair amount of visibility.

https://github.com/aws-cloudformation/cfn-python-lint#resource-based-metadata
Is this useful enough?  Or any suggestions on improvements?

@kddejong Good enough for the girls I go out with, much appreciate!


Landsat Low Latency production

TODOs:
Error handling
I don't have a good understanding of how the SQS -> Lambda message consumption happens, specifically around how we decide if we've successfully consumed a message or if it should go back into the queue for later.
Right now, if a reference scene does n0t match our processing criteria, it just raises an AssertError.  I think we'd want to mark non-matching reference scenes  (AssertError raised in _check_scene) as "successfully consumed" because we won't want to process them again, but other errors raised further down the processing stack should cause the message to go back into the queue.

[ ] Dead letter queue

Deploy

[ ] determine if we want a test stack, and how to handle it -- for an event driven workflow that'll be submitting 10s of thousands of jobs per month, do we need a "do nothing" HyP3 stack/job it can submit to?
[ ] CI/CD to deploy the stack to the JPL ITS_LIVE account

CI/CD

[ ] set up our standard workflows

breaking this apart into multiple PRs


Fixed db index on ServiceRequest.orderDetail

Coverage: 93.709%. Remained the same when pulling d61678a84605fd82490b2e3f7a8dcfad76d42b5d on cody-fix-service-request-order-detail-index into 2d073015c089a58e4044ef81d0b431c17c00f32c on main.


feat(): add snapshot profile resolver

@bonustrack please review again.

Also add Snapshot as resolver in readme

@bonustrack done changes you asked for.


Updating the AGAGD to Python3.7+ Results in Breaking Changes with Apache2 and Mod WSGI

Summary of the Bug
Multiple breaking changes when moving from a Python2.7 virtualenv to Python3.7+. Breaks can include:

"member object" being displayed instead of members name on numerious pages,
/gamestats" results in a timeout error

Steps to Reproduce the Behaviour

Update virtualenv in Apache2 to Python3.7 from Python2.7
Install libapache2-mod-wsgi-py3
Restart Apache

The Expected Behaviour
AGAGD application to work as before when using Apache2  and mod-wsgi.
Screenshots

Notes

Only Python3.7+ results in breaking changes
Apache2 must have the AGAGD environmental variables set

"member object" being displayed instead of members name on numerious pages,

This appears to be from django-tables2.

Resolved in #155.


http-problem

IETF spec in the APPSAWG -
http://datatracker.ietf.org/doc/draft-ietf-appsawg-http-problem/
May be interesting for TAG review as it effectively defines an object to convey an (HTTP) API error.

Discussed in NYC; @domenic to review. @slightlyoff might also have feedback.

Stuff to not forget when reviewing:

@slightlyoff's initial feedback that there's no namespacing of extension properties vs. blessed ones
Whether if we have a standard error format, we can leverage that in e.g. Fetch or similar places throughout the platform?
Align with ES errors (potentially better ones in the future)?

Ping? Being discussed at IETF Dallas on Monday.

Some urgency is exactly what this needed, thanks. Will do this week.

Here's what I got. Should I deliver it to apps-discuss, or pull request it here, or should we workshop it first, or...?
A proposal along these lines is sorely needed on the web, as explained very well by its introduction. My main concerns are around the confusing nature of type, title, and message fields, and how they might not be suited for common use cases.
My first concern is the recommendation that "type" be a dereferenceable URL. I think many APIs will simply want to have a unique-within-their-API ID per problem type, but that seems to be implicitly discouraged by this document, which wants them to mint new HTTP-accessible HTML pages describing the problem. I understand how it's very nice to have this kind of self-describing type, similar to link relations. But I worry that the additional burden will discourage people from using this format, or will end up with them putting non-URLs in the type field.
I'm also unsure how to make sense of the combination of "title" plus "detail". Given that both are meant to be human-readable, when is the separation helpful? What is the recommended way to display this to humans: title, two newlines, then detail, perhaps? Most error-communication systems in programming langauges have a machine-readable type (e.g. TypeError, IOError, etc.) and a single human-readable string (often message). I would venture a guess that many developers model their conception of errors similarly. Introducing two human-readable fields makes it harder to conceptualize how this is supposed to map to existing systems, or how to display the resulting error to the user. Ideally, I think, there would be a single "message" field, which could be mapped to that same field in most programming languages.
The "instance" field seems to be of unclear utility. In which scenario would this be useful? Is it worth making it part of the spec, instead of letting it be a per-scenario extension? How do you envision it being generically processed?
The optional "status" field seems fragile, as mentioned in section 5. What is the purpose of including it, especially since it is optional?
Finally, I'm unsure how comfortable I am with the lack of constraints on extension members. It might be more future-proof, or perhaps just cleaner, to separate them into a sub-object ({ "type": ..., "title": ..., "other": { "customer_id": ... } } or similar). Or, simply mandate that they must begin with a given prefix (an underscore, "other_", "details-", ...).
All in all though, this is really exciting. If it takes off, you could imagine it having ripple effects across web architecture. For just one example, you could imagine a built-in option to fetch that will use a application/problem+json response to construct a JavaScript Error object with its fields appropriately pre-filled, and reject the resulting promise instead of relying on a status-code-then-parse-error path in the fulfillment handler. Or, if the URL-based error identifier approach really takes off, you could imagine it helping solve our problem in JavaScript of identifying errors more precisely.

Thanks for the review. A few responses:

Here's what I got. Should I deliver it to apps-discuss, or pull request it here, or should we workshop it first, or...?

A proposal along these lines is sorely needed on the web, as explained very well by its introduction. My main concerns are around the confusing nature of type, title, and message fields, and how they might not be suited for common use cases.

Great!

My first concern is the recommendation that "type" be a dereferenceable URL. I think many APIs will simply want to have a unique-within-their-API ID per problem type, but that seems to be implicitly discouraged by this document, which wants them to mint new HTTP-accessible HTML pages describing the problem. I understand how it's very nice to have this kind of self-describing type, similar to link relations. But I worry that the additional burden will discourage people from using this format, or will end up with them putting non-URLs in the type field.

Well, it's a SHOULD, so you can violate it if you have reason to. It's a requirement because it seemed important to document the error type, but I agree that it might be too high a bar -- it's more of a strong suggestion than a requirement.
I'm happy to downgrade it to something more suggestive.
BTW, just to be clear, you're not saying it's a problem that it's a URI (possibly relative), correct?

I'm also unsure how to make sense of the combination of "title" plus "detail". Given that both are meant to be human-readable, when is the separation helpful?

"title" is defined by the error type, and therefore static between instances of the error. "detail" is specific to a particular instance.

What is the recommended way to display this to humans: title, two newlines, then detail, perhaps?

SGTM.

Most error-communication systems in programming langauges have a machine-readable type (e.g. TypeError, IOError, etc.) and a single human-readable string (often message). I would venture a guess that many developers model their conception of errors similarly. Introducing two human-readable fields makes it harder to conceptualize how this is supposed to map to existing systems, or how to display the resulting error to the user. Ideally, I think, there would be a single "message" field, which could be mapped to that same field in most programming languages.

I think the mapping is:

"type" - error type
"title" - human readable description of error type
"detail" - stack trace (except we don't want actual stack traces exposed via HTTP APIs, usually, because that's a security issue)

The "instance" field seems to be of unclear utility. In which scenario would this be useful? Is it worth making it part of the spec, instead of letting it be a per-scenario extension? How do you envision it being generically processed?

For example, you might use it to correlate a particular instance of an error in logs, identify it in support calls, etc.
Make sense, or need more convincing?

The optional "status" field seems fragile, as mentioned in section 5. What is the purpose of including it, especially since it is optional?

Many people complain that the HTTP status code isn't available in their API, or isn't persisted in their systems, so putting it in the body preserves that information. Personally, I'm ambivalent about this, and happy to drop it; they can infer the intended status from the type's documentation.

Finally, I'm unsure how comfortable I am with the lack of constraints on extension members. It might be more future-proof, or perhaps just cleaner, to separate them into a sub-object ({ "type": ..., "title": ..., "other": { "customer_id": ... } } or similar). Or, simply mandate that they must begin with a given prefix (an underscore, "other_", "details-", ...).

I like the sound of that. Any preference in terms of style?

All in all though, this is really exciting. If it takes off, you could imagine it having ripple effects across web architecture. For just one example, you could imagine a built-in option to fetch that will use a application/problem+json response to construct a JavaScript Error object with its fields appropriately pre-filled, and reject the resulting promise instead of relying on a status-code-then-parse-error path in the fulfillment handler. Or, if the URL-based error identifier approach really takes off, you could imagine it helping solve our problem in JavaScript of identifying errors more precisely.

In-ter-esting!

OK, thanks :). Hi apps-discuss, and thanks for your willingness to come engage in our issue tracker.

Well, it's a SHOULD, so you can violate it if you have reason to. It's a requirement because it seemed important to document the error type, but I agree that it might be too high a bar -- it's more of a strong suggestion than a requirement.
I'm happy to downgrade it to something more suggestive.
BTW, just to be clear, you're not saying it's a problem that it's a URI (possibly relative), correct?

I think the core of my issue is envisioning someone designing a HTTP API, perhaps someone who hasn't bought into REST all that much. They might naively expect something like { "type": "not_enough_money" }. Being told that they have to convert this to { "type": "https://api.example.com/error-types/not_enough_money" } could cause them to abandon this spec on first read-through as not suited for their server. If they could simply do { "type": "not_enough_money" }, that would be great. If they instead had to do { "type": "about:not_enough_money" } or something, that might also be OK. Remember that we don't need to be globally unique here---we just need to be unique per-API.
What are your thoughts on this perspective? When you talk about possibly-relative URLs, do you mean that { "type": "not_enough_money" } is fine, since technically it fits the grammar of a relative URL?

"title" is defined by the error type, and therefore static between instances of the error. "detail" is specific to a particular instance.

Sure, I got that. But when is that helpful?

I think the mapping is:

OK, this is a bit worrying. So given new TypeError("custom ID must be a string"), your mapping is:
"type": "TypeError"
"title": "Type Error"
"detail": "<...gory stack details here ...>"

So there isn't even any place for message to go?

For example, you might use it to correlate a particular instance of an error in logs, identify it in support calls, etc.

Make sense, or need more convincing?

Makes sense indeed. Error logs is a good point to bring up. Although, again, suggesting that it should be a URL seems unlikely to be something that people will be willing to do. A simple ID would be something I could envision actually implementing. Whereas, I'm definitely not going to spin up the HTML page production machinery (templating, etc.), in order to write out a new page and start serving it, in the middle of my error handler. A GUID or incrementing "problemID" seems more likely what I would program into my server.

I like the sound of that. Any preference in terms of style?

Sub-object would be my weak preference. @slightlyoff might have more opinions.

I'm very sorry for not getting this done in a more timely way. Sincerest apologies to the IETF WG in question.
In no particular order:

Reserving an extension syntax is a good idea: Having something like "-" to delimit extensions from built-in items, or defining your extension object (where anything goes) is a good idea early on. Don't really have a preference, but "-" in the name seems fine.
"instance" is odd: it doesn't define a schema for the problem definition or the information to be de-ref'd. Is this common enough to need to be part of a spec? Is their prior art justifying it?
How is the pre-defined problem-type registry going to be maintained?: It isn't clear how additions will get made. Who "owns" it?

In general, I think this is great. Love that it's happening. Is there someplace I can look to understand the discussion that led to each of the fields?

Hey Alex,
No worries. I'm going to open separate issues on my repo and link back here to make sure we don't lose anything (both for your comments and @domenic's).

Reserving an extension syntax is a good idea: Having something like "-" to delimit extensions from built-in items, or defining your extension object (where anything goes) is a good idea early on. Don't really have a preference, but "-" in the name seems fine.

I got some pushback from people on using '-' in names, as there's a preference for camelCase in many existing APIs. Given @domenic's preference above, an extension object might be better.

"instance" is odd: it doesn't define a schema for the problem definition or the information to be de-ref'd. Is this common enough to need to be part of a spec? Is their prior art justifying it?

See explanation above - does that make sense? Obviously need to improve docs if both you and @domenic didn't get this.

How is the pre-defined problem-type registry going to be maintained?: It isn't clear how additions will get made. Who "owns" it?

There isn't a registry; you just use the URI. If a common set of useful types develops, people can collect them together in informal resources (e.g. a wiki). Good enough?

In general, I think this is great. Love that it's happening. Is there someplace I can look to understand the discussion that led to each of the fields?

Hmm, it was discussed a bit on-list, and in my repo before that. See:
https://github.com/mnot/I-D/issues?q=is%3Aissue+label%3Ahttp-problem

@domenic -

OK, this is a bit worrying. So given new TypeError("custom ID must be a string"), your mapping is:
"type": "TypeError"
"title": "Type Error"
"detail": "<...gory stack details here ...>"
So there isn't even any place for message to go?

No, that would be something like
"type": "customIdType"
"title": "custom ID must be a string"
"detail": <any specifics>

or, more likely something like:
"type": "dataValidationError",
"title": "Data Validation Error",
"detail": [
    {
         "fieldName": "customID",
         "expectedType": "foo"
    }
]

Yeah, we're starting to get at the source of the issue here. Which is that, I think most programming languages don't encourage you to create an entirely new error class for each situation. Instead, you reuse a few error types (e.g. ArgumentException or TypeError or similar) in many different ways.
The larger point I'm arguing is to think about how server-side programers are meant to be using this and integrating it with their existing programming paradigms, most of which will be based around things like new TypeError("customerID field must be a string") (JavaScript) or new ArgumentException("customer ID must be a string of alphanumeric characters") (Java). If this draft were written by one of them, I think they would have likely reduced to either one or two fields (message, and maybe type).
As-is, there's a pretty big mismatch between the error model implied by this draft, and the one I think most server-side software will be using already. So the implication is that server-side programmers will not be able to start producing these problem responses right away, until they go through all of the places in their current system that produce errors, and replace those lines of code with something that produces an appropriate { "type", "title", "detail" } structure. If this is the path envisioned, that's fine---maybe someone will publish an npm package that lets you do throw new Problem({ type, title, detail }) and people will start using that instead of throw new TypeError. Or maybe the next version of Rails/Spring/etc. will define similar classes built-in to their response processing. But that's a very different adoption path than would be given by a single "message" field, and implies a lot more work on the part of both framework authors and server-side developers, which I think will limit adoption.

Sorry, got busy at IETF92.
I question whether it's good practice to just catch errors and deterministically transmute them to on-the-wire artefacts; it seems like an open invitation for security issues.
Also, the aim here is not to take over all error reporting formats -- though that would be nice. It's to avoid people defining their own formats, so they don't get trapped by the common pitfalls.

Discussed in SF; can close.

Btw, it's far from perfect but... https://www.npmjs.com/package/http-problem

It would be far more natural having a pattern such as ...
throw new Problem('http://problem_id', 'the message', {foo:'bar'});

where the serialization would be...
{
  "@type": "http://problem_id",
  "message": "the message",
  "foo": "bar"
}


Is it possible to see both CSS and html on the same screen [noobie]

Hey - Sorry I am not sure whether this is the correct place to ask this question but I am wondering if you can place your .css file and .html file on the same screen instead of having to click back and forth between the two. THANKS!
Rami
Prerequisites

[ ] Can you reproduce the problem with Debug -> Reload Without Extensions?
[ ] Did you perform a cursory search to see if your bug or enhancement is already reported?
[ ] Did you read the Troubleshooting guide?

For more information on how to write a good bug report read here
For more information on how to contribute read here
Description
[Description of the bug or feature]
Steps to Reproduce

[First Step]
[Second Step]
[and so on...]

Expected behavior: [What you expected to happen]
Actual behavior: [What actually happened]
Versions
Please include the OS and what version of the OS you're running.
Please include the version of Brackets. You can find it under Help -> About Brackets (Windows and Linux) or Brackets -> About Brackets (macOS)

Try verticle/horizontal split. You can find this icon in the files panel. (In front of word Working files)

That's exactly it! Thank you so much, Naveen.
Rami


ModelBuilder adds xsd namespace when not necessary

When using ModelBuilder to create a Model, it automatically adds namespaces from a specified set of known ones when it detects they are needed.
However, it is slightly over-zealous: it adds the xsd namespace when any literal value is added, even if that literal is just a string (in which case we don't really need the xsd namespace present).

@jeenbroekstra can me, @prince17080 and @guvi007 work on this issue?

Please, go for it!


Getting issue as below for MapObject

function signature specialization <preserving fragile attribute, Arg[1] = [Closure Propagated : reabstraction thunk helper from @callee_owned (@unowned Swift.UnsafeBufferPointer<Swift.UInt8>) -> () to @callee_owned (@unowned Swift.UnsafeBufferPointer<Swift.UInt8>) -> (@out ()), Argument Types : [@callee_owned (@unowned Swift.UnsafeBufferPointer<Swift.UInt8>) -> ()]> of generic specialization <preserving fragile attribute, ()> of Swift.StaticString.withUTF8Buffer  ((Swift.UnsafeBufferPointer<Swift.UInt8>) -> A) -> A

Without much information, this seems to be an issue regarding Moya or ObjectMapper and not actually Moya-ObjectMapper.
I suggest you file a an issue in https://github.com/Hearst-DD/ObjectMapper and/or https://github.com/Moya/Moya


unable to use esm plugins unless explicitly setting babelOptions.plugins to []

if I write a module in ESM and then add it as a babel plugin, when the module gets imported it tries to transpile it using itself as a plugin ... and then jspm crashes.
should it always be necessary to override babelOptions.plugins on the module? or should plugin-babel be changed to either a) not use any babel plugins for transpiling babel plugins, or b) maybe just ignore itself

I think it would be a little too convoluted to start adding custom exceptions here. It's a very predictable failure with a very predictable fix. If publishing a plugin, I can easily opt-out of plugins in that plugin package.json package configuration:
{
  "meta": {
    "babelOptions": {
      "plugins": []
    }
  }
}

So I think rather to note the above as part of a plugin guide.

Although I agree that plugin-babel shouldn't be modified to handle this, it should at least throw an error -- currently all that is printed is:
$ jspm build app.js

Creating the single file bundle for app.js ...

$

Sure we can definitely include a detection. This would simply be based on a check if System.normalize(pluginName) == load.name.


digital clock in python

Describe the project you want to add with tech stack
a digital clock in python.
Expected behavior
views time.
Screenshots (optional)

Additional context (optional )

@pranjay-poddar please assign me

@srinjoy-26 I want to contribute.Please assign me

I want to contribute in this for GSSOC'23 . Please assign me

This is already added


Cosmetic Improvements

[ ] Remove backticks from plot titles
[ ] Maps tooltip to include (cases, deaths) x (per thousand, total) information similar to this article

Removed backticks from plot titles.
Commit: da3bc42636b7c387f4f645b9e3052f9153ade554

May not be possible using HTML.
Allowed Tags: https://github.com/plotly/plotly.js/blob/c1ef6911da054f3b16a7abe8fb2d56019988ba14/src/components/fx/hover.js#L1596


Linux binary build broken (looks for hints at the wrong location)

(Also reported on Slack, but since no one reacted I'm saving this information here.)
Our F* binary builds started failing on Linux around 2 weeks ago (after working just fine most of the time since our last release one year ago): https://everestlogstorage.blob.core.windows.net/fstar-binaries-linux/buildlogfile_FStar-Binaries-Linux-20200608-1.txt
I can also reproduce the problem locally, both when running .scripts/process_build.sh and afterwards and until a full cleanup even when running make -C tests/micro-benchmarks in the root of the repo:
[CHECK     Steel.Semantics.Hoare.MST.fst]
/home/hritcu/Projects/fstar/pub/src/ocaml-output/fstar/ulib/experimental/Steel.Semantics.Hoare.MST.fst(1259,2-1277,29): (Error 16) Unknown assertion failed; The SMT query timed out, you might want to increase the rlimit
(Warning 333) Unable to open hints file: /home/hritcu/Projects/fstar/pub/src/ocaml-output/fstar/ulib/experimental/Steel.Semantics.Hoare.MST.fst.hints; ran without hints

make: *** [../../examples/Makefile.common:74: _cache/Steel.Semantics.Hoare.MST.fst.checked] Error 1
make: Leaving directory '/home/hritcu/Projects/fstar/pub/src/ocaml-output/fstar/tests/micro-benchmarks'

The problem seems to be caused by the hints being looked up at the wrong location:
Unable to open hints file: <fstar-dir>/src/ocaml-output/fstar/ulib/experimental/Steel.Semantics.Hoare.MST.fst.hints; ran without hints.
The actual location of this hint file is
<fstar-dir>/src/ocaml-output/fstar/ulib/.cache/Steel.Semantics.Hoare.MST.fst.hints
There are lots of such warnings in the log of binary builds now, not just for this particular file.

The binary build for Linux started working again, but the underlying problem seems still there: the log is still full of run without hints warnings (including the original one above): https://everestlogstorage.blob.core.windows.net/fstar-binaries-linux/buildlogfile_FStar-Binaries-Linux-20200706-1.html
So I suspect that what happened is that someone (@aseemr ?) made Steel.Semantics.Hoare.MST.fst work again even without hints. We also need a fix for the underlying problem though :)

The underlying cause is that, since ulib .checked files were not part of the binary packages back then, they were reverified as part of tests/ and examples/ . PR #2275  will solve this issue.


Slow Render

Hey there,
Thanks so much for making this. Having heaps of fun using it, i have a quick question about the rendering process though. When the process gets to rendering in the command line it seems to take much longer than usual.
If i use the render queue inside afyer effects it takea about 5 seconds to render with the h264 module, although it seems to take about 30seconds in nexrender. Is this normal? Its the rendering that tales time in the commandline, moving/renaming/downloading of files is quick.
Thanks!

Hello,
Thank you!)

although it seems to take about 30seconds in nexrender

Well, this might be related to actual aerender settings. You can try playing and changing some of them
https://github.com/Inlife/nexrender/wiki/Rendering-node#details
You can change amount of memory, and/or change to multithreaded rendering. These options are described on Adobe forums and pages, so try googling them.
And i guess they are exactly what you need :)
Cheers!

And also, if you are using it not from cli
(custom renderer code, you can set both of these parameters via js too)
this is how they are set up in the original render node js code:
    ...
    process.env.AE_MULTIFRAMES  = opts.multiframes  || '';
    process.env.AE_MEMORY       = opts.memory       || '';
    ...

@Inlife do you know a way to improve the expressions performance. Because I'm doing some tests, and when I add the expressions to get data from a external file it increase a lot the rendering time.
Without getting data from external file it is taking about 8 seconds. And when I add the expressions it takes about 25sec.

hm, well, you see, each expression is evaluated on every frame of the render process
this is the way how it works
my personal recommendation is to make as many validations before any heavy executions as possible
lets say some particular line of code will be required to run only after > 3240th frame of the video, this can be checked before doing something inside
js was always known for its slow computation speed regarding to numbers (comparing to native, compiled stuff)
also, i don't know for sure, but seems like adobe is opening file each frame for every expression
if this is the case, this is not a very good idea to write that much of the code
actually now, you've got me thinking about, maybe we somehow need to put actuall js code inside expression, not just a filepath, however this brings us to some inconveniences while in template-designing mode

I assume this is what is happening with me too since when rendered in after
effects the expressions are already loaded as the render time is almost
30seconds longer when ran through nexrender.
On Wed, 19 Apr 2017 at 09:47, Vladislav Gritsenko<EMAIL_ADDRESS>wrote:

hm, well, you see, each expression is evaluated on every frame of the
render process
this is the way how it works
my personal recommendation is to make as many validations before any heavy
executions as possible
lets say some particular line of code will be required to run only after >
3240th frame of the video, this can be checked before doing something inside
js was always known for its slow computation speed regarding to numbers
(comparing to native, compiled stuff)
also, i don't know for sure, but seems like adobe is opening file each
frame for every expression
if this is the case, this is not a very good idea to write that much of
the code
actually now, you've got me thinking about, maybe we somehow need to put
actuall js code inside expression, not just a filepath, however this brings
us to some inconveniences while in template-designing mode
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Inlife/nexrender/issues/33#issuecomment-295169196,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALSnybJ2sICokL-9zKmT8hitVDpO6QRrks5rxcoygaJpZM4NArQu
.

@wst-shorty hm, i think this "loading" behavior same for both modes. I dont think that after effects acts any way different from aerender binary, which it has been using before.
Maybe they've changed it with Media Encoder, don't know about that.
However considering js nature, and the fact thats theoretically its run-time execution, they should  load file each time exactly the way how it was shown.
So i think, your performance stuff is actually related to the settings, because AE for sure uses some settings from your AE preferences panel, while nexrender can't know about them. So i suggest you to try changing those settings via nexrender, and measure the results :)

@wst-shorty are cleaning the Disk and Memory cache in After Effects before rendering? Maybe AE is caching the expressions and making it faster. And it doesn't happen in aerender.

@Inlife yes, exactly! the AE execute the expression every frame. I'm trying to find a way to execute just 1 frame. But the only way I've found until now is converting the layers that are using expressions to a sub composition, and freezing the frame. But it is not practical when you have several expressions.

well, also if i understand correctly we cannot use memory (global vars) inside js expression, because its creating a "vm" for each expression and its state-less
especially, considering this quote from adobe's site:

Note: You must define each function fully within each expression in which it is used. There is no global library of functions that you can add to.

and i'm pretty sure that we cannot change values of expressions in project runtime (via project rewriting while its rendering) (NEEDS TESTING)
and we don't have any chance of connecting the ae scope to any our remote storage/scope in the nexrender
next paragraph is pure theoretical imagination:
seems like only way, of doing that, is somehow figuring out all the calculations in beforehand once, and just storing them inside project
(creating giant arrays of data for each frame for every expression)
yeah, it will take tonns of space, especially for projects >1 hour long :D
however we don't know about data inside AE which is calculated on runtime

Just trying to change these settings to run some test. I am having trouble adding the memory settings. Can i add the below to the start.js file? or would it go somewhere else?
    process.env.AE_MULTIFRAMES  = opts.multiframes  || '';
    process.env.AE_MEMORY       = opts.memory       || '';

try moving it to the top of the file, and setting proper values
like this:
process.env.AE_MULTIFRAMES = true;
process.env.AE_MEMORY = '50 25';

var nexrender = require('nexrender');
...

to understand what these options are doing you can look at the description of aerender binary parameters
https://helpx.adobe.com/after-effects/using/automated-rendering-network-rendering.html
(-mp and –mem_usage image_cache_percent max_mem_percent)

Thanks Mate. So i have got it to run normally with aerender with the different file settings this is the output given. It takes about 28 seconds to do a 13 second clip. Do you think this is due to it checking against an expression on every frame? (as mentioned above)

Another way that I'm thinking to do it, is to input the variables in the After Effects file, by the same way the nexrender change the path of the model file.
It works! But I'm having some problems to deal with the special characters.
The expressions to get the data from an external file clearly increase a lot the rendering time.

@jcmidia

Another way that I'm thinking to do it, is to input the variables in the After Effects file, by the same way the nexrender change the path of the model file.

its a great idea! It will be nice if you can show me as soon as you'll have working example. Maybe we can implement such technique inside nexrender
@kick-push yea, file operations are known for their slowness, and also js interpretation takes some time too
i remember rendering for 18-20 straight hours only 1 hour videos (well it was 60fps, but still) :D

@Inlife I'm doing by this way, but I think the best way to do it is by Regular Expressions.
for (let expr of expressions) {
                // extract hex from xml tag and decode it
                let hex = expr.split('"')[1];
                let dec = new Buffer(hex, 'hex').toString('utf8');

                var newStr = dec.split("|");

                if(newStr.length>1){
                    var command = "model."+newStr[1];
                    var newValue = String( eval( command ) );
                    let enc = new Buffer( dec.replace("|"+newStr[1]+"|", newValue) ).toString('hex');
                    data = data.replace( hex, enc );
                }
            }

So, inside the After Effects file, I'm writing the expressions like |foo.bar|
And after execute the eval command, it is going to look for the prop foo.bar in the model object, and replace the variable in the expression by its value as a String.
var model = {     foo:{         bar: "teste"     } }

@jcmidia Hey Julio, I was wondering if I could grab a copy of your files.  I am trying speed up my process but haven't been able to, would love to check out a working copy of yours if possible!
Thanks

@jcmidia Do you have a base project with this working? I am trying to achieve the same as above.

@kick-push @wst-shorty sorry, I was traveling and didn't see the messages. Actually I'm not using the nexrender and the project is for a company that doesn't allow me to share the code.
But the code above can be replaced in the file in: node_modules/nexrender/renderer/tasks/patch.js
Maybe you can use the project variable to send the model, so you can replace the code var command = "model."+newStr[1]; for something like var command = "project.model."+newStr[1];

Hi all
I did some tests with the new features on After Effects 2018. Now we can use a json file as a asset, and it seems that it doesn't make the render slow like the evalFile expression does. I'm not using Nexrender on my Data Driven projects, but I guess that you guys can use a json as a placeholder with nexrender, and it should work fine.
https://helpx.adobe.com/after-effects/using/data-driven-animations.html

new approach of using after effects scripting engine has been added in latest pre-release version, closing the issue

Thanks Mate. So i have got it to run normally with aerender with the different file settings this is the output given. It takes about 28 seconds to do a 13 second clip. Do you think this is due to it checking against an expression on every frame? (as mentioned above)

Hi, Can u send me the sample project and NodeJS code that u used for rendering in such a quick time. It would be a big help for me. Thanks


ERROR [PaperSpigot 1.15.2] Can anyone help me with this?

https://pastebin.com/nuDfg03q
my console is spamming this error

Please update your config, especially Hypoxia section. Here's all you need - config.yml.


Feature/customer orders test

DBT Build Status 📖success
Pushed by: @abhr1994, Action: pull_request

DBT Build Status 📖failure
Pushed by: @abhr1994, Action: pull_request


Update

Coverage increased (+5.4%) to 84.242% when pulling 75bd6ede8d9325522b3e7f2c3f4c07661fc79b4e on newmerge into a5da1b2e0f2ab854c01d7c3c70f692b6ac4beeaa on master.


Move part referencing to element head matter

This doesn't need to be on the library template
Also could make a comment block that is replaced instead of searching for top of class definition

Nm. Move it all intro package Jon block bc that's even easier

fixed, drastically simplifies the structure of the templates and reduces the output size


spin-locking

I'd like to raise a concern about spin-locking in atomic_queue implementation. I read README section about this, but I'm still not convinced. Let me describe an issue I saw:
An NDA platform with a non-fair OS scheduler that runs on millions of consumer devices. We had a spin-lock that was using _mm_pause/__yield instructions, same as atomic_queue. Which resulted in a low but statistically signficant number of deadlocks on only that platform. All cores were occupied by spinning threads, while the thread that was supposed to unlock them was never re-scheduled. The culprit here is a non-fair scheduler. It was giving a CPU core to a thread until it got blocked (e.g. on a mutex) or a higher-priority thread got ready for execution.
The fix was to add std::this_thread::yield() (not exactly but doing the same) into spin-locking. This solved the problem because while it wasn't communicating to the OS which thread it waits for, it was freeing a CPU core, and that was enough to eventually schedule the unlocking thread.
Now, std::this_thread::yield() is order of magnitudes slower than _mm_pause, at least on multiple platforms where I had a chance to benchmark it. A typical solution is to use a hybrid approach: spin on _mm_pause/__yield for a while (hundreds of times) for low-latency response and only then switch to spinning on std::this_thread::yield() as the last resort. This way it doesn't matter how slow it is.
To be clear, I don't think it's a reliable solution. I suspect it can be still vulnerable to the priority inversion problem, though I don't have data to back this claim. To avoid priority inversion, a proper blocking is required. So the most versatile solution I can think of would be:

spin on _mm_pause for N iterations;
spin on std::this_thread::yield() for another M iterations;
block the thread, e.g. by std::atomic<T>::wait(). right, I remember this library is C++14, so it would be rather std::mutex.
The cost is that unlocking thread would need to check every time if there's a waiting thread that needs to be notified (a relaxed load), and 8 bytes of memory. The implementation would be a bit convoluted though. So, from practical point of view, I'd go with just adding std::this_thread::yield() to the spinning. it's simple enough, costs nothing and solves a real problem in many real cases.

We had a spin-lock ... All cores were occupied by spinning threads, while the thread that was supposed to unlock them was never re-scheduled.

atomic_queue has a spin-lock per each queue element, which is shared between one producer thread and one consumer thread of that element only. Which differs from your scenario of all threads locking one same spinlock, is seems.

The culprit here is a non-fair scheduler. It was giving a CPU core to a thread until it got blocked (e.g. on a mutex) or a higher-priority thread got ready for execution.

That sounds similar Linux real-time FIFO thread scheduling.
Linux does real-time thread throttling to prevent exactly this problem of real-time FIFO threads never descheduling themselves off the CPUs and, in the worst case, hogging all CPUs and preventing all other threads/processes from making any progress.

The fix was to add std::this_thread::yield() (not exactly but doing the same) into spin-locking.

The root cause of the deadlocks you encountered is the indefinite suspension of the thread holding the spinlock by a higher-priority real-time FIFO thread which ends up busy-waiting on the spinlock and never deschedule off the CPU, aka priority inversion, if I understand you correctly.
Calling std::this_thread::yield() doesn't fix the priority inversion problem, the problem still persists. Rather it performs a corrective action after priority inversion wasted enough CPU cycles blocking forward progress of at least 2 threads so much, so that it became apparent that something has to be done. You may like to peruse that Linux kernel thread about sched_yield not being the right solution for such problems, which the README defers to.
Coping with priority inversion is outside the scope of lockless algorithms, which only guarantee forward progress of all or some other threads modifying the same queue object when one thread was suspended in the middle of the queue modification operation.
Fair scheduling without priority inversion / indefinite thread suspension is a prerequisite for atomic_queue.
IMO, the right fix for your deadlocks can be either of:

Eliminate priority inversion by using the same fixed scheduling priority for all threads modifying the queue.
Use platform-specific synchronization primitives designed to cope and not deadlock when priority inversion is in effect.
Use a wait-free queue with forward progress guarantees for all other threads when one thread was suspended in the middle of the queue modification operation.
Use OS-specific features to avoid thread interruption and suspension while inside critical sections in user-space. Solaris did that.


ADD Black Jack game extension

Features :
Realistic Casino Environment: Enjoy a visually appealing interface that replicates the look and feel of a real casino.
Smooth Gameplay: Intuitive controls and seamless animations ensure an enjoyable gaming experience.
Single-Player Mode: Play against a computer dealer with varying levels of difficulty.
Tutorial and Tips: Comprehensive tutorials and strategic tips for beginners and advanced players.
Customizable Rules: Adjust game rules such as the number of decks, dealer hit/stand rules, and payout ratios.
Realistic Sound Effects: High-quality sound effects that enhance the immersion, including shuffling cards and dealer announcements.
Achievements and Leaderboards: Track your progress, earn achievements, and compete on global leaderboards.

Already exists. Closing this #1483


feat: improve response (code) guidance (#787, #762, #737)

This pull request was starting from the still open issue #685 (originally addressed by #737) and the latest work done in #787  trying to grab the open ends and missed links to add more guidance on the correct usage of Location header in POST responses. While doing so I was also doing the review on #762, I was lacking behind.
Changes to chapters/http-requests.adoc:

Apply standard formatting rules for asciidoc/markdown and fixes spelling and grammar issues (all major changes are marked with comments and exposed in this list).
Adds 202 as expected response codes on PUT and PATCH operations, since they may also support asynchronous processing.
Adds better advise on how to design POST responses utilizing the Location header.

Changes to chapters/http-status-codes-and-errors.adoc:

Apply standard formatting rules for asciidoc/markdown and fixes spelling and grammar issues (all major changes are exposed in this list and can be easily spotted in the change set).
Improved exception when to document response codes explicitly.
Added advise when 200 response code marks the return of an already existing resource on resource creation.
FIx reference to rule 251 and added it to each effected 3xx response code. Before it incorrectly referenced rule 250 and was added to the chapter of 3xxresponse codes.
Added additional use-advise to response codes 406, 412, 415, 428, 500, and 503 to highlight response codes that have use case defined within the guideline.
Improved advise for response code 423, 500, 501, and 503 giving details on use cases.
Added advise for response codes 424, 431, 502, 504, 505, 507, and 511 to complete the list of response codes defined by the three incorporated and referenced RFCs 9110, 6585, and 4918.

Definitely fixes #685.

👍

👍


Upgrade bs-platform to 5.0.4

All tests pass with 5.0.4, just as they did with 4.0.18. I'm just starting out with BS and I can't quite tell what's going on with the bs-platform versioning, so I'm not sure if this should accept ^4.0.18 || ^5.0.4 or something like that? I also have trivial PRs queued up for this same change on bs-json and bs-fetch, if you want them.

Coverage remained the same at 97.978% when pulling 80e9881d46596c1bc43219dfc753ddddd7e8a2f6 on jmuhlich:bs-platform-5 into ad64578e005358382e4aa7957f0679e3293b2850 on glennsl:master.

Wait, why is this important? It's just a dev dependency, so not something that really matters to end users.

I think a good way to test against older versions is with a matrix setup in the Travis config, something like this:
before_script:
  - 'if [ "$BS_VERSION" ]; then npm install bs-platform@$BS_VERSION; fi'

env:
  - BS_VERSION=4.0.18
  - BS_VERSION=5.0.4

Thanks for the suggestion. I prefer to do it during the release process, which is basically automatic, but it's not very important.
My question remains though, what problem does this and the other PRs really solve, since devDependencies don't affect consumers?

bs-platform is a peer dependency for bs-json and bs-fetch -- that does affect consumers, right? I was seeing npm ERR! invalid<EMAIL_ADDRESS>or npm ERR! peer dep missing<EMAIL_ADDRESS>from npm ls on these packages and I thought upgrading the dependencies was the right thing to do. Apologies if this was the wrong approach, I'm new at contributing to NPM modules.

Yeah, that was my next question, whether peerDependencies is more lenient, but sounds like it's not and that does affect consumers. I was just confused because there's no peer dependency on this. But no biggie.
The proper way to do peerDependencies then would be to have something like ^4.0.2 || ^5.0.4 or however it's supposed to be. But that sounds like too much work to maintain, so I think it's fine to just have 5.0.4 and then do it properly only if someone complains. Yeah, that sounds professional :smile:
I'll merge your other PRs as is then. Thanks!


b-field misalign w/ addon & grouped

Overview of the problem
Buefy version: [0.4.5]
Vuejs version: [2.3.3]
OS/Browser: Chrome latest
Description
The newline formatting for the label isn't honored when trying to add additional elements between the  tag/component
Expected behavior
I would expect that the addon for the input field would not change the render order of the label
Actual behavior
The controls stay in-line with the label

@byronferguson i don't understand very well (it's my fault). But addons and grouped prop (style) aim to attach and to group controls together.

This is the layout without adding an addon
without addon

This is the layout with adding an addon
with addon

                    <button class="button">

                    </button>

I hope that provides a little more clarity to my original post.

@byronferguson Did you try to include a b-field into other b-field (inner b-field without label prop) ?
For example:

                    <button class="button">

                    </button>

nesting it worked. Thank you.