feat: adds config file and AuthTokenStorage

This PR extends the current config to a file instead, by a virtual file via addPluginTemplate we can import it, and set the options of it with functions for authStorage as #43.
While it does do it, there are considerations and changes I would like to ask from the maintainer @manchenkoff, as one doing it like this will break backwards compatibility, so we could instead have both ways, instead where one is a smaller subset of the other ( module doesn't accept functions, so no auth storage ). And secondly, I would probably use it to change other places, as to not use CSRF when using auth storages, maybe changing the login/logout paths and so on, would like thoughts on it.

Needs to fix the importing the helper function for type safety ( can't be in modules.ts ).

a few questions for @manchenkoff ...
Do we want to have the ability to store the CSRF token using the same method?
Basically useCookie() would be the default implementation of the AuthStorage.
Then would we have a config variable to select how we are sending the the "token" to the server?
Either as set-cookie header or Authorization header.
Because also we should not have credentials: include when not using Cookie mode.

Closes #33

Hey @fenilli, thanks a lot for the contribution! I will take a look in a couple of days and give feedback from my side. And also I'll check your questions @jjjrmy 👍

a few questions for @manchenkoff ...
Do we want to have the ability to store the CSRF token using the same method? Basically useCookie() would be the default implementation of the AuthStorage. Then would we have a config variable (mode) to select how we are sending the the "token" to the server? Either as set-cookie header or Authorization header.

Yes, ideally I would expect different implementations for different scenarios, so we can change the mode to one available from enum or something. In the case of Laravel Sanctum, we would have 2 options: cookie and token, based on the selected mode we should change the whole behavior of the plugin and not conditionally combine them.

or we can have a toggle mode for Cookie vs Auth Token, and use the default callback as localStorage for authToken unless overwritten within the config.

this is very similar to the approach you mentioned, but the problem with localStorage is that it does not work with SSR, and the whole point of the library evaporates 😄

This PR extends the current config to a file instead, by a virtual file via addPluginTemplate we can import it, and set the options of it with functions for authStorage as #43.

I've already asked about more details on that in the review, but is it the only way we can support callbacks or complex types in the configuration?

While it does do it, there are considerations and changes I would like to ask from the maintainer @manchenkoff, as one doing it like this will break backwards compatibility, so we could instead have both ways, instead where one is a smaller subset of the other ( module doesn't accept functions, so no auth storage ).

Sorry, this one is very confusing for me 😄 so which option do you suggest w/o breaking backward compatibility?

And secondly, I would probably use it to change other places, as to not use CSRF when using auth storages, maybe changing the login/logout paths and so on, would like thoughts on it.

Agree, also mentioned it in one of the previous comments. Since the module configuration has a set of common values, I would assume that you can reuse all things like login/logout endpoints and redirects with both modes - cookie and token. The only difference I see is how CSR/SSR handles the request, so behavior should be changed according to the selected mode in the config. For instance, when we have mode: cookie we still request CSRF and pass it as a token, but w/o token checks and the opposite for second mode: token - we pass token header w/o trying to enrich request with CSRF-related data.

I've already asked about more details on that in the review, but is it the only way we can support callbacks or complex types in the configuration?

Yes sadly it is a limitation of Nuxt config file, because they serialize it before sending to plugins, as stated here #2822.

Sorry, this one is very confusing for me 😄 so which option do you suggest w/o breaking backward compatibility?

Yeh I should have made a better explanation there, but basically because we can't pass anything that is not serializable via nuxt.config we can't have functions there like what we would need to implement an interface for token saving, so for having backwards compatibility, I can see two scenarios.

We would just add the configFile property to the module one, and merge both the options from nuxt.config and the config file options if passed.
We could have a discriminating union, where you can pass to nuxt.config the module options, or the configFile, for a possible more complete options.

Agree, also mentioned it in one of the previous comments. Since the module configuration has a set of common values, I would assume that you can reuse all things like login/logout endpoints and redirects with both modes - cookie and token. The only difference I see is how CSR/SSR handles the request, so behavior should be changed according to the selected mode in the config. For instance, when we have mode: cookie we still request CSRF and pass it as a header, but w/o token checks and the opposite for second mode: token - we pass the token header w/o trying to enrich the request with CSRF-related data.

Agree with this point, not sure about the mode tho, one thing we could do is make the storage instead of being a storage implementation, but a HTTP request transformer, you would internally still be able to make storage, but also change the HTTP request when using get to pass csrf or auth headers depending on what you're using there, and we would have a default implementation of this using CSRF.
What are your thoughts on these?

Yes sadly it is a limitation of Nuxt config file, because they serialize it before sending to plugins, as stated here #2822.

Got it, looks good to me!

Yeh I should have made a better explanation there, but basically because we can't pass anything that is not serializable via nuxt.config we can't have functions there like what we would need to implement an interface for token saving, so for having backwards compatibility, I can see two scenarios.

We would just add the configFile property to the module one, and merge both the options from nuxt.config and the config file options if passed.
We could have a discriminating union, where you can pass to nuxt.config the module options, or the configFile, for a possible more complete options.

I think I see the idea, so for me, as a user of this package I would say that the crucial part is the simplicity of the configuration and easy integration - what if we add tokenStorage only as a separate config file? In this case, everybody who uses the existing module with cookie-based authentication won't need to change anything, but for those interested in the token storage it will be enough to create a new file and define the implementations. This will allow us to merge the functionality w/o breaking compatibility and we'll be able to refactor/simplify it later.

Agree with this point, not sure about the mode tho, one thing we could do is make the storage instead of being a storage implementation, but a HTTP request transformer, you would internally still be able to make storage, but also change the HTTP request when using get to pass csrf or auth headers depending on what you're using there, and we would have a default implementation of this using CSRF.

Yeah, it is not necessary to have mode there, it was just an example for the concept. This way with transformers also sounds good.
To sum up, my main point is to keep this module as simple as possible for the end user and keep backward compatibility as much as possible for now

I think I see the idea, so for me, as a user of this package I would say that the crucial part is the simplicity of the configuration and easy integration - what if we add tokenStorage only as a separate config file? In this case, everybody who uses the existing module with cookie-based authentication won't need to change anything, but for those interested in the token storage it will be enough to create a new file and define the implementations. This will allow us to merge the functionality w/o breaking compatibility and we'll be able to refactor/simplify it later.

I added back the options runtimeConfig and sanctum to the module, and made defu merge later with the config file. so now it should be backwards compatible with the addition of config files for complex configuration.

Yeah, it is not necessary to have mode there, it was just an example for the concept. This way with transformers also sounds good.
To sum up, my main point is to keep this module as simple as possible for the end user and keep backward compatibility as much as possible for now

Still need to think a bit on what should we do now to make it simpler for those "modes" to happen based on what, I think a transformer might be good, just need to think how would it transform and where it should do it, both for request and response, as we might need information from the response to be passed somewhere, so it can be saved ( for the token case ).
I was probably thinking in changing the AuthStorage idea to something more in line with changing the request/response headers. as the storage in itself is not necessary, it can be internal to the users project, he would just need to get the response from login to do anything he wants, and change the request headers, to send anything he needs for its implementation.
And we would use the cookies csrf as base if nothing is passed to it.

Also do you know how to export other functions from a Nuxt module? we can't really export from the main entry point, nuxt doesn't like that, and a helper function like defineSanctumConfig would be very helpful for type safety in the config file.

Also do you know how to export other functions from a Nuxt module? we can't really export from the main entry point, nuxt doesn't like that, and a helper function like defineSanctumConfig would be very helpful for type safety in the config file.

I don't but I looked it up in the repo you shared previously and it seems that they exported the utility function in the main file here. If it doesn't work, I would expect just something like Partial<SanctumConfig> in the config file

I don't but I looked it up in the repo you shared previously and it seems that they exported the utility function in the main file here. If it doesn't work, I would expect just something like Partial<SanctumConfig> in the config file

they export at the main of the ui package, not the modules nuxt one, that is why it works, for some reason nuxt doesn't like when you export anything else in their module main export.

Ok after thinking about a lot, there is one thing I might like and want opnions about @jjjrmy and @manchenkoff.
As of now this package is meant for basically plug and play default behaviour, and its really good for that, with that in mind, I like the simple JSON options that it has, but its meant only for cookies (csrf), but laravel sanctum also accepts token based calls, so it might be a good thing to accept also by default a simple token based approach.
What I was thinking on how to do it, as simple as possible and to keep backwards compatible, was to do a discriminated union for configurations, and let the user choose in the config via a manager if they want from cookie vs token, it will also enable to keep the config exactly the same but with one additional thing that users may tap into it, the storage and transformer.
For cookies is simple, just add storage as config for only the config file, use the base cookie, and if someone wants he can instead pass a function that follows the storage interface ( add, remove, get ) all the configuration would stay the same outside of those two new properties.
For tokens, we would make changes to the current code to use each manager correctly, and each manager would do its job to add/remove things from the headers, and token would have two main default strategies in the storage, local and cookies, but it can also pass a storage itself for mobile for example.
The transfomer would be useful for users to at the end of requests change the request options if needed for any reason they might think, making this package really simple if needed, but also accept complex instructions if needed.

Hey @fenilli

What I was thinking on how to do it, as simple as possible and to keep backwards compatible, was to do a discriminated union for configurations, and let the user choose in the config via a manager if they want from cookie vs token, it will also enable to keep the config exactly the same but with one additional thing that users may tap into it, the storage and transformer.

Your suggestion sounds good, I don't mind having it like that. The only concern I have is the compatibility with the current fetch implementation since there is no way to modify onRequest and onResponse interceptors after instantiation, please keep that in mind when designing custom transformers functionality.
Besides that, we are good to go! Feel free to push changes when you have time to discuss further! And thanks a lot for your participation, I appreciate that! 😎

Closing for now, we can re-open this one once we have updates or a new one

Sorry fo the delay, just having a lot of things to do, but I will try to make a new one this week, also thinking if we should have a way to have one or another, or possibility to have both at the same time.


Add html comments around bootstrapped state for closing script tags

https://stackoverflow.com/questions/28643272/how-to-include-an-escapedscript-script-tag-in-a-javascript-variable

Also add serialize-javascript


[Screen Ruler] Drawing virtual lines and the distances (pixels) between them

Description of the new feature / enhancement
Drawing virtual lines and the distances (pixels) between them
Scenario when this would be used?
When you want to see the distances between different objects - width of letters and objects.
https://user-images.githubusercontent.com/70388317/189499598-1b5919c4-65dc-4b75-83f9-4ae67858ec96.mp4
Supporting information
No response

@niels9001 sometimes you show images with lines like this. Do you create those by hand or do you have a tool for that?

@niels9001 sometimes you show images with lines like this. Do you create those by hand or do you have a tool for that?

By hand in Figma which is not super efficient.. the suggested feature by @NEKolev would be a great improvement!!


In the new update, the function of adding an avatar by id has disappeared

The function was very convenient my friend rarely plays but often makes avatars and sent me the avatar id, I could easily add it to my favorites.

You can look up an avatar by id again if it's public and favorite it there.

 i dont see button

There were three buttons so I deleted that one.

I see. Thanks for the help.


[Blockstore] deleting of base disks when overlay is still alive should be idemptent

need to fix bug
write test in nbs, that we can delete proxy overlay disk if it's base disk does not exists

bug fix - https://github.com/ydb-platform/nbs/pull/799


Add DTSTAMP field to entries

Fixes #15

This is ready to merge. I'll leave it open for a short while in case anybody has any feedback.

Checked on my setup. It works.

LGTM.


build: do not hide output of bazel yarn install

By default, the yarn_install output is hidden. We should enable
it so that we can see progress, or potential postinstall errors.

Failures related to this change?

@jelbourn Fixed. Looks like this is caused by an upstream Bazel bug (fix released soon).


Regarding XML documentation in code

Dear Volkanceylan,
Do you like XML comments on code?
If you like I can try to write some of them.

I don't like much to be honest, but don't have much alternatives :) I have some on base classes in Serenity.Core etc. and had actually much more before, but had to remove them as it was hard to keep them up to date.
Anyway i'd appreciate any help. Thanks.


Upgrade to Typescript 5.0

https://devblogs.microsoft.com/typescript/announcing-typescript-5-0/
https://github.com/fumiX/fuBlog/commit/56047e00ca4668918eac2cb2257a604ed3007b56

@thooyork This leads to an error in the client when npm install is being run and it is updated to 1.3.11:
https://github.com/fumiX/fuBlog/blob/a29bce440f7b860a8161db2b6a7de00b91be3aa0/client/package.json#L46

implemented.


call internal service from other class

Hi,
i need publish message from listener (or other class) in some cases, but i must call internal client, because in internal client we have stored properties with some data.
I tried register internal client as a service, put this service into $router->addInternalClient(SERVICE HERE) and call method from this service where i need BUT $this->session->publish() doesnt work, because session was empty..
can somebody help me? where im wrong, or what is better way? thank you!

@patie anyway you can provide a simple working gist of what you're trying to do?

solved by your symfony bundle ThruwayBundle, thank you


added MitoEM challenge

Hi Nick @sofroniewn,
I'm just suggesting to add another EM swgmentation challenge Martin Jones @martlj just pointed me to.
Best,
Robert

Amazing! Great one, keep them coming!! Thanks


[SSR] SSR and Counts

I'm using the publish-counts package to publish a count of how many total posts exist on the server to the client.
Publish-counts only works on the client, so it doesn't work when called server-side with FlowRouter-SSR. So I decided to do this instead:
const totalCount = Meteor.isClient ? Counts.get("totalPostsCount") : Posts.find().count();

But it seems like even when called on the server, Posts.find() returns the data that would be published to the client, not the total data available server-side. Is this expected behavior? Or am I mistaken?

@SachaG that's a feature. In the server (with SSR) you can't access to the whole database. You only have access to the data fetched from publications.
I assume, you can can Counts.get from the server as well.
I'm doing a blog post today, you'll get more info on designing a SSR app with that.

OK, that's what I thought. Any way to bypass this? Maybe Posts.findAll() or something? Anyway I'll wait for the blog post (but apart from that, SSR now works in Telescope Nova!)
And no, Counts.get doesn't work on the client. See https://github.com/percolatestudio/publish-counts/issues/80

@SachaG You shouldn't bypass that. That's the idea. In the server, SSR is also just like the client for data.

I understand the principle, but how else can I deal with this issue? Writing Counts.get("myCount") on the server doesn't make sense, because myCount only gets registered inside the publication – which is not called on the server… So it sounds like the publish-count package would need to be refactored quite a bit, but in the meantime I was hoping there would be an easier fix.

Actually, it don't need much refactoring. Just run this code on the server as well.
See: https://github.com/percolatestudio/publish-counts/blob/master/client/publish-counts.js
Then Counts.get also works on the SSR context. That's why we build FlowRouter SSR in the first place :)

I might be wrong but I thought @tmeasday was saying it's not that simple?

That's possible because we created that.

I hope we can close this since we are clear with how FlowRouter SSR do things.


Show modal near clicked node instead of centrally

This PR changes the positioning of the modal in the generated hyperlinked twin. Currently it shows centrally on the page with an overlay on the rest. This PR moves the modal below the clicked reference/definition. When there is no space below the node, it will position above it instead.
Using position: absolute and changing the margins of the modal, it is positioned based on the information from the clicked node. Any click outside the modal will close it.

The original positioning is good and indeed simpler. I agree that it suits
this application better, now that I think of it again :)
Op do 9 nov. 2023 11:16 schreef Peter Mosses @.***>:

@.**** commented on this pull request.
In statix.lang/trans/generation/docs/modal.js
https://github.com/pdmosses/nabl/pull/1#discussion_r1387787801:

// Make the modal contents visible
modal.style.display = "block";

// If the modal is outside the page, show it above the button

On a wide screen, centring the modal has the advantage of leaving the left
side of the page content completely visible. Keywords and declared names
tend to be on the left.
On a small screen (e.g., mobile) the modal is likely to take the whole
width, and putting it near the top shows as much of it as possible.
So I'm wondering whether it might be better (and simpler) to revert to the
original positioning?
—
Reply to this email directly, view it on GitHub
https://github.com/pdmosses/nabl/pull/1#discussion_r1387787801, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AGABTZAMDPWHSUYCXWZGS6DYDSUPHAVCNFSM6AAAAAA7DQVFQKVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMYTOMRSGE4TIMJQHA
.
You are receiving this because you authored the thread.Message ID:
@.***>


build MSI packages

It would be great to have a MSI-based installer so that the application could easily be deployed using Active Directory Group Policy software install.
This is not trivial, especially not, because we are building for Windows on Linux.

[ ] build MSI packages next to the executables
[ ] maybe just wrapped a silent/quiet InnoSetup installer into the MSI
[ ] using a Group Policy Object under Microsoft Active Directory
forward the /component "xy" CLI argument to select individual packages ?

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/23385228-build-msi-packages?utm_campaign=plugin&utm_content=tracker%2F164029&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F164029&utm_medium=issues&utm_source=github).

