Remove ln_gateway

TODO

Update flake.nix and anywhere else where ln_gateway stuff is now wrong.

Buils on https://github.com/fedimint/fedimint/pull/1717

Codecov Report
Base: 63.78% // Head: 63.98% // Increases project coverage by +0.20% :tada:

Coverage data is based on head (1361b9c) compared to base (72b6e03).
Patch coverage: 46.96% of modified lines in pull request are covered.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1718      +/-   ##
==========================================
+ Coverage   63.78%   63.98%   +0.20%
==========================================
  Files         132      130       -2
  Lines       24372    24219     -153
==========================================
- Hits        15545    15497      -48
+ Misses       8827     8722     -105

Impacted Files
Coverage Δ

gateway/cli/src/main.rs
0.62% <ø> (ø)

gateway/gateway/src/bin/cln_extension.rs
0.26% <0.00%> (ø)

gateway/gateway/src/bin/gatewayd.rs
1.51% <ø> (ø)

gateway/gateway/src/client.rs
30.00% <ø> (ø)

gateway/gateway/src/cln.rs
0.00% <ø> (ø)

gateway/gateway/src/config.rs
0.00% <ø> (ø)

gateway/gateway/src/gateway.rs
66.66% <ø> (ø)

gateway/gateway/src/ln.rs
0.00% <ø> (ø)

gateway/gateway/src/lnrpc_client.rs
1.78% <ø> (ø)

gateway/gateway/src/rpc/mod.rs
80.55% <ø> (ø)

... and 20 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

ok that's small

might not be directly related here but running just test-real fails because my limit for open files is too small. I saw your just check-ulimit  @dpc but my limit was already set to 1024. setting it to 2048 works; perhaps we want to adjust it if we see it multiple times.
also after tests I have a process running: gateway-cln-ext that is not killed.
relevant output:
$ ss -tlpn
LISTEN               0                    128                                             <IP_ADDRESS>:8177                                     <IP_ADDRESS>:*                   users:(("gateway-cln-ext",pid=837280,fd=9))

I'm not exactly sure where this is coming from. do we set the program name in rust? I can't find a file named gateway-cln-ext
 (pr/1718 %) | fd -HI gateway-cln
target/debug/.fingerprint/ln-gateway-7297e04178f8dea5/bin-gateway-cln-extension
target/debug/.fingerprint/ln-gateway-7297e04178f8dea5/bin-gateway-cln-extension.json
target/debug/.fingerprint/ln-gateway-854dd9a992bd47f8/test-bin-gateway-cln-extension
target/debug/.fingerprint/ln-gateway-854dd9a992bd47f8/test-bin-gateway-cln-extension.json
target/debug/.fingerprint/ln-gateway-b02b706c0674c161/bin-gateway-cln-extension
target/debug/.fingerprint/ln-gateway-b02b706c0674c161/bin-gateway-cln-extension.json
target/debug/.fingerprint/ln-gateway-b02b706c0674c161/dep-bin-gateway-cln-extension
target/debug/gateway-cln-extension
target/debug/gateway-cln-extension.d

CI failing here https://github.com/fedimint/fedimint/actions/runs/4257087817/jobs/7410793182#step:10:874
Can't reproduce locally


Prevent application submissions from the public site if the listing isn't using the common app

Currently via url manipulation an applicant on the public site can access a listing's common application flow even if the listing has that turned off.
We want to prevent this in 2 ways:

on the public site if an applicant ends up in the common app flow but the listing has the common app flow turned off the applicant should be sent back to the listing detail page
maybe with a message that the listing is not using the common app flow

on the api if a public application submission comes through but the listing is not using the common app the api should throw an error to prevent the attempted submission from progressing

Fix in both core and Doorway
Might be slightly different solutions but should do both
Can also handle MA through Core toggle


Store parameters of startLocalCluster.sh

This should help you to bring the cluster up again when you
continue to work after some time without investigating the
port numbers.

Looks good to me. However, the options are not reused when a restart happens. So it does not really help other than the user being able to look at the options. Should we not, at least when startLocalCluster.sh is called without arguments and a cluster-init is present, try to salvage the options from cluster-init/startup-options and restart the cluster in the right way?

Yes that would be even better. I looked at it and the block that restores the cluster directory would need to be moved to the very beginning of the script. And there would be probably some other changes to the logic. That is why I began with a minimal change. I think an other addition would be that stopLocalCluster  uses the stored arguments so that it does not require arguments anymore.

Right. You probably mean shutdownLocalCluster.sh, but yes.


Module 2 exercises [Silas Achidago]

Please "drag & drop" exercise 1 pdf file below.
THLD Road Network Density Map-SILAS ACHIDAGO.pdf

Please "drag & drop" exercise 2 pdf file below.
THLD Health Accessibility Map-SILAS ACHIDAGO.pdf

Please "drag & drop" exercise 3 pdf file below.
THLD IDU Proxity to Educational Faciities MAP-SILAS ACHIDAGO.pdf

Please "drag & drop" exercise 4 pdf file below.
THLD Soil pH Suitability Index Map-SILAS ACHIDAGO.pdf

Please UPDATE THE TITLE of this "Issue" in the title bar above with your name.

If you haven't done so, please go back to Module 2 and make sure to take
the post-training survey. Participating in surveys is required for receiving
the "GALUP Certificate" by the University of Florida.

Well done, Silas. You clearly grasped the material outlined in Module 2 and successfully applied it to these exercises. Thank you for your participation!


Hardware Auto-Detection

Where possible, hardware device strings should be automatically generated based on what is connected to the computer at the time of configuration. It must always be possible to specify something that is not currently connected, but this would make it easier to handle initial configuration.

Since NI hardware hasn't worked on the most recent few OSX releases and they never bothered to produce a 64 bit Mac library, I'm going to have to drop Mac support for that hardware since the old build system is dead and there's no budget to fix that. On the Windows side, other hardware is generally recommended for new installations so there's little point in further work on this issue.


Fix test failure when port 20000 is occupied

Check that the allocated port is in the correct range, not that it is
specifically port 20000.

Remove one test that is just not possible to do safely.

@mattnworb @davidxia

:+1:

lgtm

Current coverage is 45.84%

Merging #819 into master will increase coverage by +0.10% as of ed59cb3

@@            master    #819   diff @@
======================================
  Files          262     262
  Stmts        11026   11026
  Branches      1532    1532
  Methods          0       0
======================================
+ Hit           5044    5055    +11
+ Partial        438     437     -1
+ Missed        5544    5534    -10

Review entire Coverage Diff as of ed59cb3

Powered by Codecov. Updated on successful CI builds.


Put all Error enums in their own file

consistency and easier to find

Closed by https://github.com/iotaledger/iota-sdk/pull/2125


Readme OSM Contributing back

Some small section on OSM editing and a slightly addon to the OSM legal terms.

Thanks @Matthias84!  This looks really good.


Different review forms for staff and reviewers

Description
There is currently one review form associated with one proposal. We need separate review forms, one for staff reviewers and another for external reviewers.

Internal Approval Process

[ ] @OpenTechFund/design to add designs to issue
[ ] @OpenTechFund/devs to review designs for implementation
[ ] Di to help organise testing/feedback session with OTF users
[ ] @OpenTechFund/design do testing/feedback session with OTF users
[ ] OTF to sign-off
[ ] @OpenTechFund/design to make sure most up to date designs designs are attached to issue

@fourthletter Right now, are the Community prototype fund, Community Lab, IFF review forms the same or different? i.e. do they ask the same questions?

@ei8fdb We plan to have different proposal questions for digital sec, research, CPF, CL, and IFF. These different proposal question may necessitate different review form questions.

Understood! 👍
A few thoughts on how to handle this:
Use 1 review form, with sections for each category

the questions that apply to all categories are displayed by default
have a section for each category
reviewers "ignore" the sections that don't apply to the application

Create separate review forms for each category
My suggestion is to wait until after the next time the fund opens to see if the review form needs to be changed/adapted.
(Side thought - should this be a discussion?)

I agree with your suggested next steps. This issue could be divided into two different issues within github.
1st issue: UX/Design for 1 review form, with sections for each category - Sim Sec?
2nd issue: Create separate review forms for each category - will #2277 & #2276 impact the design and code for review forms?

This issue will become moot if we can complete #1961

@frjo I'm lifting up this issue again. We created a unique AC review form that is more specific and better align with External Reviewers' expertise. It would be helpful if AC receive their own review forms rather than completing Team/Staff review forms.

carried over from https://github.com/HyphaApp/hypha/discussions/2277#discussion-3250469
Applicants can then be invited to do a proposal in any of the existing funds
This would be used for OTFs "one button" workflow.
This discussion was created after a call about possible future complexity in Wagtail/Hypha with the move from funds to categories.
Issue
The issue seems to be that Wagtail and Hypha was built on the idea of having FUNDS and ROUNDS. Now that the multiple funds are being replaced by 1 FUND and multiple CATEGORIES, this could cause complexity in Hyph if others are using FUNDS and ROUNDS instead of 1 FUND and multiple CATEGORIES.
Proposal
If we had conditional logic working in Wagtail forms, this would mean OTF can use 1 fund and multiple categories model while keeping within the fund and round model. See below:

From standup 2022-05-17:

On Wagtail Admin Fund form rename "Review forms" to "Internal Review forms".
Add section to set "External review forms". Not required. If not set use forms from "Internal Review forms".
"External review forms" are only relevant to some workflows but no harm if they are set in any case so we can ignore that for now.

I'm currently not able to edit external review forms
Here is the Fund on test: https://test-apply.hypha.app/admin/pages/933/edit/?next=/admin/funds/round/%3Fform-state%3Dopen%26o%3D-3

@di You are on a Round, you need to go to the Fund and add a external review form first.

Thank you all! This works. 💥


bind() and unbind() have been deprecated

https://jquery.com/upgrade-guide/3.0/#deprecated-bind-and-delegate
Officially deprecated in jQuery 3.0, but use of these functions have been discouraged since 1.7

Really sorry this never made it in. Closing all the PRs—this plugin is now deprecated:  https://github.com/filamentgroup/fixed-sticky#-this-plugin-is-deprecated-


Investigate cleanup of Swift tasks

Identify and apply simplifying refactors to the roles/rpc_maas/tasks/swift.yml tasks since #169 ensures none of these tasks run if there is no swift services enabled.

need to backport #169 to kilo as well (and #152)

Be warned: the 'fix swift-recon.py' commit fixes https://github.com/rcbops/rpc-maas/issues/170, not this issue.
This was a consequence of pulling in the rpc-maas git history.

I don't believe this is required anymore? @stevelle if incorrect please feel free to re-open perhaps I am misinterpreting the issue.


Add tests for fs.promises utimes function

Perform the existing tests for the utimes function but with fs.promises.utimes() to ensure that the integration of promises in filer works as expected.
In addition, check that fs.promises.utimes() returns a promise as expected.
Can I work on this issue?

Hey @biskit1 - how are you doing on this?

Thanks for checking in @SeanPrashad; should have this ready for review by end of day.

https://github.com/filerjs/filer/blob/e3a1187ef94d5fc627768cee13457417e7ea0035/tests/spec/fs.utimes.spec.js#L86
Is it a mistake that futimes is called instead of utimes @humphd? There are no tests for futimes version of the function.

@biskit1 The tests for the file descriptor versions of each function (fstat, futimes, etc) live with the non-descriptor versions. That particular test is making sure that passing a bad descriptor to futimes has the correct behavior. The test only makes sense for futimes since utimes doesn't accept a descriptor.

Thanks @modeswitch, that makes sense. Should have spent more time tracking the calls. That would also probably explain why my test is failing (https://github.com/filerjs/filer/pull/540/files#r221447167- except I still don't get why it was passing when I did not have the return there- if you see this and have an answer before I come up with one, please share 😏).


Line height is incorrect when using mutiple attributed strings in a custom table cell

Hello,
Whenever I use multiple attributed strings (in order to use different fonts / sizes) as the text source in a custom table cell, the height is calculated wrong:

Any thoughts?
Thanks!

Hmm, could you give an example string that causes the issue, along with your expected result?
I'm assuming that in your screenshot the text should be vertically centered in the bar below the navigation bar?

Thanks for your response.   I expected the label to size to the text (as it does with a static / attributed string).  However, it would be great if it would just center in the bar - because I actually want some padding on the label.  So adding a padding option would be a great enhancement.  However, if that is complex then just making the current label center vertically would be a good fix to this problem.
Here is the code:
cell.BreakingNewsLabel.type = .Continuous
cell.BreakingNewsLabel.animationCurve = .Linear
cell.BreakingNewsLabel.animationDelay = 0.0
cell.BreakingNewsLabel.scrollDuration = 20.0
let fontAwesomeArrowString = NSMutableAttributedString(string: " " + String.fontAwesomeIconWithName(.ChevronCircleRight), attributes: [NSFontAttributeName: UIFont.fontAwesomeOfSize(20)])
let breakingNewsString = NSMutableAttributedString(string: " BREAKING NEWS: ", attributes: [NSFontAttributeName : UIFont(name: "Roboto-Medium", size: 20.0)!])
let newsExcerpt = NSString(string: CurrentOptions.getBreaking_news_excerpt()).stringByDecodingHTMLEntities()
let newsContentString = NSMutableAttributedString(string: CurrentOptions.getBreaking_news_title() + " - " + newsExcerpt, attributes: [NSFontAttributeName : UIFont(name: "Roboto-Light", size: 20.0)!])
cell.BreakingNewsLabel.backgroundColor = Constants.colorWithHexString("EA443B")
var displayString = NSMutableAttributedString()
displayString.appendAttributedString(fontAwesomeArrowString)
displayString.appendAttributedString(breakingNewsString)
displayString.appendAttributedString(newsContentString)
cell.BreakingNewsLabel.attributedText = displayString
Here is the result of a println on the display string:
{
NSFont = "<UICTFont: 0x7db06fd0> font-family: "FontAwesome"; font-weight: normal; font-style: normal; font-size: 20.00pt";
} BREAKING NEWS: {
NSFont = "<UICTFont: 0x7df4e340> font-family: "Roboto-Medium"; font-weight: normal; font-style: normal; font-size: 20.00pt";
}Here is my override title - We will keep updating the story with more information as it becomes available.
{
NSFont = "<UICTFont: 0x7db0ad60> font-family: "Roboto-Light"; font-weight: normal; font-style: normal; font-size: 20.00pt";
}

After review, I have determined that using a trim char set on the whitespace and newlinechacarter set removes the issue.  So this wasn't an issue with the class itself but the string being passed in.

Ah, those kind of bugs are the worst - thanks for the follow up!


Updated index.js for issue#13

This change helped me. If it helps others please update it.

As stated at https://github.com/xanf/vuex-shared-mutations/issues/13#issuecomment-445456842 and https://github.com/xanf/vuex-shared-mutations/issues/13#issuecomment-448853840 this just worsens the issue

Sorry, I'm finishing alternate solution, ETA couple days


Fix event cleanup

Codecov Report
Patch coverage: 100.00% and project coverage change: -0.02% :warning:

Comparison is base (ece981e) 94.92% compared to head (a8242fd) 94.90%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@            Coverage Diff             @@
##           master      #31      +/-   ##
==========================================
- Coverage   94.92%   94.90%   -0.02%
==========================================
  Files          12       12
  Lines         709      707       -2
==========================================
- Hits          673      671       -2
  Misses         36       36

Files Changed
Coverage Δ

src/network_event/client_event.rs
96.70% <100.00%> (-0.04%)
:arrow_down:

src/network_event/server_event.rs
97.41% <100.00%> (-0.03%)
:arrow_down:

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Allow "uvx python" to execute Python like "uv run python"

Right now, if you run uvx python, it can fail. Even uvx -p 3.11 python will fail to start a Python shell on Windows or Ubuntu because the command doesn't map to a python executable.
However, uv run python works, no matter where you execute it.
It's counter-intuitive, one would expect you can run the installed you installed with uv from uvx.
What's more, it would be a useful feature to be able to do uvx -p 3.12 --with pendulum python to test how this lib works in python 3.12 quickly.
Right now, one has to do  uvx -p 3.12 --with pendulum ipython which is fine if you are familiar with the Python ecosystem and uv limitations, but probably not for beginners, for whom uv is the biggest boon.

Are you in need of such a function
uvx -p 3.12 --from pendulum python

https://docs.astral.sh/uv/guides/tools/#commands-with-different-package-names

Let's close it as a duplicate


Where does the /etc/sway/config file come from?

Sorry if it's a dumb question, but where does the /etc/sway/config file come from that's floating around in my /etc/sway/ folder? It contains, for example, the line set $term alacritty which is definitely obsolete.
Got my attention due to this forum post

it is part of the official distribution package of sway, that for most parts just extracts the official release, that build it from this template. But is is not loaded in our default entrypoint (~/.config/sway/config).
Feel free to open, if you have further questions.


Should dragging same data field to both width and height drop zones in same visualization use same scale?

Steps

select jobs  as source
drag year to height drop zone (the user’s correction)
drag year to width drop zone (the user’s correction)

Two axes will be created using same scale Y both of them are named Y Axis.

I think the X one should be named X Axis and use another new scale called X.

We defer dropzone decisions to Vega-Lite now :)


Allow text transform with function

allow transformTags to return a function for transforming text

Pull Request that you can specify a function for transforming/processing innerText:
 clean = sanitizeHtml(dirty, {
   transformTags: {
     'style': function(tagName, attribs) {
         return {
             tagName: tagName,
             attribs: attribs,
             text: function(text){
 			    return myCssTransform(text);
 			}
         };
     }
  }
 +});

that's what I need

Is this one an altenative ?
   transformTags: {
     'style': function(tagName, attribs, text) {
         return {
             tagName: tagName,
             attribs: attribs,
             text: myCssTransform(text)

         };
     }
  }
});

I'd like to see the latter suggestion by @hoanguyen311 }. Specifically I'm looking to use it to transform:

Foo
 into
Foo
 with something like this:
transformTags: {
     'h2': function(tagName, attribs, text) {
         return {
             tagName: tagName,
             attribs: { id: slugify(text) },
             text: text
         };
     }
}

Probably makes more sense in something like trumpet

what's up with this one? That'd be hella handy :)

The proposed syntax by @hoanguyen311 makes more sense to me, unless it would be difficult to implement — what do you think @bonkzwonil?
Also please follow the coding style when submitting PRs, two spaces, no tabs, and add unit tests.

At this point it could be merged into the 2.x version (v2 branch) instead.

Bump

@graingert It's been unchanged for years now, so I don't think a bump comment is helpful. You may need to pick this up to close out if you'd like to see it completed.

@abea the bot asked me to bump it so I did.


validate

Are you submitting a bug report or a feature request?

What is the current behavior?

What is the expected behavior?
Sandbox Link

What's your environment?

Other information

Please fill in the blanks


etc/gandalf.conf: Add vim modeline set yaml

Closing this one, the same as tsuru/tsuru#1076.
Thank you!


Adds BaseServiceView

This view can be incorporated into almost every microservice app, and will simplify the code needed in each of these. Only requires a get_service_response method, which needs to return a string or a tuple.

@helrond I'm unsure how to resolve the conflicts on this--should the conflicting arrays be merged into one array? (E.g., install_requires=['djangorestframework'] + install_requires=['bagit'] = install_requires=['djangorestframework', 'bagit']?)

@bonniegee the arrays should be merged, so install_requires=['djangorestframework', 'bagit']


graph breaks after x epochs

The following graph looked good at the beginning but reshaped after some time.

haha modern art
graph is broken since parallel locales were implemented.. I will fix it

fixed;


text.archive related issues

text.archive Unpacking out of the JSON format is wrong, is this a game engine problem?
https://cdn.discordapp.com/attachments/456737824725794827/787037632890011648/unknown.png

I'm not familiar with these formats but I just played around with it myself as well and it seems like these json files are actually compressed/archived somewhat.
If you run something like "./CP77Tools.exe cr2w -a -p <path_to_file.json>" it will (sometimes at least, sometimes it crashes) dump some extra json metadata. I'm not entirely sure how this works though, I'm trying to extract the localization files in readable text format but I can't get to the actual data.
Hopefully @rfuzzo is able to chime in with more knowledge on this.


Deleted parameter register-cmake-module

@hikinggrass I deleted the register-cmake-module parameter here. Two questions before I create a PR:

Do we need info about the implicit registration of edm-registration in the docu? Is that somehow relevant during the development process?
The --update parameter seems also to be deleted from edm. I would delete the section about updating here also. Is the --git-pull parameter a 1:1 replacement for --update?

@hikinggrass I deleted the register-cmake-module parameter here. Two questions before I create a PR:
1. Do we need info about the implicit registration of edm-registration in the docu? Is that somehow relevant during the development process?

Not anymore, the parameter has been removed because the whole process works differently now using everest-cmake and needs no manual intervention from the user