This will not happen. The MSI concept is simply too different.
A simple wrapper for the InnoSetup executable isn't the real deal.
If anyone wants this, please provide an implementation plan.
From my side: Will not implement.


Add instruction to change user/pass on GCE

Or make it easier in some other way?
@saljam suggests as fields to the creation form maybe?

Adding them as fields would enlarge the form a bit, but on the other hand the users don't need to go into the GCE control panel at all afterwards unless they are adding ssl certs.

I'm just a bit annoyed that it will be one more bit of critical info (we already have their IP, default SSL key and cert) that transits through us. But I agree it seems like a win overall. I'll have a CL for it soon.

https://camlistore-review.googlesource.com/4436

What's the point of having usernames? Why not just make the username hard-coded to blank or some sane value?

We may be using that username as an attribute somewhere else, although I don't see why, since the gpg key id should be what really matters. I need to check to be sure.

Ok, afaics this username is only used for http auth, so we should be safe leaving it hard-coded. There's a bit of logic in pkg/serverinit/env.go that depends on the username not being blank, so I can't set it blank. I mean it would be easy to change, but maybe Brad had another intention behind this check that I don't know about.
I've set it to "camlistore", and removed it from the form. I'm not sure yet what's the best place to tell the user about it though.

At least on the same page that says "Okay, your instance will be ready soon. Click this URL..."

yeah it is on the success page, within the paragraph about changing the password. But I'm afraid it's not very obvious. Maybe I should move it to right after the URL to the instance.

Yeah, just a parenthetical after the URL would work.
On 29 January 2015 at 03:55, mpl<EMAIL_ADDRESS>wrote:

yeah it is on the success page, within the paragraph about changing the
password. But I'm afraid it's not very obvious. Maybe I should move it to
right after the URL to the instance.
—
Reply to this email directly or view it on GitHub
https://github.com/camlistore/camlistore/issues/573#issuecomment-71870888
.

yep done, I think it looks ok now, thanks.

83bb6bce78f5ef663dd1701def91f24dbb7dc5c2
not closing yet since there's a tiny bug left as a TODO.

the small password bug I was mentioning above is actually addressed too in https://camlistore-review.googlesource.com/4447

password bug fixed in e02ac6b36c05b3f102cda1c4da8fd823676ac930


when building the master it shows an error and on the newest release

$ make
Compiling from Windows_NT
DEVKITPRO corrected to opt:/devkitpro
DEVKITPPC corrected to opt:/devkitpro/devkitPPC
build/src/modules/module.c.d
/bin/sh: powerpc-eabi-g++: command not found
Makefile:196: build/src/modules/module.c.d: No such file or directory
make: *** [Makefile:240: build/src/modules/module.c.d] Error 1
i get that error when on master and a for the latest release that's basically the same but with libelf_shdr.c.d

That looks like your environment variables for DEVKITPRO and DEVKITPPC are set wrong. Can you check what these are set to?

fixed this a while ago sorry

How did you figured out how to resolve your problem ? I face the same issue and I don't find any solution.

I also figured out what was wrong, the devkitPRO/devkitPPC/bin folder wasn't set in the PATH env variable as it should have been.


Unique() implementation for Dask

Hello.
Is it possible to implement Pandas unique() for Dask platform? This will increase functionality.
Thank you
Felix

Does drop_duplicates work for you?