2. The --update parameter seems also to be deleted from edm. I would delete the section about updating here also. Is the --git-pull parameter a 1:1 replacement for --update?

More or less, for pulling the repos you can use the --git-pull parameter, for updating to a new release you could also just use edm init  again


typed hook callbacks

Hello,
version: 2.0.0-next.12
callback parameters are not more typed ? (data,variables)
const { mutateAsync: updateAppearance } =
   apiClient.page.updatePage.useMutation({
      onSuccess(data, variables, context) {
    },
});

This  works
updateAppearance({},{
    onSuccess(data, variables, context) {
    },
  });

@lkarcol, thank you for the question. <service>.<operatiom>.useMutation(...) hook requires a first argument to be a predefined parameter, or undefined.
In your case, you could use:
const { mutateAsync: updateAppearance } =
   apiClient.page.updatePage.useMutation(undefined, {
    onSuccess(data, variables, context) {
      // ...
    },
});

updateAppearance({...}, {
  onSuccess(data, variables, context) {
    // ...
  },
});

@radist2s  Thanks for response,
this is how I used it in version 1.x, but for some reason it doesn't work for me now.
is it possible that I did the migration  to v 2.x wrong?

@lkarcol, did you apply codemode to the migration?

@radist2s  yes, is small code base so i also removed instaled and generate again.
But it looks it missing types also for options.
(method) useMutation<MutationVariables<{     profileImage?: string;     title?: {         value: string;         color: string;         fontSize: number;         font: string;     } | null;     ... 5 more ...;     logo?: boolean; }, UpdateAppearanceParameters>, unknown>(parameters: void, options?: any): UseMutationResult<{     ...; }, unknown | Error, MutationVariables<...>, unknown> (+1 overload)
But generated services looks good to me
useMutation<TVariables extends MutationVariables<UpdateAppearanceBody, UpdateAppearanceParameters>, TContext = unknown>(parameters: void, options?: ServiceOperationUseMutationOptions<UpdateAppearanceSchema, UpdateAppearanceData, UpdateAppearanceParameters, TVariables, UpdateAppearanceError, TContext>): UseMutationResult<UpdateAppearanceData, UpdateAppearanceError | Error, TVariables, TContext>;

@lkarcol, I think it's some kind of corner case. Could you provide an OpenAPI Document from which you are generating the client or at least a problematic endpoint?

@radist2s I reduced the whole scheme to 1 endpoint
Schema
My command
 npx @openapi-qraft/cli --plugin tanstack-query-react --plugin openapi-typescript http://localhost:3333/apidoc --output-dir src/api --explicit-component-exports

@lkarcol, unfortunately, the link is expired. Could you please provide a newer one?

@radist2s schema

@lkarcol, sorry for the long reply. I checked and it looks like everything is working correctly.
  const { mutate, error, isSuccess, isPending } =
    // undefined is used if there are no predefined mutation parameters
    qraft.bio.updateAppearance.useMutation(undefined, {
      onSuccess() {
        // ...
      },
    });

  mutate();
  mutate({ body: { profileImage: "https://i.imgur.com/wSTFkRM.png" } });

an alternative approach:
  const { mutate, error, isSuccess, isPending } =
    qraft.bio.updateAppearance.useMutation(
      {},
      {
        onSuccess: async (updatedUser) => {
          // ...
        },
      },
    );

  mutate();
  mutate({ profileImage: "https://i.imgur.com/wSTFkRM.png" });

For example, if you would have an updateAppearanceById operation:
  const { mutate, error, isSuccess, isPending } =
    qraft.bio.updateAppearanceById.useMutation(
      {
        path: { id: somePredefinedId },
      },
      {
        onSuccess: async () => {
          // ...
        },
      },
    );

  mutate();
  mutate({ profileImage: "https://i.imgur.com/wSTFkRM.png" });

@radist2s thanks for response,
For some reason  did not install this package @openapi-qraft/tanstack-query-react-types i had to install it manually
now it works

@radist2s I dont know why this happen sometimes, i had also problem with @tanstack/query-core which part of @tanstack/react-query .  I am not sure if this happen because i run pnpm install from pnpm workspace root or is something else, i need figure out.
But this is solved, it is problem on my side.
Thx for your time. It is really nice project.


Black gap appears when no statusbar is used on IOS with PhoneGap

When building a fullscreen app with PhoneGap without statusbar, Framework7 still reserves the space.
I tried to remove the placeholder div.statusbar-overlay but the class with-statusbar-overlay always gets added resulting in a black gap.
The check for statusbar is wrong at https://github.com/nolimits4web/Framework7/blob/a2dcc853e5a3b722315f61051a1e50dd8ec38b03/src/js/proto-device.js#L61
because the device width & height are always equal with Phonegap and IOS.
Maybe you should add check for having the .statusbar-overlay?

Looks like this can be closed.


Issue getColumnByDate

This will fix the problem where the bar gets added an increment on the beginning if it starts exactly where the gantt chart starts but there is another task that starts before the beginning of the gantt chart.

Please read Pull Request Guidelines. Files in assets are generated, you should edit files in src and generate assets with grunt


Test ICS-20 Transfer

Description
Test pallet-ics20-transfer to make sure that the machinery for transferring tokens via ICS-20 works.
Definition of Done
Provide a unit test ensuring that pallet-ics20-transfer functions properly.
Suggested Solution
Build on the IBC integration done in this PR.

https://github.com/baidang201/ibc/blob/main/ibc-ggx-cosmos ICF M3 deliverabl.md

PR https://github.com/baidang201/ibc/pull/1


Hackathon 2018 ⅠⅠ

I'm happy to announce that I'll host the next hackathon this year!
I noted down below what we need in order to make this hackathon successful :)

[x] Settle for a date
[x] Location (more below)
[x] Prepare an agenda
[x] Tshirts! Self-made - we have a t-shirt press at home (We need a design!)
[ ] Write a blogpost

Date
The Hackathon will happen from 23rd to 25th of November.
Preview of Agenda: https://hackmd.io/s/r12wcOXo7
Location
Early this year me and my partner moved into a new home (still under construction). As already offered earlier this year, we would like to offer to hold this years (now) second hackathon.
Address:
71229 Warmbronn, Planstraße 19

(More photos to come)
Accomodation
We have mattresses, blankets and pillows for up to 8-9 people (excluding us).
Depending on how much space you need and how cuddly you are:

1 large mattress for 2
2 small mattresses for 1
1 large L shaped sofa for 2~3
1 small sofa (comfy!) for 1
1 Hammock inside
a couple of isomats

There is plenty of space (I would think in total for up to 20 people) and also floor heating in the first floor <3
If possible, bring your own pillow and blanket, we only have some light blankets, but covers for all beds.
It is our home - we trust you to handle it in an orderly manner.
Food
We will offer vegetarian and meat dishes. If you love, we can cook together. We do catering for our own events as a hobby, so we have plenty of experience in that matter :)
Participation fee
We will split the bills evenly and add a few euros for accomodation/house costs (electricity, water, etc).
Participation during the day is free of course, but we will also distribute a few snacks and drinks if possible.
By average, I could imagine that 7-10 euro per person per day is fair for

2x dinner (fr, sat)
2x breakfast (sat, sun)
softdrinks

T-shirt
As earlier mentioned: We have our own t-shirt press. We need to buy t-shirts in advance that are able to be (sublimentationsfarbendruck) printed.
We could also come up with a little design. Otherwise, if you already have ideas, please share them!
That's all for now! Hope to see you at the Hackathon.

This is awesone!

Is this a date?

Date as in time and date. meetup, appointment.

Thanks for bringing this to live @MartinMuzatko
After a longer time of inactivity I decided that I will need to definitely show up on the Hackathon! Looking forward for it <3

I was making a bad joke about the word date, don't mind me. I hope to be able to come and get involved in this project, looks like fun!

I am so excited about this.
Thanks @MartinMuzatko !

That doodle is only about tshirts, there should be a separate list with people who want to come.
Count me in 😃

The original one is already closed that was used to find a date: https://doodle.com/poll/3wx2k6upykdgqd2u
But it is good to know you will come :)

Yes, but this was a doodle to a find a date. Give people a chance to jump in now for the final days. We already have at least one person here in this issue who wants to come who isn't in the doodle (as far as I can see it).

It is open again

Hey @sdegueldre, will we see you in the next days? 😄

I'm afraid not, life got in the way and I don't have a car to swing by unfortunately, hope you all have a fun and productive weekend!

I'm afraid not, life got in the way and I don't have a car to swing by unfortunately,

Sorry, to hear that, but maybe next time :)

hope you all have a fun and productive weekend!

thanks!

Sorry, to hear that, but maybe next time :)

I would like that! If you're hanging out on a discord or some such let me know, i'd love to take part despite the distance :)

A huge
THANK YOU
to Misan and Pum for organizing and providing the place for this Hackathon!
It was productive and brilliant.
To all: Don't forget to upload possible missing documentation and links to existing PADs within the main Protocol pad.


how to require one lua from another lua

hello! I wrote some code to execute a lua file, it works. Today I tried to require another lua in the previous lua file, it failed.
cpp:
int test_globals(sol::state_view lua) { 	lua.script_file("test_globals.lua"); 	return 0; }
test_global.lua:
local hello = require("hello.lua") local world = hello.world() print(world)
hello.lua:
local Module = {} print(" helo.lua begin ============================") function Module.world() 	ret = 1234 	return ret end print(" helo.lua end ============================") return Module
I tried require "hello" , require "hello.lua", require("hello"), require("hello.lua", all failed. Any help appreciated!

my code is here:
https://github.com/uniqss/jasslua.git

Problem solved！ Thanks anyway!

I was about to say: yes, you can add the current directory to search path or add a "loader".


Docker links seems broken

Hello Dockers,
Not sure if I have to create this issue here or in the docker-composer project.
But after some differents uses with manually started containers, I have migrated my environment to a docker-compose.
Since this I'm facing some weird behaviours with linked containers.
When a container B link a container A,  B doesn't inherit this link.
$docker run --rm -ti  --name apache  --link=delivery ubuntu ping delivery
ping: unknown host delivery

$docker inspect -f "{{ .HostConfig.Links }}" apache
[]

$docker run --rm -ti  --name apache2  --link=delivery ubuntu ping delivery
PING delivery (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from delivery (<IP_ADDRESS>): icmp_seq=1 ttl=64 time=0.302 ms
64 bytes from delivery (<IP_ADDRESS>): icmp_seq=2 ttl=64 time=0.126 ms
64 bytes from delivery (<IP_ADDRESS>): icmp_seq=3 ttl=64 time=0.071 ms

But if I change the name of the container the link is ok
$ docker inspect -f "{{ .HostConfig.Links }}" apache2
[/delivery:/apache2/delivery]

I've checked this behaviour on a network-level (ping).
But the ENV vars created with a link are not created too.
Thanks for your support
Output of docker version:
Docker version 1.11.0, build 4dc5990

Output of docker info:
Containers: 72
 Running: 21
 Paused: 0
 Stopped: 51
Images: 779
Server Version: 1.11.0
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 1048
 Dirperm1 Supported: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge null host
Kernel Version: 3.13.0-29-generic
Operating System: Ubuntu 14.04.1 LTS
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 17.61 GiB
Name: docker
ID: EOHJ:RKZW:UPCE:RIR5:RFUN:SMP3:TEFC:M2RI:EY26:BQWR:TXE2:5NQ3
Docker Root Dir: /var/lib/docker
Debug mode (client): false
Debug mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support

Are you still able to reproduce this issue on an up-to-date version of docker 1.11 (docker 1.11.2)?

Hi,
After upgrading and restarting the Docker daemon, it seems to be fixed.
Not sure if it's due to the service restart or due to the upgrade ?!


[Feature] Recover from FRR reload failures

If FRR dies during a reload network operator should detect this and then try to restart FRR.
Currently NWOP does not recover frr if it fails and thus manual interaction

If the reload systemd job has the status failed (we now wait for the response) a restart is tried. This might take some minutes until the job times out.


Set TimeZoneContext & TimeZoneDefinition in http soap header?

i need some help with that...
how can i do it?
thanks a lot!

ExchangeServiceBase stores some header-informations. If you want to adjust them you need to head forward to it.


SpdxDeclaredLicenseMapping: Add an entry for PSFL

Signed-off-by: Frank Viernau<EMAIL_ADDRESS>

This change is

Merged, ignoring the unrelated error on AppVeyor.


kubernetes-deploy fails with API version 1.16

Bug report
kubernetes-deploy (and krane deploy) fail during the prune phase on deploy to a k8s cluster using v1.16 of the api. This is because the following apis:
extensions/v1beta1/ReplicaSet
extensions/v1beta1/DaemonSet
extensions/v1beta1/Deployment
apps/v1beta1/StatefulSet

have been deprecated. See https://kubernetes.io/blog/2019/07/18/api-deprecations-in-1-16/ for reference.
I have created a fork that addresses this issue for v1.16 (see https://github.com/redmcg/kubernetes-deploy/tree/fixforv1.16), but I did not submit this as a PR as I'm worried it will break older versions of the k8s API (where the new APIs may not be implemented).
Expected behavior:
kubernetes-deploy (and krane deploy) to successfully deploy to a k8s v1.16 cluster
Actual behavior:
kubernetes-deploy (and krane deploy) fail during the prune phase with the following error:
[INFO][2019-10-18 11:19:43 +1100]	------------------------------------------Result: FAILURE-------------------------------------------
[FATAL][2019-10-18 11:19:43 +1100]	Command failed: apply -f /tmp/d20191018-14256-1x9qqjf --prune --all --prune-whitelist\=core/v1/configmap --prune-whitelist\=core/v1/pod --prune-whitelist\=core/v1/service --prune-whitelist\=core/v1/resourcequota --prune-whitelist\=core/v1/secret --prune-whitelist\=core/v1/serviceaccount --prune-whitelist\=core/v1/podtemplate --prune-whitelist\=batch/v1/job --prune-whitelist\=extensions/v1beta1/replicaset --prune-whitelist\=extensions/v1beta1/daemonset --prune-whitelist\=extensions/v1beta1/deployment --prune-whitelist\=extensions/v1beta1/ingress --prune-whitelist\=networking.k8s.io/v1/networkpolicy --prune-whitelist\=apps/v1beta1/statefulset --prune-whitelist\=autoscaling/v1/horizontalpodautoscaler --prune-whitelist\=policy/v1beta1/poddisruptionbudget --prune-whitelist\=batch/v1beta1/cronjob --prune-whitelist\=rbac.authorization.k8s.io/v1/role --prune-whitelist\=rbac.authorization.k8s.io/v1/rolebinding
[FATAL][2019-10-18 11:19:43 +1100]
[FATAL][2019-10-18 11:19:43 +1100]	WARNING: Any resources not mentioned in the error(s) below were likely created/updated. You may wish to roll back this deploy.
[FATAL][2019-10-18 11:19:43 +1100]
[FATAL][2019-10-18 11:19:43 +1100]	Unidentified error(s):
[FATAL][2019-10-18 11:19:43 +1100]	    error: no matches for kind "ReplicaSet" in version "extensions/v1beta1"

Version(s) affected:
v0.29.0 (but both kubernetes-deploy and krane deploy failed with my own builds from GitHub master)
Steps to Reproduce

Deploy a v1.16 k8s cluster (e.g. snap install microk8s --classic)
Attempt a deploy to this cluster

Thanks for the bug report. We've merged your changes into master and are going to cut a release shortly.  We're aiming to provide official 1.16 support soon.

I just noticed this is fixed in v0.30. So for my purposes this issue is resolved.

Glad its working for you. As an fyi we're adding formal 1.16 support in https://github.com/Shopify/kubernetes-deploy/pull/598.

Hello @redmcg! Just merged #598 in master in case you want to test it 🎉
I will close this issue for now, but feel free to open another issue if you bump into any problems! Thanks!

Thanks all. I'll check it out


Rethink precaching's activate behavior

(CC: @josephliccini)
Library Affected:
workbox-precaching
Background

https://github.com/GoogleChrome/workbox/issues/1316 is the original issue that led to Workbox v3's current behavior: during install, Responses corresponding to the set of new assets listed in the precache manifest are written to a "temporary" cache, and during activate, they're copied over to the "main" cache. workbox-precaching will never serve Resposnes directly from the temporary cache. Unless the activate handler completes successfully, assets will end up "stuck" in the temporary cache indefinitely.

https://github.com/w3c/ServiceWorker/issues/1372 is a discussion about how various browser's deal with errors that prevent activate handlers from completing. As per the service worker spec, an activate handler is effectively not allowed to fail, but bugs and edge cases can lead to them failing in practice. The general takeaway is that Edge and Chrome do not make any effort to retry the activate handler when an error leads to failure (with some provisions in place to delay activation when it's likely to fail, e.g. when the browser is shutting down).

https://github.com/GoogleChrome/workbox/pull/1791 is a PR to deal with a particular issue observed (presumably due to a browser bug) in Firefox, where the activate handler doesn't end up completing, leading to Firefox re-triggering the install event. Firefox's current behavior goes against the service worker specification, but at the same time, we've now seen it in the wild, so a fix seemed prudent.

Proposed changes
workbox-precaching's current reliance on the activate event running to completion can lead to cache inconsistencies in any browser that follows the service worker spec if the activate event terminates prior to completion. This is apparently easy-ish(?) to trigger in Edge if you shut down the browser while a service worker activation is happening.
As far as I can tell, the best way to deal with this is to ensure that the only things that happen during the activate event is purging unneeded cache entries—the sort of thing that we want to do, but which won't lead to cache inconsistencies if it didn't complete.
I can think of a couple of ways to move to that model:
sw-precache's approach
The earlier sw-precache library handled this scenario by using a single cache whose entries including a synthetic _sw-precache=<revision> query parameter appended to the end of the URL. (URLs that were known to already include revision information did not have this query parameter appended.) These cache entries could safely be written to the single cache during the install event without any risk of overwriting entries still in use by the previously activated service worker, since updated entries would have updated URLs.
The activate handler, in that approach, just needs to do cleanup.
One tangential benefit of this approach is that it's not necessary to use IndexedDB to maintain out-of-band metadata keeping track of the active mapping of URLs to revision info, which we have to do in Workbox. Adopting this approach would mean eliminating the dependencies on the IndexedDB runtime code from the workbox-precaching bundle. The mapping of "real" URL to the correct URL to use as a cache key can be maintained via a variable in the service worker's scope.
The primary downside of this approach is that developers who expect their precached resources to use specific URLs as their cache keys will end up confused; the cached entry for /index.html, for instance, might have a cache key of /index.html?_workbox=abcd1234. Attempts to read the cache via, e.g., caches.match('/index.html') will fail.
To work around this, developers would have to do one of two things, each with drawbacks:

Rely on a function we'd expose in workbox-precaching that would map a "real" URL into a cache key (c.f. this in sw-precache). It would be hard to get this info from inside the window context, since it's relies on data that's only available inside the service worker's scope.

Use caches.match('/index.html', {ignoreSearch: true}), with the risk that the incorrect entry is returned if multiple URLs match the same path and only vary based on query parameters.

Double-cache everything
A less radical departure from workbox-precaching's current behavior would be to create a new logical cache each time the install handler is run, presumably using some information from inside the precache manifest to include a unique versioned string in the name. The new cache would contain a complete copy of every resource listed in the current precache manifest, even if that resource has already been previously precached.
In this scenario, the activate handler would just call caches.delete() on any out-of-date logical caches.
This approach would not lead to extra data being transferred over the network, since we can use cache.match() + cache.put() to make copies of existing entries locally.
The major downside of this approach is that we'd risk triggering quota errors by maintaining two full copies of all precached resources during the interval between install and cleanup in activate. It's not clear how we could automatically recover from quota errors encountered during the install handler, and it's easy to envision failure scenarios in which install is re-attempted repeatedly, failing each time due to quota errors, leaving users stuck with a previous set of assets indefinitely.
(This is actually an existing failure scenario that applies today, and our current approach to avoiding it is just to try not to duplicate anything when we can help it; see https://github.com/GoogleChrome/workbox/issues/1312 for better ideas.)
A tangential downside is that we would have to continue using IndexedDB inside of workbox-precaching, leading to a larger runtime bundle and greater code complexity than we'd otherwise have.
Other approaches?
I'm not aware of any, but I'm interested in hearing other ideas.

I'd be OK with adding metadata to the URL as long as users have a way to get access to the modified URL in the event they want to write their own caching logic with resources in the precache cache.
I also think we should support a mode that allows users to opt out of this behavior in the event they're already fingerprinting their assets. In fact, since finger printing assets is a best practice, I'd argue we should optimize the precaching module for users who are doing that, while still supporting users who aren't (with your suggestion of the sw-precache approach).
In fact, part of my hesitation around using the precaching module in the past is feeling like it does a bunch of stuff I don't need it to do (e.g. the temp cache), so if we could remove the temp cache and the URL modification for users who are following our caching best practices, that would be my preference.

(URLs that were known to already include revision information did not have this query parameter appended.)

This was done in sw-precache by checking dontCacheBustUrlsMatching at runtime, but it's even more straightforward with Workbox's precache manifest format, since there's either a revision field or there isn't one. When there isn't a revision field, we'd use the URL as-is as the cache key.
Of course, precaching HTML, if possible, is a good practice, and URLs for HTML documents won't contain in-band versioning hashes. So most developers would end up with a synthetic query parameter appended to the real URL as the cache key for HTML resources.

When there isn't a revision field, we'd use the URL as-is as the cache key.

👍

Of course, precaching HTML, if possible, is a good practice, and URLs for HTML documents won't contain in-band versioning hashes.

Ahh, right (not doing this myself I sometimes forget). So in that case my not-yet-formed ideas of how we could separate the logic entirely (so those using fingerprinting don't need to include it) is probably not worth exploring.

(This should also help with https://github.com/GoogleChrome/workbox/issues/1218, as removing IndexedDB code from workbox-precaching appears to shave around 1.7kb from the size of workbox-precaching.prod.js)

Hi @jeffposnick,
We ran into #1316 ourselves because we ship our app mainly to schools, in which network connectivity isn't always ideal, routers get overloaded, etc. So, to our surprise, although none of the internal tests revealed the issue, every time we pushed a new update we would get a couple reports of users sending screenshots of a bricked app (the CSS was all wrong, result of using an old javascript app with a new css file, or vice versa)
From my understanding, here is the chain of events that follow. For simplification, I'll assume that our app uses only two files: main.js and main.css.
If a first installation attempt fails half way through (let's say main.js is successfully downloaded and main.css isn't), the IndexedDB entries (precacheDetailsModel) will be updated to reflect that (so main.js's revision will be updated in the db) and main.js will be added to the temp AppCache. Main.css won't trigger any changes in either AppCache or the indexedDB entries.
When the app is reloaded, everything still works, as all requests are served from the AppCache which was kept intact so far. However, this will automatically trigger a second installation attempt in which:

The temp cache is erased. So the previously downloaded main.js is lost
Only main.css will be downloaded, as the IndexedDB will say that (supposedly) main.js is already at the target revision
When the activation completes, the temp AppCache will contain the new main.css but not the new main.js. This results in the app serving the new CSS with the old javascript.

Given the number of reports we would get of users sending screenshots of bricked CSS apps and the time sensitivity of the issue, we simply forked workbox and applied this fix, which is to basically only update indexedDB if all network requests succeed:
https://github.com/geekie/workbox/commit/caffbf8980f833d9e295fef574e27b4bffda6386
(I think it is one of the possibilities you mentioned above or in #1316). It seems like a proper fix assuming nothing else could go wrong after indexedDB is updated. I suspect this may not be the case: If that's true then this fix makes workbox work in more scenarios, but doesn't provide a 100% guarantee that it will always properly install updates.
Given that we want ultimately use a non-forked version of workbox, we'd be happy to assist with developing PRs that help address this issue in a way that makes sense from your point of view. One possibility I thought of was to write entries to the IndexedDB (precacheDetailsModel), during the install phase, with an additional boolean flag that says they were not yet "activated" (a successful activation would then reset this flag). Any further installation attempt would then ignore any entries that have this flag set. The risk here is that if the activation phase doesn't correctly reset these flags, further updates will download a lot more than needed.
Let me know if there is any way we can help!
Thanks!
Rodrigo.

We've moved away from the IndexedDB model and -temp cache in Workbox v4, and gone with what's described as "sw-precache's approach".


Upgrade to golang-1.18

Update for LBM and specify the support version of facebook/rocksdb
Upgrade golang-1.16
Add Makefile with Dockerfile, and remove travis.yml
Fix lint error on make lint-docker
Fix test by updating the writing value size on make test-docker
Upgrade golang-1.17
Upgrade golang-1.18
Add github actions

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Codecov Report

:exclamation: No coverage uploaded for pull request base (main-upgrade-golang@3570fac). Click here to learn what that means.
The diff coverage is n/a.

@@                  Coverage Diff                   @@
##             main-upgrade-golang       #8   +/-   ##
======================================================
  Coverage                       ?   45.15%
======================================================
  Files                          ?       36
  Lines                          ?     2042
  Branches                       ?        0
======================================================
  Hits                           ?      922
  Misses                         ?     1065
  Partials                       ?       55

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 3570fac...c233570. Read the comment docs.


using filters in ajax loaded fields

Hi,
Is there a way to apply filters to ajax loaded table content ? something like
'column-keys': [
'speed | bytes',
],
and the possibility to concatenate two fields of the reply into one columns like {{ loaded_bytes }} of {{ total_bytes }}
Obviously i can modify my backend code to implement this but i think that implement it in mdDataTable would be better
Thanks in advance

@e-tip Currently there is no thing like that. And I'm not sure we'd need to add it at the moment. It's very specific and basically you can even do that. Let me show you how.
But I'd suggest to do your data manipulation in your controller's code. You don't have to modify anything in your backend.
Let me give you an example. In your paginator function is should be something like this:
function paginatorCallback(page, pageSize){
        return $http.post('https://api.nutritionix.com/v1_1/search', {
                'page': page,
                'pageSize': pageSize
            }).then(function(result){
                //here using the chainable functionality of the promises you can alter yother response
                _.each(result.data, function(item, index){
                   result.data[index].speedInBytes = $filter('bytes')(item.speed);

                   //or merge two values into one
                   result.data[index].mergedValue = item.oneValue + '' + item.anotherValue
               })

                return {
                    results: result.data,
                    totalResultCount: result.total
                }
            });

Is that a possible/acceptable solution for you?

Ohhh, that's so easy that i didn't even thought about it... :+1:

I'm glad that I could help. :) This ticket is closed then.
Cheers


WIP: convert default.nix to drv-module

This adds lib.makeModule, which can convert a default.nix from nixpkgs to a drv-parts module.
It tries to detect which of the default.nix arguments are flags and which are dependencies.
For the flags it creates nixos options, for the dependencies it expects them to be passed via deps.
It does not try to extract the arguments to mkDerivation crafted by the default.nix.
Instead it just let's the default.nix create the derivation, and then calls overrideAttrs on it to add our values.
Though there is a problem with this approach. The merging of the default.nix derivation args and the drv-parts args is happening inside the overrideAttrs call and invisible to the module system. This leads to problems (see code comments)
I'm not yet quite confident about that approach. Possibly you have some ideas @roberth.
Maybe I should not base this on the existing ./module/mkDerivation module, but instead generate a module completely from scratch, by extracting the derivation attrs first, and using those as defaults for the options.

Maybe I should not base this on the existing ./module/mkDerivation module,

Isn't the goal to have ./module/mkDerivation behavior?

but instead generate a module completely from scratch, by extracting the derivation attrs first,

You can do this with the __expose thing from https://github.com/DavHau/drv-parts/issues/3#issuecomment-1344451235
That gives you the mkDerivation arguments that you can then translate to config.
On the input side of the package function, I'm not sure what to do. Maybe "give up" and declare legacyArgs, let callPackage fill them. You could modify callPackage (or makeOverridable) to give out the exact arguments it passes.
After all, a package function isn't really complete without its callPackage invocation.
This requires a change to Nixpkgs that I'm not sure we should want to have there, making makeOverridable leaky.
Maybe the input side of the package function should be kept simple; just an option for the overrides as in pkg: overrides: pkg.override(_ignoredArg: overrides), to be used before doing the __expose trick to get the mkDerivation arguments.
leaky makeOverridable
  makeOverridable = f: origArgs:
    let
      result = f origArgs;

      # Creates a functor with the same arguments as f
      copyArgs = g: lib.setFunctionArgs g (lib.functionArgs f);
      # Changes the original arguments with (potentially a function that returns) a set of new attributes
      overrideWith = newArgs: origArgs // (if lib.isFunction newArgs then newArgs origArgs else newArgs);

      # Re-call the function but with different arguments
      overrideArgs = copyArgs (newArgs: makeOverridable f (overrideWith newArgs));
      # Change the result of the function call by applying g to it
      overrideResult = g: makeOverridable (copyArgs (args: g (f args))) origArgs;
    in
      if builtins.isAttrs result then
        result // {
          override = overrideArgs;
          overrideDerivation = fdrv: overrideResult (x: overrideDerivation x fdrv);
          ${if result ? overrideAttrs then "overrideAttrs" else null} = fdrv:
            overrideResult (x: x.overrideAttrs fdrv);
         #### *** NEW ***
          __makeOverridableArgs = origArgs;
        }
      else if lib.isFunction result then
        # Transform the result into a functor while propagating its arguments
        lib.setFunctionArgs result (lib.functionArgs result) // {
          override = overrideArgs;
          __makeOverridableArgs = origArgs;
        }
      else result;

I think this is ok as a migration shim, but it can't cover everything. If users want it to be as good as modules, they need to adopt modules. We'll have to manage expectations.

The routines apply, callWith, and callWithOv here are likely useful.
I plan to PR these is Nixpkgs, essentially they split up callPackage into parts that can be used in isolation.
https://github.com/aakropotkin/ak-nix/blob/7242b7d7c49037700def339ea232d594b67dcd7c/lib/funk.nix#L292

I think an important question is do we want to convert called packages or package functions.
Called packages are great if you want to import from Nixpkgs. Having access to the real argument values will make it much more reliable.
Package functions may be desirable in non-Nixpkgs projects, that may not rely on the second callPackage argument as much. However, in non-Nixpkgs projects, I think "just doing the work" is much more feasible, and gives the best result; in other words, don't encourage people to write packages in the old style and expect them to work well as a modular package.
For incremental migration, I think users are helped equally well with any conversion function, regardless of the direction. Perhaps the opposite conversion is easier? If they can convert a package function to a module by hand (which is good; working toward the end goal), can we provide a function callModulePackage that emulates callPackage more closely? By providing .override and .overrideAttrs? Both can be implemented using extendModules and a function for auto-incrementing the priority of the config definitions that are in the argument.  It's such a polished turd. "package attribute" is the right term.
# anyway, I think this gets the point across
config.passthru.overrideAttrs = f:
  let attrs = f config;
       overrides =
         mapAttrs
           (k: v: mkOverride options.${k}.highestPrio v
                    # + recurse if `options.${k}` is not an option (but a node of the options tree)
            )
           attrs;
  in extendModules { modules = [ overrides ]; };
}

Also I'm unsure if separating the env variables out was the right decision to begin with

structuredAttrs needs something like this, so it's not all bad. It may need to change, maybe?

but was running into infinite recursion.

Did you try to generate options or config? If you generate options, you'll have infinite recursion, but values in config should be able to read from options.

Should override and overrideAttrs both just point to the same function, accepting the same arguments for simplification?

I think override should only override the deps and perhaps some "flag" options if there's a good heuristic for that. Otherwise, putting those flags in deps is fine. Making it work is more important than making it pretty I think.
overrideAttrs should set the same things that the translation code already sets. It could probably reuse all that logic.

Hello! I have received a link on a Matrix discussion channel about this project, and I found it very interesting.
About tis PR: what is the idea of this pull request? Is it to make a wrapper around existing Nixpkgs codebase, or is it more akin to a nix-to-nix transpiler?

@AndersonTorres The purpose of the current PR is to provide a wrapper for existing package declarations a la default.nix style, so that those definitions will be converted to drv-parts compatible modules on the fly.
That would mean that people would not be forced to go through refactoring a lot of code in order to use drv-parts.
Though, as Robert already pointed out, we could alternatively provide other means of backward compatibility. It's not quite clear yet what exactly to make of this PR. Currently I still think it can be valuable.
My main struggle was with implementation. Partly because the initial code base was not thought out well enough. Today I was working a lot on refactoring the current state (see recent commits on master branch). So I might continue working on the current PR in the near future.

After refining some fundamentals, this now feels a lot cleaner.
The derivations created by converting default.nix functions to modules now have the same drv hashes as the originals from nixpkgs.
I still want to get rid of the manual merging in overrideDrv though, to make this really nice

Given that line:

For incremental migration, I think users are helped equally well with any conversion function, regardless of the direction.

Should I suppose that the endgame is a complete migration?

I don't think you'd want to incur the complexity of both systems, but I may be wrong.

Good to know. It should become a sprintable, then!


Adapt to Swiftmailer 5 and Swiftmailer 6 version of class Swift_ConfigurableSpool

@thePanz as promised, here is a possible solution of the swiftmailer issue. What do you think?
Btw. as the swiftmailer package is discontinued but needs a small adjustment for php 8.2: Should we clone the official repo in fos1 as well or try to adapt to symfony/mailer?

+1 for symfony/mailer wrapper as an mailer adapter.

For reference: https://github.com/FriendsOfSymfony1/symfony1/pull/240#issuecomment-1381883703

Do you have any experience, how to use the spool? I've thought about creating a test for it. While browsing the test sources, I've come across https://github.com/FriendsOfSymfony1/symfony1/blob/master/test/unit/mailer/fixtures/TestSpool.class.php which is referencing Swift_Mime_Message as well.

I am currently using Swfitmailer under Symfony5. I can figure out how to set it up here.

we might need to run the tests on the CI with --prefer-lowest to test both versions of the SwiftMailer, wdyt?

@thirsch File(system) spool example configuration:
factories.yml
  mailer:
    param:
      delivery_strategy: spool
      spool_class: Swift_FileSpool
      spool_arguments:
        - "spoolpath"

Btw I found this about spools:
https://symfony.com/legacy/doc/more-with-symfony/1_4/en/04-Emails#chapter_04_sub_the_spool_strategy


Text Hightlighting

Is it possible to highlight text with the library? So for example a callback gets called when the user highlights text and gives you the text in the highlighted area.
Thanks for this great piece of software.

I will take a look into this and see if there is something that could be done.
PS. Sorry for late reply


[bash] Restore insertion point pre Bash 4

Make C-t more consistent pre and post Bash 4. It already kills the
command line separately before and after the insertion point. Add
set-mark and exchange-point-and-mark to restore the insertion point
after yanking back and apply the same behavior to M-c.

Thanks, I merged this with a minor tweak.

:+1: Thanks!


update profanity list

there were some words that i don't think should really be filtered. (like stfu can be interpreted as frick, and for some reason fat/fatass was filtered.)

Cleaning up inactive branches


No checkpoints available under pretrained weights link

There are no pretrained weights available under the links posted in the section "Pre-trained POMP Prompt"

Hi, our ckpt of pretrained prompt is available in here:

The Google Drive link for all ckpts is link.

Thank you for the reply with the google drive link for all the checkpoints.
It seems that the google drive link for the ViT/B-16 models highlighted in your screenshot above does not seem to contain the checkpoints as it is only a few KBs.

Thank you very much. Will try this.


Build Error: Command PhaseScriptExecution failed with a nonzero exit code

Issue: Build Error
Fault Code: Command PhaseScriptExecution failed with a nonzero exit code
Environment: Version 15.0 (15A240d)
OpenAPI Spec: https://github.com/byaruhaf/MoMoOpenAPISpec/blob/main/Remittance/openapi.yaml
Summary:
Build error occurs when generating Remittance spec using plugin.
Repo to show the issue:
https://github.com/byaruhaf/RemittanceClient
Plugin Version:
swift-openapi-generator: 0.2.3
swift-openapi-runtime: 0.2.5
swift-openapi-urlsession: 0.2.2
Error:
_OpenAPIGeneratorCore/ContentType.swift:180: Precondition failed: Invalid ContentType string, must have 2 components separated by a slash.
/Users/alphabo/Library/Developer/Xcode/DerivedData/RemittanceClient-bdbwvhgjtiqmgialfpdgrmptmvif/Build/Intermediates.noindex/RemittanceClient.build/Debug/RemittanceClient.build/Script-9230177165958809893.sh: line 17: 45194 Illegal instruction: 4  /usr/bin/sandbox-exec -p "(version 1)
(deny default)
(import \"system.sb\")
(allow file-read*)
(allow process*)
(allow file-write*
    (subpath \"/private/tmp\")
    (subpath \"/private/var/folders/lw/jpcnn99x3lz9j0txyk_v2xlr0000gn/T\")
)
(deny file-write*
    (subpath \"/Users/alphabo/RemittanceClient\")
)
(allow file-write*
    (subpath \"/Users/alphabo/Library/Developer/Xcode/DerivedData/RemittanceClient-bdbwvhgjtiqmgialfpdgrmptmvif/SourcePackages/plugins/remittanceclient.output/RemittanceClient/OpenAPIGenerator\")
)
" "/${BUILD_DIR}/${CONFIGURATION}/swift-openapi-generator" generate /Users/alphabo/RemittanceClient/Sources/openapi.yaml --config /Users/alphabo/RemittanceClient/Sources/openapi-generator-config.yaml --output-directory /Users/alphabo/Library/Developer/Xcode/DerivedData/RemittanceClient-bdbwvhgjtiqmgialfpdgrmptmvif/SourcePackages/plugins/remittanceclient.output/RemittanceClient/OpenAPIGenerator/GeneratedSources --plugin-source build
Command PhaseScriptExecution failed with a nonzero exit code

Hi @byaruhaf, the OpenAPI document has an invalid content type here: https://github.com/byaruhaf/MoMoOpenAPISpec/blob/2ad08a336924fd83845d96081dd99f3e5566221a/Remittance/openapi.yaml#L37C35-L37C35
That's why it's failing. You can also use an OpenAPI linter command-line tool to check that the document doesn't contain errors before passing it to the generator, for easier debugging.

Thank's will take it up with the API provider


Update xeofs v3

:wave: xeofs dev here! I’m a big fan of Project Pythia, so I’m especially happy to see that xeofs is useful for your work. Since we recently released version 3, which includes some breaking changes, I thought it may be helpful to give you a heads up & what to do to make your notebook compatible with the new version:

The EOF class is now accessed via xe.single.EOF, instead of xe.models.EOF.
The default value for normalize in the PC scores is now False. To get the same result as before, you’ll need to explicitly set model.scores(normalize=True).

Hope it helps!

Thanks for the update (and for developing such a useful package)!

Looks like this update does indeed break some code in this cookbook. The build is currently failing with
AttributeError                            Traceback (most recent call last)
Cell In[5], line 1
----> 1 s_model = xe.models.EOF(n_modes=4, use_coslat=True)
      2 s_model.fit(sst, dim='time')
      3 s_eofs = s_model.components()

AttributeError: module 'xeofs' has no attribute 'models'

e.g. here

(the nightly build was disabled in this repo, so it was a silent failure until just now)

Completed with https://github.com/ProjectPythia/eofs-cookbook/commit/12efa2b1a1a9dd76036c971247cbba26b4f4120d.


Zip deploy Node.js project to Web App

There are three ways to initiate the deploy process:

Right click on a web app node:

Right click on a workspace folder:

Create your own Zip package (currently must be named package.zip) put it in your working folder and right click on it:

Depending on the context of the command, you will be prompted different things, for example, method #1 will prompt you for the workspace folder (if more than one; if only one then no prompt); #2 and #3 will prompt for subscription and web app, it will chain in the "Create New Web App" wizard steps if the user chose to deploy to a new web app.
The deployment will stop the web app, delete all web site contents (the wwwroot folder) and upload the zip file to be extracted into a new wwwroot folder. In the end the web app will be started.

@whiskeyjay,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot


Move bower to devDependencies.

It definitely should not be a dependency, but I wonder if we actually need it listed in deps or devDeps at all?  I don't spot any direct bower invocations, and ember-try already installs its own copy as needed...

@rwjblue can't we just drop it completely?

superseded by #24


Remove Qt 5.7 ANGLE workaround

Assign to @JamesMBallard
Removing the Qt 5.7 ANGLE workaround.
Please wait until I give you the thumbs up to merge these.

Looks good. I'll wait to merge until we're ready.


Issue reporter takes 7 seconds to render in Windows in latest Insiders

Issue Type: Bug

Open the issue reporter
The window opens quickly but is blank
Takes about 7 seconds to render anything in the Window

Happens only in the Insiders
Stable is fine
VS Code version: Code - Insiders 1.23.0-insider (b845ce918f2689344795e845ae6ef691916c3079, 2018-04-24T05:17:07.677Z)
OS version: Windows_NT x64 10.0.15063

System Info

Item
Value

CPUs
Intel(R) Xeon(R) CPU E5-1620 v4 @ 3.50GHz (8 x 3492)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: disabled_softwarerasterization: unavailable_softwarevideo_decode: enabledvideo_encode: enabledvpx_decode: enabledwebgl: enabledwebgl2: enabled

Memory (System)
31.92GB (18.10GB free)

Process Argv
C:\Program Files\Microsoft VS Code Insiders\Code - Insiders.exe

Screen Reader
no

VM
0%

Extensions: none

With ebf9c8c730041c7fd1586ad8458e8a5c3b2d38fc, I updated the windows-process-tree package which now does the cpu usage calculation in a worker thread. The render time for the issue reporter is lower, more like 3 seconds, but still not as good as stable. Previously a separate process was spawned to list processes, so I think the time could still be improved by forking from main


active_listen()

@This relates to the Jasper-Client version 2.
@Branch "Jasper-Dev"
I am using "Pocket Shpinx" for STT purpose.
I have created a new Plugin, and When using the mic.active_listen() inside my own "SPEECHHANDLER" plugin, I find an issue that the only words Jasper recognizes are "Standard Keywords" used for Deciding upon a Plugin. Can anybody please suggest a method in which I can use Mic to translate any English word and pass to my module.
I'm kind of making a @dictionary.
Or please correct me if I am making any mistake, or missed out anything.
Thanks in Advance

PocketSphinx is not good with big dictionary.

@G10DRAS  first of all thank you for your reply. But can you suggest me a way to De-Link the functions used to identify my keywords for the modules and other words that I might want to use in some particular module.

Inside your own "SPEECHHANDLER" plugin, instead of using  mic.active_listen() you can use
mic.special_mode('myhandler', phrases)
refer mpdcontrol.py for use of mic.special_mode().


It works if you upgrade asset-pipeline to 3.0.6 or higher in build.gradle.


Document TraceId and SpanId properties

Copied trace id and span id information from https://github.com/serilog/serilog-formatting-compact to this document

Fixes #114

Great, thank you


Improve window position and size

I'll start with a demonstration of how the positioning and sizing actually works today on my box:

Initially Cerebro window is small and centered
Start typing and window expands over the boundary of my screen
Hit Enter to run the selected app
Next time I open Cerebro, the window is large
Type and remove a character makes window small again, but not centered
Next time I open Cerebro, the window is again small and centered

It is easy to fix the incorrectly large size on startup, but what to do with window expanding over the boundary of my screen when I start typing something...
I've got two basic ideas:

Place the Cerebro window not in the center, but closer to the top of the screen. That way, there's a bit more available space for the window to grow.
Always maintain Cerebro window centered, regardless of its size.

I'm actually not sure which of these is better. I think the second one is a bit more elegant. What do you think, @KELiON? Maybe you can come up with a third option?
This pull request demonstrates the second option, keeping window always centered. It looks like this:

By the way, this pull request also attempts to fix #35 and #33.
On my laptop the code from master branch places the Cerebro window in the center of the active screen. However, judging by the issues above, this is not the case for many people on different OS.
Unfortunately there is no Electron API to determine the active screen, only the primary one. On Linux, the primary screen can be set via xrandr --output XXX --primary. The code in this branch places the Cerebro window in the center of the primary screen.

@maximbaz I agree, it expands beyond the bottom boundary of the screen and it might be annoying. I think it's better to just place it higher in the first place, since that jump (on your last screenshot) looks unpleasant. Maybe an animation would make it look better, but maybe it would be better to just place it higher

Good point. Why I'm hesitant to put it higher: you don't know how high it should be. On my laptop, it should start this high (approximately in the 1/4 or 1/5 of the screen height) in order to not expand beyond the bottom boundary:

On my external 4k display however it is perfectly okay to start in the center of the screen, there's lots of space to expand. So if the Cerebro will start this high on my external display, that would perhaps not look pretty.
Being always in the middle is at least independent of the screen sizes... What do you think?
I like the idea about animation by the way.

@maximbaz ahhh right, 4k monitors.
Is it possible to change the window size depending on the height and width of the monitor in electron? Is it using standard CSS media query? If yes, we could set it higher by default and add a rule that would set the position to center if min-height=1080 , so that for monitors with resolution higher than 1080p it would be in the center, right?
Also, I noticed (on Windows 10) that if you manually change position of the serebro search bar and then restart cerebro, it resets position to its default state (center of the screen). Do you have that problem on Linux?

Why not just in the center of the screen regarding to the size of the results window. As the user can choose their own size for this (perfect btw), this size should be saved and the position centered due to this size.

Also, I noticed (on Windows 10) that if you manually change position of the serebro search bar and then restart cerebro, it resets position to its default state (center of the screen). Do you have that problem on Linux?

Yes, the position is not remembered. Actually, you just gave me an interesting idea: we could remember the position of the window, and always show the window there. So a user needs to move the window once to where it looks nice on their screen, and all the future runs will show window in that position. Or even better, we should remember window positions based on the per-resolution basis. I often switch between the two screens, so I'd like to set different default positions for different screens. What do you think of this @AlexAlabyev?

Why not just in the center of the screen regarding to the size of the results window. As the user can choose their own size for this (perfect btw), this size should be saved and the position centered due to this size.

@Kageetai that's how it is currently implemented in this pull request, shown on the second gif, right? The issue with this is that the search bar jumps when the size of results window change, which doesn't look very elegant.

@maximbaz yeah, I meant to center it regarding to the full size of the window, even if it is still small. The full window size is defined before, to center it due to that size, even when only the search bar is visible.
And I also like your thought about saving the position

Ooh I get your idea now, center the window on the assumption as if it is already expanded with some results. That is a very cool thought, I actually like it a lot!

Yeah, maybe my way of explaining it was a bit convoluted ;)

Saving and restoring window position would require larger changes, but this last idea is a very simple to implement, and it will guarantee a nice positioning on every single display. I'm definitely going to try this approach first. I'll adapt the code for this in a few hours and let you know, if you want to test it as well.
What about the multi-monitor setup, guys do you have any preference about that? Given that two monitors are connected, is it all right to display Cerebro always on the primary screen?

Hmm, how do you define 'primary screen'? I would prefer to always show it on the screen that currently has the focus\cursor or so.

Next time I open Cerebro, the window is large
Looks like it is some Linux problem, on mac it is small every time you open show the window

Yes, the position is not remembered. Actually, you just gave me an interesting idea: we could remember the position of the window, and always show the window there. So a user needs to move the window once to where it looks nice on their screen, and all the future runs will show window in that position.
It was one of my ideas that I wanted to play with! Would be cool to implement it. We only should check that it works, when you add or remove display (so, it is not shown in invisible area)

Or even better, we should remember window positions based on the per-resolution basis. I often switch between the two screens, so I'd like to set different default positions for different screens.
Another option – we can save window position based on set of display ids, not just resolutions. So if you plug new monitor you just have default window position, but if you move window to this monitor and unplug/plug it again – this position can be restored. But would be better to do it in next iteration and for now it should be ok to show window on primary screen. I prefer small and simple solutions instead of big and complex:)

And regarding centering window – I think solution of @Kageetai is the best – we can center window vertically based on expanded window size. It should look good and solve problem of expanding window out of display bounds

Hmm, how do you define 'primary screen'? I would prefer to always show it on the screen that currently has the focus\cursor or so.

Primary screen is probably defined somewhere in the UI, but the generic command is xrandr --output XXX --primary.

We only should check that it works, when you add or remove display (so, it is not shown in invisible area)
....
Another option – we can save window position based on set of display ids, not just resolutions.

Very good points.

And regarding centering window – I think solution of @Kageetai is the best – we can center window vertically based on expanded window size. It should look good and solve problem of expanding window out of display bounds

So it's all set, I this it's the best as well :) I'll push an update later today. And we take care of other ideas separately.

Guys what do you think about drop shadow and background blur?
I just created an issue https://github.com/KELiON/cerebro/issues/81 to discuss it there

Pushed the updated code, I must say I'm very happy with how it works.

@maximbaz hey! I just checked your changes on mac – position looks good! I have only one concern: looks like we should split responsibility of updateElectronWindow, so we always change size of the window, when it is shown, but not position. My case is sometimes I move cerebro window (to second screen or to the borders of the same screen), and when I hide/show it I expect to see it on the same position, but in your version it is always moved to the center of primary window.

@KELiON actually the reason for me changing position every time when the window is shown is because in Linux on master branch the app doesn't remember it's position. If I move the window, hide it and open again, the Cerebro window will be placed in the middle of the screen.
If I understood correctly, @AlexAlabyev experiences the same on Windows:

Also, I noticed (on Windows 10) that if you manually change position of the serebro search bar and then restart cerebro, it resets position to its default state (center of the screen). Do you have that problem on Linux?

So looks like Cerebro only preserves its position on MacOS?
I'm considering to expand this pull request to implement saving and restoring window position, that way we will not break the current behavior on MacOS, but also provide such functionality for other OS. What do you say?

...if you manually change position of the serebro search bar and then restart cerebro...

@maximbaz I think it is only about restart, on MacOS it is also doesn't work. And in my previous comment I mean just hide/show, without restarting application.

I'm considering to expand this pull request to implement saving and restoring window position

It sounds great!

Guys, it's ready for testing :wink: I'll fix some code style issues in meanwhile.
Now the window position is preserved, not only between show/hide (now for Linuxes!), but also between restarts.
Configuration is stored per primary desktop ID, as we discussed earlier. If a person has two screens connected at the same time, they can place Cerebro on any screens, and the position will still be preserved. If they disconnect the non-primary screen afterwards, the code will detect if the position is not reachable anymore and fall back to the default position.
Generally the fallback to default position happens if the window is entirely not visible, if it is at least partially visible - it remains in that position.
Let me know if you have other cases that aren't currently covered :)

@maximbaz looks like everything is done! Do you want to add/change something or it is ready for merge?

Let's merge, and if new idea or feedback comes up, we deal with it separately :)

@maximbaz ok. Great work, thanks for that!


Models don't appear in Scene using Android Emulator [Xamarin.Forms]

Hey, when mixing Urho.Shape or Urho.Gui objects with custom models, the custom models don't seem to appear in the scene. This bug only seems to occur when using the Emulator.
Tested it with FormsSample and jack.mdl from FeatureSamples.

@SkylarkA do you have a repro project? I can't reproduce it.

@EgorBo Sure:
https://github.com/SkylarkA/FormsSample-missing-model.git
Jack should appear right in front of the Camera. Only does using Hardware.
Tested using:

VS 2015 and VS 2017
Visual Studio Emulator for Android
Targeting Android 6.0 / Android 4.4 on the Emulator
Targeting Android 6.0 / Android  7.1 Hardware
current XF(2.34.231) and Urho(1.4.38) versions

I just tested it with Googles Emulator and it works fine... So looks this just happens when using Microsofts Emulator. Really weird.
Should have been more thorough tough, sorry.


Update Next js Image Style

Improve Nextjs Template image style

Sounds like a good addition to default styles 👍


Request for comment:  Upcoming API changes in MSAL.js 1.0.0-preview

As mentioned on the MSAL.js Roadmap, we are working towards the release of MSAL.js 1.0.0-preview which will include breaking API changes in the core MSAL.js library.
Please find details of these changes in Upcoming changes in MSAL.js 1.0.0-preview and provide your feedback on the API by responding to this issue.

The api looks much better than the current one.

The feedback I have is probably not helpful, because I'm new to this library and Azure's authentication scheme in general. However, I think my overall experience is just clouded because of the general complexity of Azure B2C and the facilitation of multiple APIs.
I can authenticate against a dummy app I registered in Tenant A and get access tokens for whatever scopes I choose, downstream APIs won't know anything at all about the access tokens I pass onto them, since the response objects don't contain the list of scopes they were authorized against. It's also opaque to me why user information, such as 'email' isn't provided even though I specifically request that scope. Validating the token's authenticity by verifying its signature is less than ideal, I'd much prefer an Introspection endpoint over trying to discern whether my Issuer is https://login.microsoftonline.com/common/ or https://login.microsoftonline.com/{appId}/ . I don't understand why my application should need to query the graph API to get information which could just as easily come in the token. It's hard to convince other stakeholders to adopt this added complexity, or maybe I'm just misunderstanding fundamental.
Still, this library has been a lifesaver for streamlining the user authentication piece so far in angular. That I cannot easily extend or instantiate some of the underlying msal-core objects in Angular, like IdToken, is confusing to me though.

I aggree with the documentation issue: its overly complex and stuff is all over the place. Its unclear what is up-to-date and recommended to do by microsoft. Also there are many different flows.
I think security needs more priority, especially it should be simple, easy to understand, easy to implement/configure.
Current state is a developer needs quite some time to understand different flows, read different tutorials and need try and error. Not at all ideal.

@anubi We have focused the API improvements for msal-core in the last quarter. We plan to bringup angular wrapper up to speed with msal-core in the near future.
With regards to documentation, any feedback is welcome. We are continuously trying to simplify and make it more user friendly for anyone to adapt our authentication solutions.

Actually this focus on angular is weird. We have the web platform, there is React, Vue, plain JavaScript/HTML and others. The web is diverse. Why does MS even need to provide an Angular wrapper?
Pls just provide a top notch javascript lib!
The community is able to tailor it for more specific needs/opinions.

I agree that the focus on angular is weird. In this particular case, it works out for me, since my team is using angular. But we could just as well be using react or vue or xyz. But I disagree with the sense that the community should drive this - what'll happen is we'll have a dozen or more forks of the same thing that will all be broken by any changes Microsoft makes.
For instance, this library uses the Implicit flow. According to current IETF standards, SPAs and basically everyone, should no longer be using this flow. Code Authorization Flow grant with PKCE is the interactive authentication scheme you can apply to SPAs, regular web applications, or native applications. It is currently the most secure OAuth flow, from just an attack vector point of view. Microsoft has also already implemented a v2 endpoint for their authentication. I'm sure there will at some point be a v3.
That said, I do appreciate the effort from Microsoft to create some helper libraries. It really streamlines things for people like me, who would otherwise have the task of creating quite a bit of code (which could introduce important security vulnerabilities).
But probably the best strategy, from my naive perspective, is to have a super generic base JS library that can be easily extended to different frameworks. Microsoft would only maintain the most abstracted base framework for authentication and somehow leave some of the framework dependent implementation to others.

Agreed that we should focus more on security, one of which is to move away from implicit flow to auth code with PKCE flow.

Echoing the dislike for focusing on Angular (We personally use VueJS). I don’t love the idea of focusing on any one framework - code should ideally be framework agnostic.
Also echoing frustrations with the documentation. Too many options, documentation that’s out of date, etc. I would love to see a variety of examples - a super simple POC-level example, something slightly more complicated (maybe calling Graph API or something people are likely to be doing), and maybe a fully-functional application people can pick apart to really dig into how things should work.
As an example of something that burned me specifically - we spent days trying to get the Graph Security API working with MSALJS or ADALJS. Come to find out it will never work because it expects roles to be returned, and those are stripped out during implicit flow for length reasons (but we couldn’t find this really documented anywhere).
100% agree auth code + PKCE is the way to go.

To also bring some positive feedback; imho the 1.0 version is much much better api wise and I also feel the documentation has improved over time.

closing because we released!


Add Kafka Pubsub Avro Schema Registry support doc

What content needs to be created or modified?
The Kafka.PubSub documentation needs to be updated to include the optional support for Avro + schema registry
Describe the solution you'd like
Document the metadata config in PR below
Where should the new material be placed?
Add to this page
The associated pull request from dapr/dapr, dapr/components-contrib, or other Dapr code repos
https://github.com/dapr/components-contrib/pull/3292
Additional context
Supports publisher and subscribers including caching for latest schema

closing - looks like this has been resolved


0.7.5 Update error

Issue related to
Sunsynk / mbusd Home Assistant Add-On
Describe the issue/bug
get error notification in HA when trying update add-on from 0.7.4 to 0.7.5 via GUI
Can't install ghcr.io/kellerza/hass-addon-sunsynk-multi/amd64:0.7.5: 500 Server Error for http+docker://localhost/v1.45/images/create?tag=0.7.5&fromImage=ghcr.io%2Fkellerza%2Fhass-addon-sunsynk-multi%2Famd64&platform=linux%2Famd64: Internal Server Error ("manifest unknown")

Same problem for me. and no 0.7.5 version for download

Hello,
I have same problem : get error notification in HA when trying update add-on from 0.7.4 to 0.7.5 via GUI

Same here

Hello,
I have same error:
Can't install ghcr.io/kellerza/hass-addon-sunsynk-multi/amd64:0.7.5: 500 Server Error for http+docker://localhost/v1.45/images/create?tag=0.7.5&fromImage=ghcr.io%2Fkellerza%2Fhass-addon-sunsynk-multi%2Famd64&platform=linux%2Famd64: Internal Server Error ("manifest unknown")

Please try again

I believe kellerza has fixed the issue, mine is working now

yes, now update is working, thank you!


Fix python example

This PR adresses two things

Fix example.py as this wasn't working. Now it returns correct centroid of dataframe. Previously it failed on import because centroid is a method on GeoSeries.
GeoSeries.get_column("geometry") was returning Series instead of GeoSeries. This pr modify get_column to return GeoSeries when requested column is geo column

I don't like multiple types of return - that the get_column might return GeoSeries or Series, but it is what geopandas does, so I followed.
In [6]: x = gpd.GeoDataFrame({"z":[1,2,3,4], "y":[2,3,4,5]})

In [7]: type(x["z"])
Out[7]: pandas.core.series.Series

Thanks for the PR! Yes, the example.py file was outdated. It was one of the first Python files, added way back in https://github.com/geopolars/geopolars/pull/3/files#diff-53512b24f7fdf18d6efd312b230dbdb2d695fcac421c825226e3e76f69094b39 to test that the Python-Rust binding was working at all. At that time, the exported Python API was just the pure Rust functions, e.g. what you see in https://github.com/geopolars/geopolars/blob/16c3afe0954373bea9746b70a0df6b9dfe3c8f98/py-geopolars/src/geoseries.rs. (So for example example.py probably would've worked if you changed the import to from geopolars.geopolars import centroid, but now that's a private API (though I haven't figured out how to change that underlying module name to geopolars._geopolars). Now we've added a Python part so that we can subclass polars.Series and that file hadn't gotten updated yet.

I just started to get to know this project and though binding are good place to start as I have more practice with python than rust. Do you see any particular issue that would be nice as begging ?

There's a lot of stuff to be done on the Python side. I think the first is to set up the structure for python tests https://github.com/geopolars/geopolars/issues/100. Then after that I've started work on interop between geopolars and geopandas https://github.com/geopolars/geopolars/pull/95. Also I've started on python sphinx docs https://github.com/geopolars/geopolars/tree/master/py-geopolars/docs, borrowing from both geopandas and polars docs, but that still needs to get cleaned up a bit and then get published to github pages.
There's a lot to do so whatever you're most interested in is fair game. Open/comment on an issue and let's discuss


github OAuth doesn't work

Immediately after installing the app, I tried to add a github account using OAuth (first option)
When I authorized the application through github, the application just returning to the "add an account" screen without adding the account
I then tried with a Personal Access Token, which worked fine. I then tried to add again the account with OAuth. This time, the account was added (and so I had two accounts, one with PAT and one with OAuth), but using it brings the following error (see screenshot)

Hey, I think this has been fixed in https://github.com/git-touch/git-touch/releases/tag/v1.13.0

Indeed that fixed it ! Sorry I didn't check versions first


subscription: Prevent default behaviour of stream creation for users not permitted to create streams.

Link to czo conversation
Basically, Previously if a user (not having permission to create streams) tries to open the stream-creation modal by pressing the Enter hotkey, the browser would incorrectly reload the page and then put the user back to Manage-stream modal.
The following pr resolves the mentioned issue by preventing the default behaviour of stream-creation modal if the user isn't permitted to create streams within the realm.

Screenshots

Before

After
(No action takes place here if I press the Enter key!)

Edit: Was difficult for me to concise the exact bug and write it down within the commit summary!

Updated the pr with the methodology explained here as it felt better in my opinion.

I pushed back here with a change that removes the form that was I think responsible for this buggy behavior.  However, doing so breaks some functionality; previously, if you entered text into the "Filter streams" UI hit Enter, it would open the "create stream" UI with the stream name prefilled; we probably do want that behavior to be implemented (probably via new JS).

Awesome! Tested it out and it works perfectly.

we probably do want that behavior to be implemented (probably via new JS).

Yup. seems like a nice follow up pr to this.

Can you try working on that follow-up logic in extra commits in this PR?  I might prefer to avoid merging this until then to avoid regressions.

Sounds good @timabbott! Added commit 0f10713c5b7005bf57577cce4bfdea5322dd7e5a to the pr.

Great, I extended this for a subtle corner case and merged this PR.
One small commit on the commit message: You can't reference the ID of a parent commit that is not yet merged, because it'll very likely be rebased before merging (resulting in the commit ID reference being broken).  So it's better to talk about "In the previous commit ...".
Thanks @aryanshridhar!

Great! Thanks for it :)