It looks like there is a dd.Series.unique method, but not a separate unique function.  Is this something you would be interested in contributing?  It should be fairly simple to add.

I am interesting as an end user. I am using unique to slice main data set into sub sets. With unique i am getting unique values and put them into list. After i am iterating through this list and subset from main data set rows meeting criteria df[df['A']==iterator]. Is it help?

Perhaps you can groupby the column you want to achieve the same result more efficiently?

@limx0 mentioned that pandas.DataFrame doesn't support unique.  Presumably drop_duplicates suffices.  Closing for now.

pandas.DataFrame.unique was added after this issue was closed.
Properly supporting it in dask sounds somewhat difficult, but I haven't put much thought into that.

The groupby/apply functions can be pretty spendy, but vital. Either way, Dask is awesome, thanks so much for all the hard work :smile:

It may not seem obvious, but for the Dask DataFrame to use Pandas DataFrame methods, you add .compute() to the end of the method: df_name.column_name.unique().compute()
Sources:
Dask Documentation - DataFrame
Dask Documentation - Managing Computation


Add TLS support to common-web-ui backend

https://github.ibm.com/IBMPrivateCloud/roadmap/issues/37646

/lgtm


nodejs - language plugin - shell isolation

Integrate node-threads-a-gogo in the nodejs language plugin and execute each shell in a different thread.

Looks like node-threads-a-gogo does not support windows


Feature/Add inner name component to truncate long names

This PR adds truncation to long file names rather than wrapping which leads to issues with padding, there seems to have been an attempt in the less to add text overflow etc, I've added a styled component to render the name as the explicit styles are needed on the component itself (which is why this wasnt already working) and also an explicit width is necessary for the text overflow to kick in but setting a static width forces all tabs to be at that width which is visually undesirable. This component renders a width only if a file name is longer than 50 chars and prevents wrapping of the text
output:

Cool, thanks for fixing this @Akin909 !

💯 merging :)


Fix dynamic version resolution

What this PR does / why do we need it:
This PR fixes the issues we're having when using poetry-dynamic-versioning to peg project versions to Git tags.
Release Notes

Fixed issues with dynamic versioning (from git tags)

What type of changes to the API does this change introduce?
No user-facing changes.
Checklist

[x] I've read the Contribution Guidelines
[x] Updated the appropriate sections of the documentation.
[x] I've added automated tests covering all success and error scenarios.

Codecov Report

Merging #23 (6616520) into main (c34960b) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #23   +/-   ##
=======================================
  Coverage   99.92%   99.92%
=======================================
  Files          53       53
  Lines        1304     1304
=======================================
  Hits         1303     1303
  Misses          1        1

Continue to review full report at Codecov.

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


MediaStreamRecorder got 0 blob size these days.

env:
recordrtc:  5.4.2
Chrome: 61.0.3163.100 (Official Build) (64-bit)
OS: Mac 10.12.5
I'm using MediaStreamRecorder for few months, it works fine. But these days, I got error when playing audio due to audio blob size is 0.
For init:
// stream comes from webrtc
// navigator.mediaDevices.getUserMedia({audio: true})
const recordRTC = RecordRTC(stream, {
  recorderType: RecordRTC.MediaStreamRecorder,
  mimeType: 'audio/webm'
})

In start recording button:
recordRTC.recordRTC.startRecording()

In stop recording button:
recordRTC.stopRecording(url => {
  this.audioUrl = url // add url for <audio> here
  const blobData = recordRTC.getBlob();
  // Use blobData here to create audio file for uploading.
})

I tried your other simple demos for audio record. most of them are recorded audio as mime type audio/wav, they are all silent, I dont know why...

Did you try this one?
You may need to pass custom sampleRate and/or bufferSize as well.

@muaz-khan , yes, sure. I can recording and playing record on your most demos, but can't hear anything on my mac chrome.
BTW. I tested my issue on windows chrome, looks like everything is OK, (as I have no micphone, I only tested the function, worked correctly like before)
But on my mac chrome, add the sampleRate and bufferSize still not worked, I still got blob size: 0.
An interesting thing is that, the MediaStream will be stopped by itself in a few seconds after you open micphone if I only set audio to true. e.g.
navigator.mediaDevices.getUserMedia({audio: true}).then(stream => { //... })

you can try to run this script on chrome console, obviously you can see that the stream stopped on Mac, but still work on Windows... I guess this maybe the root cause... but I don't know why? And how to fixit 😢

Solved, not sure, but maybe the OS and Chrome problem, not this repo's issue.
I upgrade the mac os from 10.12.5 ->  10.12.6, Chrome from 61 -> 62, solved.


Cleanup build-init subproject

Cleanup of the build-init subproject before doing further improvements/changes:

Address compile warnings shown in IDEA
Make Maven2Gradle class directly use Maven's POM model instead of printing the model first and then using Groovy's Json slurper.
Convert the improved Maven2Gradle to Java: it was the last Groovy production code class in the project.

Note: there is still some ugliness in Maven2Gradle.java which requires further changes to other parts of gradle-init to fully resolve it. This will be done as part of follow-up work.

@bot-gradle test this

OK, I've already triggered ReadyForMerge build for you.

@bot-gradle test this

OK, I've already triggered ReadyForMerge build for you.


Add Support .NET8

Summury
I want support net8.
Background
Nuget page is said net5 is compatible target framework.
And net8 is Included target framework(s) (in package).
But actual, there is no support for net8.
Download page is now .NET8.
Expected
Can add Spectre.Console with dotnet add main package Spectre.Console command.
Target is like this main.cproj.
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net8.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

</Project>

Actual
❯ dotnet add package Spectre.Console --version 0.49.1
  Determining projects to restore...
  Writing C:\Users\who\AppData\Local\Temp\tmpfxg1n3.tmp
info : X.509 certificate chain validation will use the default trust store selected by .NET for code signing.
info : X.509 certificate chain validation will use the default trust store selected by .NET for timestamping.
info : Adding PackageReference for package 'Spectre.Console' into project 'C:\Users\who\Documents\GitHub\Shmphin\main\main.csproj'.
info : Restoring packages for C:\Users\who\Documents\GitHub\Shmphin\main\main.csproj...
error: NU1100: Unable to resolve 'Spectre.Console (>= 0.49.1)' for 'net8.0'.
error: Package 'Spectre.Console' is incompatible with 'all' frameworks in project 'C:\Users\who\Documents\GitHub\Shmphin\main\main.csproj'.

Thanks
I'm currently learning C# and may not be able to contribute to this project.
But I want use Spectre.Console in my project LTS.
Spectre.Console is Awesome project, Thanks for all contributers.
If I can contribute, I'd be happy to help.

@RobertZFord Thanks.
My dotnet nuget list source was No sources found.. My enviroment is fixed by these commands.
dotnet nuget list source
dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org
dotnet nuget enable source nuget.org

I've achieved my goal so I'll close it.Thank you for your trouble.


UPDATE storage-blob-scalable-app-upload-files.md

Instead of:
"This tutorial is part two of a series. This tutorial shows you deploy an application that uploads large amount of random data to an Azure storage account"
I think the below sentence is a little bit more complete:
"This tutorial is part two of a series. This tutorial shows you how to deploy an application that uploads large amount of random data to an Azure storage account"

Learn Build status updates of commit 52db0d3:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/storage/blobs/storage-blob-scalable-app-upload-files.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel


Use JsonDataConverter for internal communication

We need to write some tests for custom data converters.
I suspect that this won't work out-of-the box right now because we're using data converters for internal structures and we're assuming that converters honor the Newtonsoft [JsonProperty] and [JsonIgnore] property attributes which of course other converters won't do.
I believe we'll be able to address these cases by explicitly using the default Newtonsoft based JsonDataConverter for internal code rather than any custom one specified by the user.

This really only impacted synchronous signals.  I though this might also impact cadence-proxy message serialization but we already hardcoded that to JSON.NET.


Add Practical Javascript

This course has given a number of people I know a second chance at learning programming, I can't recommend it enough. Unlike some of the other recommendations in the Vanilla JS tutorial list, this one is very well-suited to beginners.

Great addition - thanks! I'm thinking I should maybe break up the JS tutorials into different tiers...intermediate...beginner, etc.

That's a really good idea. Eloquent JS and YDKJS are excellent resources, but ill-suited for most beginners.


ARROW-13735: [C++][Python] Creating a Map array with non-default field names segfaults

The segfault only happened in Debug build (which is why some weren't able to repro) because it was from a failing DCHECK on this line:
https://github.com/apache/arrow/blob/e734856676a00335f3dfe79899a995d87286f5a9/cpp/src/arrow/array/array_nested.cc#L193
The LHS of the DCHECK is missing field names, while the RHS has them.
The basic problem is that MapBuilder doesn't preserve field names when creating the array. This PR fixes that.

Thanks for the update! I rebased and will merge if CI is green.


features

Find a way to exclude flux points which are not useful

Well, this is true if we trained like this:
From spectrum to parameters.
But since we train the other way, are you sure you want to remove flux points? If that is the case, I believe we can use something like this feature selection.

That's a very good question. Maybe a term like logg**2 is not doing much.


[BUG] Wrong order of next() in Task.when(), Task.on_success, Task.on_failure

Shall we change this line to  return self.next(other) ?
https://github.com/argoproj-labs/hera-workflows/blob/ebd7ac27ce26328f1de4bc669b4d0c710f11dd5e/src/hera/task.py#L375
So as the return statements in when(), on_failure().

Addressed in https://github.com/argoproj-labs/hera-workflows/pull/129


SWORD service publish interface inconsistent with spec

The spec specifies the POST endpoint for SWORD should be /swordpub and that the href attribute of the collection element should be the URL of the root node.  The code currently has the POST interface be at /swordservice and the href attribute also be at nodeurl/swordservice.  One of 2 updates can be made

The LR spec needs to be changed to have the href use nodeurl/swordpub
and the code needs to be updated to have POST to /swordservice return a 405, accept the POST as /swordpub, and return nodeurl/swordpub as the href attribute
2)
Update the LR spec so that the POST for SWORD publish goes to /swordservice and the href is set to /swordservice

Seems like fix #1 is the way.

Will be included in next release


make schema compare test unstable

Pull Request Test Coverage Report for Build 250147472

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 38.966%

Totals

Change from base Build 249396746:
0.0%

Covered Lines:
19141

Relevant Lines:
44813

💛  - Coveralls

please also mark this one as unstable, it is also failing occasionally.
Object Explorer integration suite
Standalone database context menu test


drum kit game

Describe the project
A clear and concise description of the project you are going to add to this repository.
Issue Type:

[ ] Bug Report
[ ] Feature Request
[ ] Documentation
[ ] New Project

Additional context
Add any other context or screenshots about the project here.
Screenshots

If applicable, add screenshots to help explain your problem.

I want to work on this project

I want to work on this project.

I want to contribute to this project. Please assign it to me.

@leesha19 Games are not allowed


Avoiding authenticated user with expired access token in BlazorServer sample

What issue does this PR address?
Avoiding authenticated user with expired access token in BlazorServer sample
Important: Any code or remarks in your Pull Request are under the following terms:
If You provide us with any comments, bug reports, feedback, enhancements, or modifications proposed or suggested by You for the Software, such Feedback is provided on a non-confidential basis (notwithstanding any notice to the contrary You may include in any accompanying communication), and Licensor shall have the right to use such Feedback at its discretion, including, but not limited to the incorporation of such suggested changes into the Software. You hereby grant Licensor a perpetual, irrevocable, transferable, sublicensable, nonexclusive license under all rights necessary to incorporate and use your Feedback for any purpose, including to make and sell any products and services.
(see our license, section 7)

Access token lifetime and session lifetime are orthogonal concerns in general.
Can you describe the goal and use case? The access token should get refreshed automatically when they would be used. Are you seeing something else?

The access token in my scenario is used, not only to access API endpoints, but to define the look and behaviour of the UI by claims.
The user with an expired access token should not be able to navigate the UI as if he were still authenticated, so if the access token is refreshable, my commit will get a new access token by https://github.com/DuendeSoftware/Duende.AccessTokenManagement/pull/133/files#diff-114e4aded873c9dd081b42b831bad3aa1e2c6d1fa811487ad9dc9d082ec86c79L21
In some cases the new access token will bear different claims, so the UI will change.

The claims in an access token aren't  meant to be consumed by the client application or to provide authentication. Access tokens delegate authorization only, and are "opaque to the client". In other words, the app should use the access token when it calls an API, only.
An openid connect id token can convey information about the authentication event, and front channel or back channel logout notifications can tell the application when the user's session ends at the OIDC provider. And the userinfo endpoint can provide user claims on the fly. These are the mechanisms that we support (and that comply with specs) for doing session management.
In general it is valuable to separate the token lifetime from the session lifetime. Token expiration (and refresh) is a common occurrence, and doesn't need to cause the session to end.

I know, but in fact (e.g. https://github.com/enkodellc/blazorboilerplate/blob/master/src/Shared/BlazorBoilerplate.Infrastructure.AuthorizationDefinitions/SharedAuthorizationPolicyProvider.cs) it is common to use claims to define policies.
These policies are used in Blazor AuthorizeView to define UI behaviours and despite the theory this is a pratical use, in fact this PR affects Blazor Sample only. (I am not using your identity server)
https://learn.microsoft.com/en-us/aspnet/core/blazor/security/?view=aspnetcore-8.0

It's true that policies based on claims are commonly done. However, an OAuth access token is not the standards based mechanism to convey those claims. As I say, some combination of the userinfo endpoint, id token, and logout notifications is my recommendation (and what the standards recommend). Non-standard things are not necessarily insecure, but the specs act as pre-vetted threat models, so doing the standard thing makes it easier to do the secure thing.

So in Blazor Server sample, if you refresh the index page is ok that in
https://github.com/DuendeSoftware/Duende.AccessTokenManagement/blob/main/samples/BlazorServer/Plumbing/CookieEvents.cs#L22
token.IsError == false when token is expired ?

Hmm, that looks like a bug in the sample. I guess the intent is that, if the token store fails, that's indicative of an error. The problem is that the token store in this sample isn't distinguishing between a token that needs to be refreshed and an actual failure.

Yes - IsError would be true if there was an actual failure to obtain tokens. The token expiring (and this needing renewal) is normal and not an error.

if I use UserAccessAccessTokenManagementService  instead of ServerSideTokenStore
isError == true only if the token cannot be refreshed, I prefer this behaviour, it is more logical to me.
Consider the ServerSideTokenStore  is injected into UserAccessAccessTokenManagementService  and isError returned by ServerSideTokenStore  is not used at all.

There's a lot of discussion here. I recommend this is continued as an issue over on our foss repo and this repository is being archived soon. Thanks.


REST API Example

This code creates the logic app workflow code to call a basic API based on a parameter file that is fed through an App Setting.
I have included a tests.http file to see what the webhook urls are as well as test things out locally in case the webhook.site service decides to recycle or remove my urls.
Updated the app deployment's yaml to include a second app setting called APIBaseURI to pass in to the logic app and it should yield the appropriate flexibility to override and change the end point URLs.
TODO: the deployment yaml doesn't take environment into consideration directly yet.  I'd like to discuss a good implementation for that part.
Keeping issue #1 open until we decide how to address that requirement.

@karlrissland let me know if you are good with accepting this change into the repo as-is, or if you want to connect on how it may best make sense to change the URL of the app setting in the pipeline based on the environment selected.
Since it is three very different URLs the only way I could think to do it, would be to do some kind of conditional logic in the yaml which feels hacky...since it isn't as straightforward as url{env}.something.com/api/ etc.


add license to /licenses

Closes https://github.com/SeldonIO/MLServer/issues/820

tested locally

/retest


Add Gitter icon to social media page

The social media icons all live in an html file.
You can see them on the homepage, and the middle one, gitter, is missing.
There are plenty of svg gitter icons out on the web, but whenever I try to put them in this file the image that shows up in the circle is super tiny.

I removed this from the homepage because it was broken but if someone can fix it we could add it back. https://github.com/actsecure/actsecure.github.io/pull/23/commits/11be9591ff511ea6ee1b85cc50a5f83b8abfe30a


Typo in System settings view

/system_settings has a typo:
"Crital' instead of 'Critical' for SLA: "Crital Finding SLA Days "*

can you assign me this issue?


Fix bug in feed filter for ELL educators

thanks sorbet! https://github.com/studentinsights/studentinsights/pull/2529

selfie


Add Docker managed plugin for Azure Unmanaged Disk

Introduce the azureud Docker managed plugin. The Dockerfile for azureud needed to be custom so that it could add the lsscsi package, which is required for the driver.
The config.json file also sets the exe timeout for libStorage to 120 seconds by default, which is what we recommend in the driver documentation. The driver documentation has an updated link on how to create the Azure App Registration, as the hashicorp doc that we linked to before appears to have moved.
Fixes #817

Codecov Report

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

@@          Coverage Diff           @@
##           master   #1049   +/-   ##
======================================
  Coverage    34.5%   34.5%
======================================
  Files          36      36
  Lines        2901    2901
======================================
  Hits         1001    1001
  Misses       1796    1796
  Partials      104     104

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 3dce0e4...853e463. Read the comment docs.

Hi @codenrhoden,
Once Travis-CI is happy please feel free to merge!


String interpolation failure with module imports in tremor-script

Problem
String interpolation fails with a runtime error when the script imports a module.
Steps
Run the following script from tremor-runtime main.
use std::random;
"{event} badger"

Output:
(main)$ echo '"snot"' | cargo run -p tremor-cli -- run interpolation_bug.tremor
    Finished dev [unoptimized + debuginfo] target(s) in 0.22s
     Running `target/debug/tremor run interpolation_bug.tremor`
error processing event: Runtime error in function string::format/2: the format specifier at 2288 is invalid. If you want to use `{` as a literal in the string, you need to escape it with `{{`
Runtime error in function string::format/2: the format specifier at 2288 is invalid. If you want to use `{` as a literal in the string, you need to escape it with `{{`

When the module import is commented out, the script gives the expected output ("snot badger"). Also, without the trailing  badger, the interpolation succeeds.
Notes
For now, string-concatenation with + works fine for these needs.
The issue is there in 0.8 as well.
(0.8)$ cargo run -p tremor-script interpolation_bug.tremor
    Finished dev [unoptimized + debuginfo] target(s) in 0.12s
     Running `target/debug/tremor-script interpolation_bug.tremor`
Error:
    2 | "{event} badger"
      | ^^^^^^^^^^^^^^^^ Runtime error in function string::format/2: the format specifier at 2288 is invalid. If you want to use `{` as a literal in the string, you need to escape it with `{{

(side-note: the old tremor-script binary outputs runtime errors better with location information and that should be carried over to the new unified cli).

It'll be fixed in 0.9, givent eh release time is around next week lets not bother with backporting it :)


Rename command adds "new_file_folder_path" to links

Hi!
I'm very excited about using markdown-oxide for PKM in Neovim. Thank you as always for your great work! I have a question regarding the behavior of the rename command.
When I set the "new_file_folder_path" to notes and run the rename command to change file1.md to file2.md, [[file1]] gets updated to [[notes/file2]]. Is there a way to prevent the "new_file_folder_path" value from being added so that it only updates to [[file2]]?
Reproduced steps
mkdir oxide-sandbox
cd oxide-sandbox
echo 'new_file_folder_path = "notes"' > .moxide.toml
mkdir notes
touch notes/file1.md
echo 'a [[file1]]' > index.md
vim notes/file1.md

↓
:lua vim.lsp.buf.rename()<CR>
file2<CR>

Expected index.md
a [[file2]]

Actual index.md
a [[notes/file2]]

Best regards.

Hey!
This is surely a bug;
Thank you for reporting.

great write up!

I am not working on v0 anymore, and this will be fixed in v1.

I change my mind. fixing now!


leaflet centres the map not correct round the markers

How to reproduce
Since I updated from leaflet 0.7.3 to 1.0.3. I have a problem with centring the map round the markers.

Only after resizing the windowbrowser the map is shown correct.
In leaflet 0.7.3 there isn't a problem.
Additional information:
http://stackoverflow.com/questions/43065090/leaflet-map-does-not-centre-correct/43068409?noredirect=1#comment73223830_43068409
http://stackoverflow.com/questions/36246815/data-toggle-tab-does-not-download-leaflet-map

Leaflet version I'm using: leaflet 1.0.3
Browser (with version) I'm using: firefox and chrome
OS/Platform (with version) I'm using: xubuntu 14.04
step 1
step 2

What behaviour I'm expecting and which behaviour I'm seeing
Minimal example reproducing the issue

[ ] this example is as simple as possible
[ ] this example does not rely on any third party code

Using http://playground-leaflet.rhcloud.com/ or any other jsfiddle-like site.

Hi, great to hear that you find Leaflet useful!
However, this issue tracker is used for reporting bugs and discussing new features. For questions on using Leaflet, please use gis.stackexchange.com or stackoverflow.
If you are really sure that this is a bug in leaflet, or a feature request, please change the wording to make it look like a bug report.

Hi Ivan,
Indeed leaflet is very nice.
What I understand from my discussion on SO between leaflet 0.7.3 and 1.0.3 there is something changed in leaflet with "handling of the container" that I have now anywhere a bug. In my opinion - because the other part - webtrees 1.7.9 - is still the same, the bug is in leaflet. That's why I reported it here.

Can you post a minimal reproducible example which fails with 1.0.x but works with 0.7.x?

Hi Ivan,
That is a bit difficult, because for that you need to have also webtrees. Or do you want to test it in webtrees?

What is "webtrees"?

webtrees is genealogical webbased software :) webtrees.net

Then this falls under the standard "no frameworks" blanket response.

Hi, and thanks for taking the time to open a bug report in Leaflet.
However, in this repository we only handle bugs in "vanilla" Leaflet. This means that we do not handle bugs which are specific to frameworks such as:

React
Ractive
AngularJS
Leaflet for R
Joomla
Wordpress
Ionic
Cordova
Vue
Electron
Polymer
...etc

Please understand that we only have the time and energy to test Leaflet in plain web browsers.
Please try to either reproduce the bug without using any frameworks, or submit a bug to the appropiate repo.

Hi, that was a standard answer, I'm sure that you are not able to type so fast :-)
I will made a report at webtrees.


Investigate discrepancy between assets stored in S3 vs NFS

I noticed some discrepancies in the number of assets while checking whether the overnight sync of assets worked (as part of issue #145).
We should work out why the number of files on S3 doesn't match the number of files on NFS.
Assets on S3
# List bucket content to file
$ aws s3 ls s3://govuk-assets-integration/ > integration-assets.txt

# Count of the number of objects in the bucket
$ wc -l integration-assets.txt
   64989 integration-assets.txt

Assets in the database on integration
> Asset.count
=> 63567
irb(main):002:0> Asset.unscoped.count
=> 65431

Assets on NFS in integration
$ find /data/uploads/asset-manager/assets/ -type f | wc -l
65431

I've just generated more up-to-date figures as follows:
$ aws s3 ls s3://govuk-assets-integration > integration-assets.txt

$ wc -l integration-assets.txt
   65087 integration-assets.txt

irb> Asset.count
=> 63649
irb> Asset.unscoped.count
=> 65529
irb> Asset.where(:deleted_at.ne => nil).count
=> 1880

$ find /data/uploads/asset-manager/assets/ -type f | wc -l
65527

I believe I have identified two reasons for the discrepancies. Here are some quick notes:

There are approx 1579 assets in the database which have no S3 object matching their uuid. All of these assets (and a couple of hundred others) are marked as deleted. We believe these were already marked as deleted when we did the initial upload to S3 and therefore were not uploaded. We should upload the files to S3 for these deleted assets.

There are approx 1137 objects on S3 whose uuid does not match any asset in the database. All of these S3 objects have a key of length 24 (e.g. 58cba21ee5274a16e8000030) rather than 36 (e.g. 00172d97-73b1-42dc-8c3e-7b90083f497b). We believe the former are a remnant from when we used the database ID vs a separate UUID as the S3 key. We think they can safely be deleted.

The above seems to add up, because 65087 (no. of S3 objects) + 1579 - 1137 = 65529 (no. of assets in db).
So I've created the following issues to fix these problems:

Upload assets marked as deleted to S3
Delete orphan S3 objects

Given the above, I'm now happy to close this issue.


Use SCF for loop for Scatter

Description of the Change:

Replace the C++ for loop with a SCF for  Op in order to avoid ballooning the code.
Replace the generated indices by a Value tensor, which introduces extract operations

[sc-46577]

Since the scatter operation has nothing quantum about it, I think its lowering pass should live in the catalyst dialect (our utility dialect) :)


HTYI: Game-Over off-center formatting for all tablet devices

This is occurring on both Samsung tablet and iPad, might be related to #173 breakpoint issues rather than platform-specific bug.

Now seeing this with the "wait for next round to start" message as well.

Centered on iPad, still slightly off-center on Samsung tab.


[Feature] Notify Tighten When Resources Expire

Summary
This PR adds a resource:expired --notify command scheduled to run weekly on Fridays at 6:00AM. When there are expired resources or resources expiring within 2 weeks' time, a detailed report is sent to slack:

When the command is run without the --notify option, an output of expired resources are printed in the terminal:

Resource::class Updates

added a days_til_expired attribute
added an isExpired and isExpiring helper method
added two new query scopes: scopeExpired and scopeExpiring - the latter will return resources expiring within the next two weeks

Other

a new migration was added to allow resources where can_expire is false to have a nullable expiration_date

Resolves #406

Currently, all content will have an expiration 6 months from the date it was added. I wonder if we should consider different defaults based on the resource type e.g. course and video resources may change content/urls more often so we should check that those are good more frequently. Thoughts?

Currently, all content will have an expiration 6 months from the date it was added. I wonder if we should consider different defaults based on the resource type e.g. course and video resources may change content/urls more often so we should check that those are good more frequently. Thoughts? @darkboywonder @MarcyLina

🌞 yooooooooooooooo
Since this is new ground, I think we should stick with the default six months for everything and slowly adjust default dates for sub-categories that show a repeating pattern. I feel we might even add more sub-categories or tags that link to framework specifics. Then, we can set default expiration dates based on a more solid notion than the current categories, which are generic and don't genuinely relate to when they should expire. An example of this would be the content we link to in the Laravel documentation. We know those will need a new link roughly every six months, so we might want to add a sub-category tag like "Laravel" that we base our default on instead of just "Article" or "Documentation."

Since this is new ground, I think we should stick with the default six months for everything and slowly adjust default dates for sub-categories that show a repeating pattern.

@darkboywonder totally agree! I didn't think about this. Thanks for chiming in 😄

A very belated "I agree with Shawn" lol


Fix New Mobile Site Bug  - WETH to ETH

On Rinkeby, when I swap WETH to ETH I get the following bug:

Looked at it. This is a CORS issue from local development. As long as it doesn't appear in production it's not a big issue. To fix it locally you can set up ngrok while developing.


Weird illegal cyclic reference while building on 2.12

I just faced really weird illegal cyclic reference error when build my project on scala 2.12.1
Code is here: https://github.com/danslapman/shapeless-play-json/blob/master/src/test/scala/shapelessplayjson/strict/RecordDeserializationTests.scala
It compiles without any trouble on 2.11.8
I may be a scala regression, but it also can be an issue in record macro expansion, so I'm submiting it here

@danslapman it appears to be scalac trying to double-lock a symbol (it compiles with -Yrecursion 1 for me).

@allisonhb thank You, -Yrecursion 1 worked. Could you please explain, why it happened? Is it a regression I may report to scalac?

Yes, I would very much like to know what's going on here ... it's the first time I've seen a problem of this sort.

@allisonhb BTW, I would like to attribute you properly, both for your shapeless contributions, and also for the scala/scala PR of yours that I'm going to include in the next TLS releases. No problem if you'd rather not, but a PR against CONTRIBUTORS here would be very welcome.

Thanks, @milessabin! I'll PR it in if/when I get this fixed...
I'm still grubbing around in the dirt for the problem here, but it appears that something is causing scalac to do an implicit search while typing type Book = ..., during which it stumbles upon your implicit val, looks at the type, and chokes because it was in the middle of initializing the symbol for Book.
This compiles fine:
trait Reads[A] {
  def read(s: String): A
}
trait KDecl {
  import shapeless.record._
  type K = Record.`'key -> Int`.T
}
object Foo extends KDecl {
  implicit val rk : Reads[K] = (s: String) => ???
}

but this fails:
trait Reads[A] {
  def read(s: String): A
}
object Foo {
  import shapeless.record._
  type K = Record.`'key -> Int`.T
  implicit val k : Reads[K] = (s: String) => ???
}

My first suspicion was actually mkTypeCarrier for calling c.typecheck, but it appears that we fail even before then, which is strange. I'll let you know what else I find and if there will be a pr to here or scala/scala...

Good stuff!

Heh, thanks also for the withPropagateCyclicReferences...

Fixed in scalac by scala/scala#5762


Allow tags from the host to be automatically added

We presently have flags to automatically add metadata from GCP and EC2 as tags, this adds add-host-tags which adds some tags from the underlying host, namely hostname, os and a new one machine-id.
Often people want to target a specific machine, such as in https://github.com/buildkite/agent/issues/773. This gives them an easy way to enable a per-host tag in their agent metadata.
Machine id is calculated with https://github.com/denisbrodbeck/machineid from underlying host metadata, generally UUID's. This means if you have multiple agents on the same host you will get the same machine-id tag. It's portable across all the operating systems we support.
The agent also reports the machine-id via the agent registration api so that we can use it to co-ordinate things like shutting down all agents on a machine in future, like in https://github.com/buildkite/agent/pull/590.

I expected that to be much more contentious @keithpitt!

@lox as in, I might have more feedback?

I figured there might be a reason why you didn't do this one in the first place. Something something "having host tags leads to builds that target the same agent as they previously ran on".

Oh right! I always like having an answer to something, even if it's discouraged. What you've done here makes stuff possible that was (harder) before. Fine with me!

Agreed!

I'm just waiting on https://github.com/denisbrodbeck/machineid/pull/4, otherwise I will use my own fork.

Is there a docs PR to link to see how to use this?


fix(bulk-import): set initial value of annotations, labels and specs

Found this bug when testing #2013 .
Fixes: RHIDP-3553
Annotations, Labels, and Spec text field will have initial values as shown in Preview entities section.
Screen recording:
https://github.com/user-attachments/assets/f09c68dc-06bd-41ba-9db9-e7dae94a62af

/lgtm


Error 1 see post it

KRASP1 query in CUDAlign54 produces empty network tabs with errors. See post it for exact options to reach bug while running program.

KRASP1 returns nothing from GUDAlign54. "if else" statement is added. If returns 0 nets, then pop up an error alert.


Update ember-cli

@homu r+

:pushpin: Commit d96e805 has been approved by poteto

:hourglass: Testing commit d96e805 with merge 398a9cf...

:sunny: Test successful - status


nextTick not found

import { nextTick } from 'vue'; ( in vue-gtag.esm.js)
No longer working ?

There's a template to feel in when opening an issue, and there's a reason for that. Your question is too vague. Please re-open this PR once you can feel in the template


ibus-engines.rime: init at 1.4.0

Motivation for this change
Adds an additional ibus engine.
Things done

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

[x] NixOS
[ ] macOS
[ ] other Linux distributions

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

Thanks @SuperSandro2000! Applied your formatting suggestions. I normally just use nixfmt to format my nix code. Do we have something similar we use at nixpkgs?

Thanks @SuperSandro2000! Applied your formatting suggestions. I normally just use nixfmt to format my nix code. Do we have something similar we use at nixpkgs?

I normally use https://github.com/nix-community/nixpkgs-fmt but it puts ever input on one line or one in each line which does not scale well with big packages.

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

1 package blacklisted:

tests.nixos-functions.nixos-test

1 package built:

ibus-engines.rime

Duplicate of https://github.com/NixOS/nixpkgs/pull/87735.

Ahh, didn't see that one. Feel free to close this one in favor of the other

Closing in favor of #87735


Add HTML Minify

Add HTML Minify, 1 Template of 1 Line.
Up to the user when and were to use it.
:slightly_smiling_face:

Ok.

Current implementation, resp minifyHtml(genMainAdmin(c, genPlugins(c))), only saves bytes - why use it?
When should the user use it? I can only think of plugin-developers.

Yes, like any Minifier, the bigger the HTML the bigger the saving, but yeah.
I can remove it from the routes.nim and leave it to the Plugin developers.
:slightly_smiling_face:

:shipit: :grey_exclamation:


Simplifying an unifying some common frontend code.

Possibly dumb question that I've been wondering for a bit: how feasible would it be for the generated code/web-common to be "real" javascript packages and to wire them in as dependencies, rather than having to copy them into the source tree during the build?

The underlying problem nix is building from the plutus-playground-client directory, so we have to get it in somehow. We can't reference it directly because nix has filtered it out.
So the question becomes, what's the best way to get access to this extra directory, guaranteeing that it's come from the same git checkout, in a way that's not wildly different from the development workflow?
I can't see a way to do that that makes sense.
I can imagine a world where you dynamically could pass a nix reference to the PureScript package list, to get that included. That would satisfy the "same checkout" requirement neatly. But it introduces an extra step in the dev workflow, and I don't think it actually be any cleaner than just copying the tree.
I'm open to ideas though, of course. 🤔

Doesn't purescript have a workflow where you have multiple "local" packages? So web-common could be a local package? And then presumably we could wire up the nix to supply it appropriately.
Basically, it seems like we can handle this case for e.g. shared Haskell code in local packages, I'm surprised if we can't do it in purescript.

That's what we do currently. But in hydra ../web-common/src/**.purs doesn't exist, because nix hasn't supplied the whole project as src, just the plutus-playground-client subdirectory.

That's what we'd want we were passing in the source. Shouldn't there be some way to pass it around as a "built" dependency that we can feed to spago or whatever?

That wouldn't be through Spago. The PS toolchain always assumes dependencies are source files.
(It's possibly to pass around built 'binaries'. I did it for the bazel experiment. But I wasn't that happy with the result.)

That wouldn't be through Spago. The PS toolchain always assumes dependencies are source files.

But e.g. the ones you get from NPM get magically stitched into node_modules for you, so you don't have to copy them around. (I know we're not really using mkYarnPackage how you're supposed to, but maybe things will be nicer in the future.) I guess I mean: could web-common be like the NPM deps?

@michaelpj I think the question is what would it buy us? It is a bit weird at the moment and somehow feels wrong but distributing it as another module would make development slightly more difficult and for what?

IDK, hygiene? I'm mostly asking because it made my life harder last time I tried to modify purescript.nix, but it's not a big deal.


Determine swipe right at the last item in carousel

Is there any way to determine that a user is swiping right at the last item in the carousel? In my specific use case, I want to redirect them to another page if they swipe right at the last item. Thanks for any help :)

I have the same requirement
<Carousel
...
onSnapToItem={index => {
           this.setState({ activeSlide: index });
     }}
   onScrollEndDrag={event => {
       const { contentSize, targetContentOffset } = event.nativeEvent;
       //Detect when swipe right at the last item
        if (activeSlide === lengthSlide-1 && targetContentOffset.x >= contentSize.width * (lengthSlide-1/lengthSlide)) {
             // Do sth
            }
        }}
/>

Oh thanks a lot for your kind response @ManhVuTien ! I will check it out!

Oh thanks a lot for your kind response @ManhVuTien ! I will check it out!

I have change to (lengthSlide - 1) / lengthSlide not lengthSlide - 1 / lengthSlide

one question, what do you mean by length slide? Is it the item width? @ManhVuTien

one question, what do you mean by length slide? Is it the item width? @ManhVuTien
It means the number of item in the carousel

the condition is not becoming true for me somehow, am I missing something? @ManhVuTien

In my case it is fullwidth

the condition is not becoming true for me somehow, am I missing something? @ManhVuTien
onScrollEndDrag={event => {
                    const { contentSize, targetContentOffset } = event.nativeEvent;
                    console.log("Content Size, targetContentOffset - ", contentSize, targetContentOffset);
                    //Detect when swipe right at the last item
                     if (isLastCard && (targetContentOffset.x >= contentSize.width * ((dummyData.length - 1) / dummyData.length))) {
                          // Do sth
                          console.log("END")
                          onNextTab()
                        }
                    }
                }

I get this from your formula

Can you so me itemWidth and sliderWidth?

Thanks for your reply, my item width is const itemSize = width * 0.8; and slider width is full width. @ManhVuTien

Thanks for your reply, my item width is const itemSize = width * 0.8; and slider width is full width. @ManhVuTien

(contentSize.width - width * 0.2) * ((lengthSlide - 1) / lengthSlide) if you don't have any margin/padding


Share this page incorrect address

For project view in the directory, the share this page link shares the COSA page and not individual project page.

Fixed in 1beedeb31cbed0db2124185be9b178a97e54e92e


[Q] why not implement UniversalSetupSNARK for Marlin

May I ask why ark_snark::UniversalSetupSNARK trait is not implemented for struct Marlin when all of its functions (including those of a trait SNARK) are being implemented with the same func signature?

Good points. We have the implementations of it in a work-in-progress branch (https://github.com/arkworks-rs/marlin/blob/constraints/src/constraints/snark.rs), but it has not been merged into the master branch yet.

Awesome! good to know that it's not because of some wacky edge cases or special consideration, and that the trait indeed provides reasonable fidelity to actual/concrete universal snark instantiation. 👍
Thanks!


✨ [Feature] maps.GetDeep

Before feedback (在反馈之前)

[X] There are no features that I want to submit in Issues (当前 Issues 中没有我将要提交的新功能)

Describe Feature (描述功能)
A new function can be added to get the value we want from a nested map.
data := map[string]interface{}{
	"first": map[string]interface{}{
		"second": map[string]interface{}{
			"third": map[string]interface{}{
				"key": "value",
			},
		},
	},
}

maps.GetDeep(data, "first.second.third.key")

It may be hard to do that, we need to make multiple assertions.


[AdvancedSearch] Sort menu is not rendered (props: orderableColumnList)

Current behaviour
With the version 0.13.0, the property orderableColumnList is not working anymore.
props = assign(
    {},
    require('./config/facet-config'),
    orderableColumnList: [
        {key: 'NOM', order: false, label: i18n.t('result.sort.nomDesc')},
        {key: 'NOM', order: true, label: i18n.t('result.sort.nomAsc')},
        {key: 'PRENOM', order: false, label: i18n.t('result.sort.prenomDesc')},
        {key: 'PRENOM', order: true, label: i18n.t('result.sort.prenomAsc')}
    ],
    require('./config/line-config'),
    {scopesConfig: require('../../../config/scopes')},
    {criteria: {scope: 'ALL'}}
);
[...]
 <AdvancedSearch
                cartridgeConfiguration={cartridgeConfiguration}
                groupComponent={Group}
                lineComponentMapper={lineComponentMapper}
                service={service}
                isSelection={false}
                {...props}
                />

I don't have the Sort menu:

Expected behaviour.
The sort Menu should be displayed

Versions
Focus-core: 0.13.0
Focus-components: 0.13.0

@durandx can you please double check this issue ? I tried to reproduce but I can't. I tested in the showcase, with your code, and I have the sort button correctly displayed.
Maybe it is a CSS issue ? Feel free to reopen if it's not the case.

We were in 0.12.4 in TFS at the time you tested. The 0.13.0 was only on my desktop, and I just pushed the new version in TFS 1 hour ago. (I wanted to test the new focus version (and with webpack) before commit)


Issue 996/Extended DecomposeCurrencyPair to support cryptocurrency pairs

Description
Extended DecomposeCurrencyPair in Forex.cs code, so that it supports up to 4 chars per symbol/currency. Modified tests a little so they also support 4 chars.
Related Issue

https://github.com/QuantConnect/Lean/issues/996
Motivation and Context

Cryptocurrencies tickers have 3 or 4 chars per symbol. Which makes pair string consisting of 6-8 pairs.
Unit tests in Lean fail because of this, since DecomposeCurrencyPair doesn't work on such strings.
Now currency pair strings can have length from 6-8.
Requires Documentation Change

Changed documentation above DecomposeCurrencyPair, also it's required to add cryptocurrency symbols into Currencies.CurrencySymbols for this to work.
How Has This Been Tested?

Testing environment: Windows 10, C#, no Python binaries installed.
Python tests were failing, almost all others are ok. Same tests pass as with freshly pulled Lean source code, so I assume I haven't broken anything.
I have modified ForexTests.cs tests a little, so be sure to check that one.
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Non-functional change (xml comments/documentation/ect)

P.S
This changes to code might make Lean engine slower. I don't know how often is this code called, so I didn't spent hours optimizing it. Might be good idea to make this splitting separate for cryptocurrency pairs only, to not interfere with Forex parts of code.
Checklist:

[x] My code follows the code style of this project.
[x] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.
[x] My branch follows the naming convention bug-<issue#>-<description or feature-<issue#>-<description>

I think I accidentally pressed 🔁 button, which switches branches. Didn't pushed anything yet from SourceTree.


updated translations

Japanese has 2 strings in English. I'll get that fixed up in a separate PR, coming tomorrow.


Masked elements zeroing motivation

Section 5:

Instructions writing vector shapes, write zero to the destination elements that are masked off.

This needs more reasoning. Why don't just leave masked elements unchanged? Why zero?
A user can easily fill masked elements with any needed value (not necessarily 0) using mask complement.

Why is 0 selected as a filling (neutral) element?
Why, for example, is not sequence 1, for initialization by the value of qNaN?

It’s to simplify the implementation of register renaming. If you don’t write the entire vector, you need to re-read the original vector to copy the unmodified values to the new physical register.
This should be explained in the commentary.
@aka-sps Producing the value 0 instead of -1 will occasionally shorten some handwritten code sequences, since it’s the additive identity.

@aswaterman
Add operation  is worst case (carry bits) in comparison with bitwise operations, especially for register elements of d and q  size, while bitwise operations can be executed for register elements parts independently.
Handwritten code can use and identity for -1 or or identity for 0 too.

[ ] The basis of identity should be discussed together with the motivation of using NaN-boxing.

I do agree that the chosen value should be carefully considered. Zero remains the obvious choice for integers, but the canonical qNaN is also a defensible choice for floats.

Writing 0s to masked elements is an optimization to simplify OOO microarchitectures. It does not belong in the vector spec, and I'll explain why below.
We used to think delay slots were a good idea -- a microarchitectural implementation issue creeped into the ISA definition. We now believe that branch prediction is better and handles the case of differing pipeline lengths more elegantly. The lesson learned from this was that microarchitectural features should not be exposed as optimizations in the instruction side effects.
In the same way, writing 0s might make OOO implementations simpler, but it also emburdens ALL implementations with a more restrictive implementation requirement that might preclude other forms of microarchitectural optimizations. If this sort of decision is being made, it needs to be justified with quantitative analysis, not with arm waving.
Here is my full argument:
(1) Writing 0s is counter intuitive to hand-coding and to compiler writers.
the unmasked version:
vaddi v1, v1, 1  // increments all elements
the masked equivalent:
vaddi v1, v1, 1, v0.t // increments all elements where v0.t==1, zeros other elements
People learning the ISA will expect the masked vaddi to only modify some elements of v1, not to modify all of them. But this is not so. I'm sure this will be the future source of aggravation for many novice programmers debugging their code.
Instead, the following code sequence is required to restore the expected behaviour:
vaddi v2, v1, 1, v0.t
vmerge v1, v2, v1, v0.t
This new sequence is longer (slower), and has the side-effect of using an additional vector register v2 (which may slow some code down due to extra spilling).
The advantage of being able to execute vaddi out-of-order is partially negated by the dependence of the vmerge on vaddi.
Macro-op fusion can't fix this, because it needs to write to both v1 and v2 as side effects.
This is a bit of a problem for compilers that want to use the fastest code sequence possible. In the case where v0.LSB == 1 for all i, the compiler would want to use the unmasked vaddi sequence because it is shorter; detecting this case adds a lot of effort to the analysis.
(2) @aswaterman claims "the vast majority of operations are unconditional". This is untrue. Any code that has an early exit feature, from computing fractals to doing viola-jones / adaboost style object detection, will have the entire inner loop being masked operations.
(3) @aswaterman claims "or have the mask bit set". This is just conjecture and is unproven. Again, code with an early exit feature starts by computing data on all elements, and gradually removes elements by adding them to the mask as they exit early. At the end of the loop, the vast majority of elements have the mask bit cleared, not set. And this is for long sequences of masked instructions (see (2) above).
(4) Writing 0s past VL and to elements that should be untouched takes effort to optimize in the microarchitecture. Likewise, making a microarchitectural optimization that effectively writes a scalar result to all elements, but only writes to one element, takes effort. These decisions make all vector implementations more complicated -- making it impossible or inefficient to create simple vector implementations. How should a simple implementation write 0s all the way up to maxvl? The simplest way is to take the maximum time to run, no matter what the value of vl. This is a huge performance hit on simple implementations. Instead, implementers are forced to create a gang of flip-flops that are to be used to indicate that a register holds a value of 0, and another gang to indicate a register replicates element 0, then extra mux inputs are needed to select either 0 or element 0 in the case these registers are set. For a simple implementation with 32 vector registers of 128 words, this requires 16384 individual flip-flops. If users want to create a vector implementation with a small number of lanes (even one lane can give 10x speedup on things like FIR), this is a huge overhead. Writing 0s is only an optimization to make OOO implementations easier, and by doing so all implementations are forced to pay a heavy price.
(5) Alternatives have not been discussed. For example, an OOO implementation could use macro-op fusion on the following code sequence:
vxor v2, v2, v2
vaddi v2, v1, 1, v0.t
It could then take this as a "hint" that v2 is to be written with 0s, and merge the 2 instructions into a single one. This does make OOO implementations more complex, but face it they are already complex and paying an area penalty, and at least it doesn't emburden all simple implementations with an counterintuitive requirement.
(6) No quantitative analysis has been done to show that writing 0s followed by a vmerge instruction is actually faster than doing the intuitive thing. In this era, I thought the whole premise of RISC was to ensure only the minimal definition was included, in order to make the common case fast, and ideally it would be justified with benchmarks. Are there any code sequences that justify the current decision to write 0s? These should be shared as part of the justification.
(7) Forcing implementations to write 0s makes it very difficult to implement other techniques to skip over masked computations entirely, like density time masking. Thus, a decision is being made to favour one microarchitectural feature (OOO) over another (density time masking).

@aswaterman
I agree with you that we should avoid the red herring.
For example, the premature and mandatory determination of the values as zero for unevaluated elements.
Or, for example, we should avoid encoding 376992 useful configurations by 8-bit values.
You offer your own kind of micro-architectural solution, based on renaming vector registers entirely, and not, for example, on renaming elements of these registers or on renaming slices/chunks of these vector registers.
And you can do it.
Unfortunately, in real tasks, apart from primitive elementwise operations, the number of elements requiring zeroing can be significant. We analyzed a number of algorithms for linear algebra, sorting, searching, Fourier.
For many of them, the power of the set of processed elements is less than "MAXVL".
So, element zeroing (masked or after vl index) can be a mass operation.
I (and the battery of my device) do not want this.
And I want to do it.
Unnecessary zeroing is not only energy, but also time.
There are two approaches to masked operations.

Functional approach calculates result for vector elements subset as vector of calculated values and does not involve the calculation of other elements.  An explicit merge is required.
Object-oriented approach is similar std::mask_array. An approach to renaming the entire register for this method is not suitable.

We should not resolve this issue without discussion and the views of other developers.
Proposed mandatory zeroing is Procrustean bed for future microarchitectures.
My simplest proposal: Let's leave non-calculated elements undefined.
If a common solution cannot be reached, then this question should be put to vote.

I don't fully accept the argument that writing 0s is necessary to make OOO implementations better.
Big OOO cores will presumably have 3 register file read ports in favour of fused multiply-add instructions.
Thus, for the vast majority of 2-operand instructions, they already have the ability to use the 3rd port to read out the previous destination register contents when implementing masked operations:
vadd v3, v1, v2, v0.t
Yes, a fused multiply-add that uses masking will need a 4th read port. Hopefully that is an uncommon case. Or, perhaps it is sufficient to avoid executing such instructions OOO (and to use the same physical register as the destination without renaming, making the 4th read unnecessary).

My simplest proposal: Let's leave non-calculated elements undefined.

@aka-sps This does make the implementation simpler. However, it is less useful because a vmerge will be required. In the cases above where I discuss exit-early algorithms, this will slow down the inner loop because the elements that have been fully computed already must remain untouched, not turned into undefined values. The overhead this adds depends upon the precise algorithm, and in the case of a long sequence (like the fractal or adaboost examples), it might only add 1 instruction after a sequence of 10 or so instructions. But in other cases, with tighter inner loops, the result will be more dramatic. Also, since it requires operations on all elements (both masked and unmasked elements), the merge is slower than the other instructions.
FYI, I have some first hand experience writing vector code that uses masking and gets speedups from density time masking. Writing 0s, is horrible. Leaving values undefined is slightly better, but I still don't agree when it is equally easy to leave the original values untouched, even on OOO implementations.

This was discussed in the vector working group meeting on 10/16/2018 (see slides for detailed pros and cons).
The decision was to return to the original proposal to leave elements in place, rather than zero.


Last Launched not visually updating until I close/relaunch Launchbuddy

I just updated yesterday from a much older version and in the newest one the date/time for last launched is not visually updating when I launch accounts. If I use the new "Daily Logins" it does not select them so it  knows that the listed date/time is not correct. If I close Launchbuddy and reopen the date/times are correct.

I'm also having the same problem since updating to 3.0.0.

yeah agree, have the same issue, can't even know which account i opened and in which time, a pain when you have a lot of alts account.

same issue here , after relaunch it updates the times

fixed with 3.0.4. please confirm when the new relewase gets pushed

fixed with 3.0.4. please confirm when the new relewase gets pushed

It's fixed, thank you.

Hi
Timestamps are fixed but now I cant start more then 2 or 3 accounts , 4th or 5th is always not clean start , restart impossible.
Only if I close all running windows then I can start the next batch , but never more then 3.
Never had that in any version before
Thanks !
From: TheCheatsrichter @.>
Sent: Mittwoch, 30. März 2022 17:32
To: TheCheatsrichter/Gw2_Launchbuddy @.>
Cc: Ludwig Markus Ing. - TA @.>; Comment @.>
Subject: Re: [TheCheatsrichter/Gw2_Launchbuddy] Last Launched not visually updating until I close/relaunch Launchbuddy (Issue #312)
fixed with 3.0.4. please confirm when the new relewase gets pushed
—
Reply to this email directly, view it on GitHubhttps://github.com/TheCheatsrichter/Gw2_Launchbuddy/issues/312#issuecomment-1083295558, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AHUJE376PYV7H54SOSTMVWLVCRXWHANCNFSM5P27665A.
You are receiving this because you commented.Message ID: @.***>


Nodemon keeps crashing and makes development a pain

Hello,
I followed the instructions in the docs, and I have websokcet  and app (version 3.2) running on port 3333. After  npm run serve:dev everything works well. However, if my code has an error, then the app crashes and it never restarts.  I am repeating this loop every other minute as of now. It's very annoying and makes development a pain, please help!
Node version: v6.9.2
Npm version: 3.10.8
Error message:
info adonis:framework +0ms serving app on localhost:3333
events.js:160
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE <IP_ADDRESS>:3333
at Object.exports._errnoException (util.js:1022:11)
at exports._exceptionWithHostPort (util.js:1045:20)
at Server._listen2 (net.js:1259:14)
at listen (net.js:1295:10)
at net.js:1405:9
at GetAddrInfoReqWrap.asyncCallback [as callback] (dns.js:62:16)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:81:10)
[nodemon] app crashed - waiting for file changes before starting...

Hey @alaghband ! 👋
As the error say, the address 127.0.0. 1 with the port 3333 is already used by some process, try to change the port into your .env file and everything should works!

Thanks. I tried that, but still same issue keeps appearing. The process that occupies the port is node itself, initiated by adonisjs. The problem seems to be that on restart the port is not freed up and hence the error

May you try to update npm?
$ npm i -g npm

Then try again and display the output of npm run serve:dev.

Sure! Here it is: Following the previous suggestion, I changed port to 3000. Then I successfully ran  npm i -g npm. Then:
npm run serve:dev

<EMAIL_ADDRESS>serve:dev /Users/R/Documents/Projects/Node/Adonis-Apps/test-app
nodemon --watch app --watch bootstrap --watch config --watch .env -x node server.js

[nodemon] 1.11.0
[nodemon] to restart at any time, enter rs
[nodemon] watching: /Users/R/Documents/Projects/Node/Adonis-Apps/test-app/app//* /Users/R/Documents/Projects/Node/Adonis-Apps/test-app/bootstrap//* /Users/R/Documents/Projects/Node/Adonis-Apps/test-app/config/**/* .env
[nodemon] starting node server.js
info adonis:framework +0ms serving app on localhost:3000
[nodemon] restarting due to changes...
[nodemon] starting node server.js
/Users/R/Documents/Projects/Node/Adonis-Apps/test-app/app/Model/User.js:29
const seated = room.seats().where(');
^
ParseError: Unterminated string constant
at /Users/R/Documents/Projects/Node/Adonis-Apps/test-app/app/Ws/socket.js (/Users/R/Documents/Projects/Node/Adonis-Apps/test-app/app/Ws/socket.js:1:1)
[nodemon] clean exit - waiting for changes before restart
[nodemon] restarting due to changes...
[nodemon] starting node server.js
info adonis:framework +0ms serving app on localhost:3000
[nodemon] restarting due to changes...
[nodemon] starting node server.js
info adonis:framework +0ms serving app on localhost:3000
events.js:160
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE <IP_ADDRESS>:3000
at Object.exports._errnoException (util.js:1022:11)
at exports._exceptionWithHostPort (util.js:1045:20)
at Server._listen2 (net.js:1259:14)
at listen (net.js:1295:10)
at net.js:1405:9
at GetAddrInfoReqWrap.asyncCallback [as callback] (dns.js:62:16)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:81:10)
[nodemon] app crashed - waiting for file changes before starting...

You have an error in your code.
/Users/R/Documents/Projects/Node/Adonis-Apps/test-app/app/Model/User.js:29
const seated = room.seats().where(');

but it seems that there's another problem.
Any idea @thetutlage?

Yes there is an exception throw and since you are running adonis via nodemon, it keeps the port busy and expect you to fix the error

@RomainLanz I understand I have an error, it was intentional so I could produce an error log and share with you. But isn't having errors part of development process anyway?
@thetutlage I have been using Laravel for years, and that's why I got initially interested in Adonisjs. I have never seen Laravel get stuck because of such errors in my code. It's always ready for my changes! As of now, with adonisjs, what I have to do is to find the processes running on the port, kill them, and restart. And worst part is I have to do it every 2 minutes, making development in adonisjs my most painful development experience. I am sure it does not have to be that way and you guys do it differently. Please do share what I have to do differently to not get stuck with occupied ports while doing development and naturally having errors along the way. Thanks a ton!

This is what happens after fixing errors (essentially now that error is fixed complaining about ports being occupied)
[nodemon] restarting due to changes...
[nodemon] starting node server.js
info adonis:framework +0ms serving app on localhost:3000
events.js:160
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE <IP_ADDRESS>:3000
at Object.exports._errnoException (util.js:1022:11)
at exports._exceptionWithHostPort (util.js:1045:20)
at Server._listen2 (net.js:1259:14)
at listen (net.js:1295:10)
at net.js:1405:9
at GetAddrInfoReqWrap.asyncCallback [as callback] (dns.js:62:16)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:81:10)
[nodemon] app crashed - waiting for file changes before starting...
[nodemon] restarting due to changes...
[nodemon] starting node server.js
info adonis:framework +0ms serving app on localhost:3000
events.js:160
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE <IP_ADDRESS>:3000
at Object.exports._errnoException (util.js:1022:11)
at exports._exceptionWithHostPort (util.js:1045:20)
at Server._listen2 (net.js:1259:14)
at listen (net.js:1295:10)
at net.js:1405:9
at GetAddrInfoReqWrap.asyncCallback [as callback] (dns.js:62:16)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:81:10)
[nodemon] app crashed - waiting for file changes before starting...

Nodejs doesn't work the way Php works, I suggest understanding the merits of Nodejs over php first and then try to use Adonisjs or any other framework
Comparing apples to oranges will not help much

The very last line says [nodemon] app crashed - waiting for file changes before starting...
Which means it's waiting for u to fix the error and port is still in use

Thanks. Error was fixed but it doesn't seem to open up the port even after the fix.

@alaghband Okay let's do it together from scratch, without using nodemon.

Free up all the port
Use npm run serve to run the app, this doesn't makes use of nodemon and will start the server normally.
Now make some syntax error and lemme know if after the crash you are able to restart the process on same port.

// ENGINEERING A SYNTAX ERROR BY CHANGING "IF" TO "F" AND:
npm run serve

<EMAIL_ADDRESS>serve /Users/R/Documents/Projects/Node/Adonis-Apps/test-app
node server.js

/Users/R/Documents/Projects/Node/Adonis-Apps/test-app/app/Model/User.js:40
f (seat.user_id === null) {
^
ParseError: Unexpected token
at /Users/R/Documents/Projects/Node/Adonis-Apps/test-app/app/Ws/socket.js (/Users/R/Documents/Projects/Node/Adonis-Apps/test-app/app/Ws/socket.js:1:1)
// APP CRASHED. NEXT, FIXED THE INTENTIONAL SYNTAX ERROR AND:
npm run serve

<EMAIL_ADDRESS>serve /Users/R/Documents/Projects/Node/Adonis-Apps/test-app
node server.js

info adonis:framework +0ms serving app on localhost:3000
events.js:160
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE <IP_ADDRESS>:3000
at Object.exports._errnoException (util.js:1022:11)
at exports._exceptionWithHostPort (util.js:1045:20)
at Server._listen2 (net.js:1259:14)
at listen (net.js:1295:10)
at net.js:1405:9
at GetAddrInfoReqWrap.asyncCallback [as callback] (dns.js:62:16)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:81:10)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>serve: node server.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>serve script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR!      /Users/R/.npm/_logs/2017-07-05T15_54_02_159Z-debug.log
What is annoying is that a code works perfectly fine, then you make a simple syntax error like above and it correctly crashes, but when you put the code back to its original working state it still crashes.

Can u share the nodejs and npm version and the operating system you are on?

Sure:
macOS Sierra Version 10.12.3
node -v
v6.9.2
npm -v
5.0.4
P.S. I found a silly workaround: whenever I get stuck with occupied ports, I add a semicolon at the end of one of my variable declarations, and "usually" it puts the app back up and running, and next time I get stuck again with occupied ports I remove that semicolon and again it "usually" works!

I am fresher at nodejs and was just building a basic project. I used nodemon, at first it worked perfectly but after few minutes it showed up this error in gitbash.
**Error: **
JASH PATEL@JASH MINGW64 /c/projects/nodekb
$ nodemon
[nodemon] 1.17.2
[nodemon] to restart at any time, enter rs
[nodemon] watching: .
[nodemon] starting node app.js
C:\projects\nodekb\app.js:18
{
^
SyntaxError: Unexpected token {
at createScript (vm.js:80:10)
at Object.runInThisContext (vm.js:139:10)
at Module._compile (module.js:616:28)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Function.Module.runMain (module.js:693:10)
at startup (bootstrap_node.js:188:16)
at bootstrap_node.js:609:3
[nodemon] app crashed - waiting for file changes before starting...
I've made an app.js file, whose contents are shown below...
**app.js : **
const express = require('express');
const path = require('path');
//init app
const app = express();
//load view engine
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');
//home route
app.get('/', function(req, res) {
let articles = [
{
id:1,
title:'article one',
body:'this is article one'
}
{
id:2,
title:'article two',
body:'this is article two'
}
{
id:3,
title:'article three',
body:'this is article three'
}
];
res.render('index', {
title:'Article',
articles: articles
});
});
//Add Routes
app.get('/articles/add', function(req, res) {
res.render('add_article', {
title:'Add Article'
});
});
//start server
app.listen(3000, function() {
console.log('server started on port 3000...!');
});
Please help me get out of this, I got stuck in this problem since one week.
Thank you in advance


Updating directory in Dockerfile

Updating directory references in Dockerfile from odh-manifests to ml-pipelines so that the CI runs on openshift/release go through.

/approve