Update cosmjs to 0.27.0

Closes: #21
Upgrade to cosmjs v0.27.0

@amaurym I'm getting this linter error - any ideas? :
ESLint couldn't find the config "prettier/@typescript-eslint" to extend from. Please check that the name of the config is correct.

@mhagel We could also update README.md (see ## 🚧 Warning) and packages/api/README.md (see ## Differences with CosmJS) with updated statements about cosmjs (which uses ts-proto now).

Code LGTM but linter is failing build and you might have to walk me through how to test manually (if relevant) later this week

@haveanicedavid you can also have a look at the example app in packages/demo-app ;)

@amaurym I'm getting this linter error - any ideas? : ESLint couldn't find the config "prettier/@typescript-eslint" to extend from. Please check that the name of the config is correct.

Up, we need to fix this as it's causing CI to fail.
This seems related to ...require('@amaurym/eslintrc'), in eslintrc.js.
The current version still uses prettier/@typescript-eslint under the hood which has been removed: https://stackoverflow.com/a/66342626/6189683, we should probably just use a custom eslint config for now instead.
More generally, let's discuss how to handle linting during our next engineering sync, we could have one repo in regen-network github similar to the one from amaury that we could share across repos.

Yes, please don't depend on @amaurym/eslintrc!
Best thing would be to use the same estlint config as regen-web? also see https://github.com/regen-network/regen-js/issues/19#issuecomment-894101540

@amaurym I'm getting this linter error - any ideas? : ESLint couldn't find the config "prettier/@typescript-eslint" to extend from. Please check that the name of the config is correct.

Up, we need to fix this as it's causing CI to fail. This seems related to ...require('@amaurym/eslintrc'), in eslintrc.js. The current version still uses prettier/@typescript-eslint under the hood which has been removed: https://stackoverflow.com/a/66342626/6189683, we should probably just use a custom eslint config for now instead. cc/ @amaurym @mhagel
More generally, let's discuss how to handle linting during our next engineering sync, we could have one repo in regen-network github similar to the one from amaury that we could share across repos.

@blushi @amaurym I am resolving this in a separate PR #26 to be merged before this one.


#105: added close-to-failed-output tests

Closes #105.

@Graur please, check it now.

@rultor merge

@graur Done! FYI, the full log is here (took me 3min)


Rustup

@bors r+

:pushpin: Commit 7951872e7e29c86267b1032b1563b650fec7ac19 has been approved by RalfJung
It is now in the queue for this repository.

:hourglass: Testing commit 7951872e7e29c86267b1032b1563b650fec7ac19 with merge da8dbdbd184835b797a55b6c9d1f8701d0bf9f69...

:sunny: Test successful - checks-actions
Approved by: RalfJung
Pushing da8dbdbd184835b797a55b6c9d1f8701d0bf9f69 to master...


Allow custom fields in profile object

Hey guys, wanted to open a new issue dedicated to this discussion as it was previously taking place in an already merged PR.. (https://github.com/nextauthjs/adapters/pull/132#issuecomment-869174077).
The currently implementation simply spreads in the entire profile object, possibly overwriting our preexisting fields such as id.
@sachinraja suggested a solution using a separate object for the custom user fields, such as:
profile(profile) {
  return {
    name: profile.name ?? profile.login,
    email: profile.email,
    image: profile.avatar_url,
    __nextAuthCustomFields: {
      id: profile.id.toString(),
      username: profile.login,
      bio: profile.bio,
    },
  }
}

Following up from the PR:

So the provider id is overwriting our default primary key id field due to this spreading in all of their fields, right?

Exactly!

@balazsorban44, is it important for us to have the provider id? i.e. the github user id? What if we save that in a field called providerId or something along those lines?

The provider id already gets stored in the accounts table but not the user table, so you shouldn't have to worry about copying it here.

@anglinb I'm currently extending the GitHub provider like so:
Providers.GitHub({
  clientId: envConfig.get('gitHub.clientId'),
  clientSecret: envConfig.get('gitHub.clientSecret'),
  profile(profile) {
    return {
      id: profile.id.toString(),
      username: profile.login,
      bio: profile.bio,
      name: profile.name ?? profile.login,
      email: profile.email,
      image: profile.avatar_url,
    }
  },
}),

The problem is that before the custom fields here, such as username were not being passed to prisma.create.user, but now they are since all properties are spread.

@sachinraja Oohhhh ok that makes sense 👍 I also modified the adapter in a similar way to the provider to do additional setup in the create user function. If you're modifying the model you'll likely need to modify the adapter eventually? So maybe a good solution would be to make it easier to modify the adapter?

Modifying the adapter would work and is probably a better idea as using a special property feels hacky. Not sure if it's ideal for everyone though as it requires more from the user.

Ya I'm on the same page. Maybe one way to make it easier would be to refactor how the initialization works so you could easily extend the adapter.
Here's what I did but it would be way nicer if maybe PrismaAdapter too an additional parameter where you could implement the same functions that the base adapter does. The end result would be similar to how the providers works--you can easily override a specific part of the functionality, like you did with the profile function.

const CustomPrismaAdapter =  (prisma: PrismaClient) => {
  let originalAdpaterBuilder = PrismaAdapter(prisma);

  return {
    async getAdapter({ session, secret, ...appOptions }: { session: any, secret: string }) {
      // @ts-ignore
      let originalAdapter = await originalAdpaterBuilder.getAdapter({ session, secret, ...appOptions })
      const createUser = async (profile: any) => {
        // Create a default team
        let personalTeam = await prisma.team.create({
          data:{
            name: profile.name,
            teamType: TeamType.PERSONAL,
          }
        })

        let { id, ...restOfProfile } = profile;
        return prisma.user.create({
          data: {
            name: profile.name,
            email: profile.email,
            image: profile.image,
            emailVerified: profile.emailVerified?.toISOString() ?? null,
            ...restOfProfile,
            personalTeamId: personalTeam.id,
          },
        })
      };

      let returning = {
        ...originalAdapter,
        createUser
      };
      return returning
    }
  }
}

export default CustomPrismaAdapter;

Agreed, overrides would be useful. There is the events callback, but I don't think that overrides. What you've shown isn't too bad though, although it does look like the types need some work.

Haha ya was lazy with the typing b/c I just wanted to get it working quickly 🤷  I'm happy enough with that approach to leave it for now but would happily upgrade to something cleaner if that's the direction ya'll take 👌

Comparison
I've put together a simple table to hopefully help move this discussion along.

Solutions
Benefits

field in profile object
less configuration for the userthe createUser function can be updatedno added TypeScript work

extending the adapter
less "magic" as it does not rely on a custom field in the profile objectallows for consistency across adapters, no other adapter has a customFields property in the profile object

@ndom91 @balazsorban44 Is there any way we can move this forward?

Yeah so my vote would go to extending the adapter as we do want to expand custom fields to the rest of the adapters if one of them has it. To keep them all as close to one another feature wise as possible.
What do you think @balazsorban44

So I don't think we should add a custom field either, it feels weird. I am more into the idea of making it possible to override certain adapter methods, or somehow reuse the profile callback for the adapter, so it is "inferred" if that makes sense. Unfortunately I don't think we can squeeze that into 3.x as there is a lot of stuff going on already. I also want to change the adapter method signatures/merge some methods for less db querying, so it would make sense to wait until v4.

Overriding adapter methods sounds much nicer. If this can only be implemented in v4, I think #132 should be reverted.

I think maybe the whole adapter should be a single class actually, that extends the base adapter.

Definitely would be easier to override by extending a class rather than resorting to object spreads.

We reverted the destructuring change for now, and will try to add it back and create a better adapter API for v4 with more clear messaging.


ScubaGear throws warning during update check due to null path

🐛 Summary
ScubaGear does a version check on import (which is first use after install from PSGallery).  When using a pre-release version v1.5.0-rc2, it failes to execute and throws a path warning.
To reproduce
Steps to reproduce the behavior:

Start with a clean machine without ScubaGear or its dependencies
Install-Module -Name ScubaGear -AllowPrerelease
Invoke-Scuba -Version

Expected behavior
ScubaGear to run with the dependent modules warning, but not the version check fail nor the 'Path' error.
Any helpful log output or screenshots
From clean machine, install ScubaGear v1.5.0-rc2 from PSGallery then issue Invoke-Scuba -Version and get cannot bind error.

I brilliantly left in a reference to $VersionCheckFile which is undefined. I will submit a PR.


recover 'save shots' functionality

I broke 'save shots' when overhauling the DAQ, and didn't fix it because I didn't consider it a priority at this time. The infrastructure is there in parts, it should only take my dedicated attention for a day or two to bring it back.

Probably save shots functionality should be unique to each device... so NI 6251 would save its own shots etc.

Closing as all daq functionality is now external #291


fixed drifting of progress bar on Unix

progress bar was incorrectly setting the original x position which causes the progress to slowly move to the right in certain cases
addresses #3202
need some suggestions on how to add a test for this

@lzybkr it's also something easily noticed by people using PowerShell if it's not working :)


API Reference page is not showing body payloads correctly

On this page: https://www.spinnaker.io/reference/api/docs.html#project
It seems to be missing a lot of information, params, body params, etc. I'm guessing this is generated from a Swagger file but I can't seem to find that either.

@jtk54 Hi Jacob, can we reopen this issue? The API docs are broken and really hard to use in this state. It looks like some of the reference is being generated by inline javascript, maybe that's broken?

@jtk54 In the meantime, is there another place I can view the Spinnaker API docs?

Currently some of Gate's API endpoints are incredibly generic, which makes them difficult to use without sufficient examples. The example you pointed out is one of them. The swagger spec generated from that endpoint isn't wrong, there are just no specifics we are able to document for that endpoint because the tasks are defined internally in Orca.
For /tasks specifically, there have been ideas bounced around generating concrete Task models to export and use in spin CLI among other things, but no concrete RFCs for holistically improving our API surface yet.
For the time being, I'd start with the specifics of what you're trying to accomplish. Both the community site and slack are good resources to use for individual use cases and finding how others have solved this problem. This also lets us gauge problems and community interest to prioritize our efforts to address friction like this.


Adds support for loading NuGet dependencies for C# Projects

I've created a partial request to start supporting the ability to load NuGet dependencies for C# Projects. I wanted to get what I had out and visible to allow community review.

[x] Implements the ability to search GitHub repositories using the filename pattern matching

[X] Anonymous searching
[x] Authenticated searching

[x] Adds functions for parsing NuGet dependencies for C# projects

[X] *.csproj format
[x] packages.config format

[ ] Accepts uploads for parsing NuGet dependencies

Here are a couple of GitHub accounts that have csproj formatted NuGet dependencies along with a few specific examples (both accounts have quite a bit more):

joncloud

egad-net
apogee-net
amp-net

aspnet

EntityFrameworkCore
Blazor
Mvc

I know that a recent platform just started called Discover .NET, which is a showcase for open source .NET projects (C# is a subset).

After some more research I think I would be more inclined to introduce uploading NuGet dependencies through a separate pull request, because the system is really driven through JSON and its native capabilities. What are your thoughts?

You're right, the upload needs to be refactored to handle non-JSON files, especially for the validation.
If you're good with it, no problem to merge the PR as it is. I'm just gonna have a last check and see if there is anything we can optimize.

Go for it! Let me know if there is anything else I can do to help.

@joncloud as I'm testing the feature, looks like we're easily reaching the GitHub search API limit which is a concern.
GitHub is only allowing 30 requests per minute, https://developer.github.com/v3/search/ which is then immediately reached for an account with 15 repositories.
We need to think about that.

A couple thoughts around mitigating the API limit might be:

Requiring to sign in to enable NuGet
Queuing NuGet requests (synchronous or in the background)

Do you have any other thoughts on the subject?

Requiring to Sign In might help, because the limit is then 30 queries / minutes per authenticated user, but it's even low in that case. Also, it would be more complicated to explain: "Sign In to detect more dependencies (NuGet, etc ...). Why not?
Doing background requests might be the way to go, but we would need to make the architecture way more complex. We need to carefuly think if this is where we want to go.
Would be so great if we could rely on GitHub to extract dependencies with a single API call, using that:
https://help.github.com/articles/listing-the-packages-that-a-repository-depends-on/ And if this was Open Source so we can help them supporting more package managers.

I have put more though into this. I know think the proper short term solution is to do less requests to the GitHub search API.

let's only fetch dependencies if the detected language is C#. I have already added that for the other languages, see: https://github.com/opencollective/backyourstack/commit/59807b1e8b4c8904fa1d31e2703617e22ffaf43c
only search for packages.config if no *.csproj is detected.

With these changes, I think we can have something we can ship.
The only extra thing I would like to see added is a better handling of rate limiting errors. That's out of this PR scope and we can track that in https://github.com/opencollective/backyourstack/issues/61

Excellent. Merging!

@joncloud Regarding support for file uploads, check #72

@joncloud It's now released and we made sure to detect the relevant Open Collectives, see https://github.com/opencollective/backyourstack/commit/9a02ce678f4d541fc9e2a301fac91a9ee5ff8acd
Thank you!


Pittsburgh Public Schools

Adding the student email addresses used by all students of schools that fall under PPS Schools.
Official Website: https://www.pghschools.org/
Further Detail: "The Pittsburgh Public School District is the largest of 43 school districts in Allegheny County and second largest in Pennsylvania. The District provides students, in PreK through Grade 12"
There is a variety of schools that provide a variety of courses using this email for students.

@Xer0-Puls3 Please provide us with an URL of a page or another proof (.pdf or a screenshot are OK) showing that the school recognizes the domain which you are submitting as an official email domain for the students.

As my account information was given physically as apposed to digitally I went through quite a bit of work to ensure that this image is safe to provide online within the public domain.
This is a portion of the letter given to students who enroll in Pittsburgh Online Academy, which uses the same email as other schools within the district. I had hoped to find a page on the Pittsburgh Public Schools (or affiliated) websites which details the domains used by staff and students, but was unable to find any, so I hope this is adequate.

@Xer0-Puls3 Thank you very much for your effor and for the clarification. Pull request merged.


Fix GitHub Actions on macOS

🦟 Bug fix
Summary
Github Actions is failing for macOS on PRs #1268 and #1270 with the following error
==> Pouring<EMAIL_ADDRESS>Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/2to3-3.11
Target /usr/local/bin/2to3-3.11
already exists. You may want to remove it:
  rm '/usr/local/bin/2to3-3.11'

To force the link and overwrite all conflicting files:
  brew link --overwrite<EMAIL_ADDRESS>
To list all files that would be deleted:
  brew link --overwrite --dry-run<EMAIL_ADDRESS>
~Since we seem to keep running into this, I'm trying the brew install --overwrite approach to see if it's a more permanent fix for this issue.~ That didn't work, so removing all 2to3-*.
Checklist

[ ] Signed all commits for DCO
[ ] Added tests
[ ] Updated documentation (as needed)
[ ] Updated migration guide (as needed)
[ ] Consider updating Python bindings (if the library has them)
[ ] codecheck passed (See contributing)
[ ] All tests passed (See test coverage)
[ ] While waiting for a review on your PR, please help review another open pull request to support the maintainers

Note to maintainers: Remember to use Squash-Merge and edit the commit message to match the pull request summary while retaining Signed-off-by messages.

Just a cross-reference, the upstream issue for this problem is https://github.com/actions/setup-python/issues/577 .


Button My location and toolbars not showing

Steps to reproduce

Expected results
showing botton my location and  tools bar
Actual results

Code sample
Code sample
  Widget build(BuildContext context) {
    return Scaffold(
      body: GoogleMap(
        circles: const {},

        mapType: MapType.satellite,
        mapToolbarEnabled: true,
        buildingsEnabled: true,
        myLocationButtonEnabled: true,
        myLocationEnabled: true,
        liteModeEnabled: false,
        tiltGesturesEnabled: true,

        zoomControlsEnabled: false,
        // compassEnabled: true,
        // trafficEnabled: true,
        onCameraIdle: () {
          // print('Camera Idle');
        },
        markers: const {},
        initialCameraPosition: _kGooglePlex,
        onMapCreated: (GoogleMapController controller) {
          _controller.complete(controller);
        },
        onTap: (LatLng latLng) {
        },
      ),
    );
  }

Screenshots or Video

Screenshots / Video demonstration

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
PS D:\tracing_trash> flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.16.8, on Microsoft Windows [Version 10.0.22631.3007], locale en-US)
[✓] Windows Version (Installed version of Windows is version 10 or higher)
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[✓] Chrome - develop for the web
[✓] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.7.6)
[✓] Android Studio (version 2022.3)
[✓] IntelliJ IDEA Ultimate Edition (version 2023.3)
[✓] VS Code (version 1.85.2)
[✓] Connected device (4 available)
[✓] Network resources

• No issues found!

Thanks for the report. I can reproduce this issue.

On Android, Map toolbar and My Location button aren't displayed.
On iOS, My Location button is displayed but Map toolbar isn't. This seems to be similar to https://github.com/flutter/flutter/issues/58776. I also tried adding a marker and then tapping on it to trigger Map toolbar but it still didn't show (see Map toolbar documentation)

flutter doctor -v (stable and master)
[✓] Flutter (Channel stable, 3.16.9, on macOS 14.1 23B74 darwin-x64, locale en-VN)
    • Flutter version 3.16.9 on channel stable at /Users/huynq/Documents/GitHub/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 41456452f2 (14 hours ago), 2024-01-25 10:06:23 -0800
    • Engine revision f40e976bed
    • Dart version 3.2.6
    • DevTools version 2.28.5

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15A507
    • CocoaPods version 1.14.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2023.1)
    • Android Studio at /Applications/Android Studio Hedgehog.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.7+0-17.0.7b1000.6-10550314)

[✓] Android Studio (version 2022.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • android-studio-dir = /Applications/Android Studio.app/
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

[✓] VS Code (version 1.85.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.80.0

[✓] Connected device (4 available)
    • RMX2001 (mobile) • EUYTFEUSQSRGDA6D                         • android-arm64  • Android 11 (API 30)
    • iPhone (mobile)  • d9a94afe2b649fef56ba0bfeb052f0f2a7dae95e • ios            • iOS 15.8 19H370
    • macOS (desktop)  • macos                                    • darwin-x64     • macOS 14.1 23B74 darwin-x64
    • Chrome (web)     • chrome                                   • web-javascript • Google Chrome 120.0.6099.234

[✓] Network resources
    • All expected network resources are available.

• No issues found!

[!] Flutter (Channel master, 3.20.0-1.0.pre.20, on macOS 14.1 23B74 darwin-x64, locale en-VN)
    • Flutter version 3.20.0-1.0.pre.20 on channel master at /Users/huynq/Documents/GitHub/flutter_master
    ! Warning: `flutter` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/flutter, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    ! Warning: `dart` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/dart, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision f8a77225f3 (13 hours ago), 2024-02-04 14:28:18 +0000
    • Engine revision f34c658b96
    • Dart version 3.4.0 (build 3.4.0-99.0.dev)
    • DevTools version 2.31.0
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15A507
    • CocoaPods version 1.14.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2023.1)
    • Android Studio at /Applications/Android Studio Hedgehog.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.7+0-17.0.7b1000.6-10550314)

[✓] Android Studio (version 2022.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • android-studio-dir = /Applications/Android Studio.app/
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

[✓] VS Code (version 1.85.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.80.0

[✓] Connected device (3 available)
    • iPad (mobile)   • 00008103-000A1464346A201E • ios            • iOS 17.2 21C62
    • macOS (desktop) • macos                     • darwin-x64     • macOS 14.1 23B74 darwin-x64
    • Chrome (web)    • chrome                    • web-javascript • Google Chrome 121.0.6167.139

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.


Suggestion on getModified()

Hi,
I'd like to suggest a modification concerning getModifed().
I think getModified() should return a dictionary (hash map) instead of an Array.
It would then enable us to make decisions based on the modified fields way more easily (calling external APIs, or throwing errors).
for example :
//model (not the complete definition)
{
      name: String,
      firstname: String
}

//setting firstname
doc.set('firstname', 'Arthur')

//getting modified value
const modified = doc.getModified() // { firstname: true, lastname: false }

if (modified.firstname || modified.lastname) {
   console.log("Hello there, I see you've changed your identity 🤓")
}

We could implement it by adding an optional field to the current API :
getModified({ toHashMap: true }) by converting the array to a hash map when necessary.
Or we could replace the current API.
In any case I find it way more practical to have a dictionary (which can be easily converted to an Array with the ES5 Object.keys() API)

There is already such a feature implemented. The method name is
getModifiedValues
On Thu, Jun 13, 2019, 10:29 PM Nathan Schwarz<EMAIL_ADDRESS>wrote:

Hi,
I'd like to suggest a modification concerning getModifed().
I think getModified() should return a dictionary (hash map) instead of an
Array.
It would then enable us to make decisions based on the modified fields way
more easily (calling external APIs, or throwing errors).
for example :
`
//model (not the complete definition)
{
name: String,
firstname: String
}
//setting name
doc.set('firstname', 'Arthur')
//getting modified value
const modified = doc.getModified() // { firstname: true, lastname: false }
if (modified.firstname || modified.lastname) {
console.log("Hello there, I see you've changed your identity 🤓")
}
`
We could implement it by adding an optional field to the current API :
getModified({ toHashMap: true }) by converting the array to a hash map
when necessary.
Or we could replace the current API.
In any case I find it way more practical to have a dictionary (which can
be easily converted to an Array with the ES5 Object.keys() API)
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/jagi/meteor-astronomy/issues/705?email_source=notifications&email_token=AAIAUXI3H6L6HWB3NRGRSLTP2KUY7A5CNFSM4HX6O6D2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4GZNCB2Q,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAIAUXKUSVXUTIOSNGPCJC3P2KUY7ANCNFSM4HX6O6DQ
.


V 2 6 x : Cover doesn't work sometimes

I use some cover and the tydom2mqtt version 2.6.2
sometimes the attributes position and current-position from cover.xxx are not updated so that it's impossible to manage them by the entity cover.xxx.
The way to recover the right behavior is to move manually with the Tydom application or to create a button that make a movement...
In the integration the data are updated only if they change, I think that it should be better to update them at each time they are read.
in my exemple, the shutter is physically closed
entities:

label: Volet Chambre rdc
type: section
entity: cover.chambre_1           position = 100
entity: cover.chambre_1
type: attribute
attribute: position                     value = -
name: position
entity: cover.chambre_1
type: attribute
attribute: current_position      value = 100
name: position courante
label: Sensor position
type: section
sensor.position_tydom_chambre_1   = 0

It should be also nice to have the general attributes from cover like opening, closing is_closed is_opened

Still same for me. I bought my covers from kline.
Log seems ok nut it's not updating mqtt sensors i guess. And always the same covers are reported as closed and one is at 60%
Each time i restart ha it's like this.
If i restart only tydom2mqtt seems fine.

Same as https://github.com/fmartinou/tydom2mqtt/issues/40 ?


Support Bearer for authentication scheme

The RFC specification requires the use of 'Bearer' as the authentication scheme. The 'Bearer' scheme is also registered with the IANA. Most JWT packages and tools use 'Bearer' as the default scheme.
http://www.iana.org/assignments/http-authschemes/http-authschemes.xhtml
https://tools.ietf.org/html/rfc6750
https://tools.ietf.org/html/rfc7523
https://en.wikipedia.org/wiki/JSON_Web_Token

I was thinking the same thing, Bearer is the standard, not Token.

Just talked with @apai4 and we're thinking of having the backends support both so that there's backwards compatibility. It's not uncommon to see non-Bearer versions in libs, so doing a hard swap for all FE's/BE's seems unnecessary, but eventually we may just deprecate token/etc.

Supporting both works. I've seen Token, Auth, Authorization, and Bearer but Bearer is the standard. I'll get the Spring backend setup to support either and I think that's a good solution going forward.

Is there anything left to add to this conversation or do we have a consensus? If the latter, should this issue be closed?

So the conclusion is that we enable support for both the schemes across all backends then?

I think so @SandeeshS but we should probably add some notes to the spec before we close this out.

@Cameron-C-Chapman absolutely. There's almost 25+ backends in progress/complete at the moment. We need to make sure we inform changes such as these to all the current backend developers in a proper manner. Also document this in the both frontend and backend spec.

Sounds good. I'll leave yall to it then.
Anytime we're talking about adding something to the spec, it's necessary to wait until @EricSimons signs off on it. He's got the best view of the project as a whole and is best equipped to make sure a call and bring our attention to things we haven't considered.


Refactor test to generate ignition and ssh keys, auto-provision and enable DNS

This PR switches to a programmatic ignition generation so that it can represent generated SSH keys, which will be necessary for testing ssh forwarding.  Additionally, it fixes up the DNS configuration of FCOS and the DNS tests so that they pass on mac and linux.

thanks!


Update type.d.ts

@FishOrBear Why add the plane to the class? Does this assist in some of you more difficult designs?

@z3dev I will access it in my program, but it is not always present, so I marked it as an optional parameter.

@platypii what do you think? This is probably another example of users doing something that is unexpected. The changes are correct.


STORM-2010 port org.apache.storm.command.heartbeats.clj to Java

STORM-2010

Thanks @abhishekagarwal87 for reviewing. I addressed your comments.

+1

Thanks @satishd @harshach for reviewing. Addressed or commented review comments.

+1 LGTM


CB-7443. Changes to make some improvements to the time it takes to scale

up nodes.

Introduces 2 pre-populates salt 'roles' in prewarmed images / images
containing fluent.
Archives some components at the end of image creation, and sets up a
script to uncompress these on first time image initialization. This is primarily
to work around inefficiencies w.r.t retrieving multiple (thousands) of
files during instance bootup vs a few archives.

Works along with hortonworks/cloudbreak-images#426, but both of these PRs can work independently.
Tested against CB-2.25-b124. Will tests against master after fixing review comments.


For wrong translation used when maya is not set in cm

Nice.  Should we also be doing this conversion on export as well?

BTW the Alembic file format is actually unitless, which means that it doesn't specify a unit.  This generally means we shouldn't be doing any type of unit conversion for import or export generally.  It is up to the user to be responsible for units.

You are right, however the translation attribute of a maya transform expect the data in the unit size of the scene. Here's some repro-steps that better illustrate the issue.

Open maya and set it in meter
Create a locator with a translation of 1
Export the locator via ExocortexCrate
Re-import the locator via ExocortexCrate
Notice the locator now have a translation of 100

So I looked a bit more at the code.  I will merge this.  I think the issue is that while we do export without looking at units, we are accessing the transform matrix directly.  When we import, we are specifying a translation, rather than the transform matrix, and I suspect we need to have units on the translation.  Your PR does this.
I didn't realize the translation required units while the transform matrix did not.

Thanks!


⚠ Thumbnails API Endpoint has degraded performance

In 55ca821, Thumbnails API Endpoint (https://thumbnails.roblox.com/v1/assets?assetIds=82738847&format=Png&isCircular=false&size=30x30) experienced degraded performance:

HTTP code: 200
Response time: 1174 ms

Resolved: Thumbnails API Endpoint performance has improved in 3db5ecd.


Setup each page - init hook, export const blocking, etc.

Describe the problem
For i18n or similar subsystems, we should make initialization before any language things are needed, and for such initialization, we usually use a session (user language) and information from the HTTP request.
Before the new routing system was introduced, we were using the root __layout.svelte to do it, it's working well for SSR and CSR time.
I should mention that what i18n should be inited on the server side and init on the client side as well (or state should be send as is).
After migration to new routing, we lose one "transitional" place to init such thing because +layout.js can be called after +page.js, and you must do await parent() in each page to avoid such race condition.
For server-side only init, we have a good place it's handle in hooks.js with event.locals it's an excellent way to init server only things like DB connection, but for things what should be a transition from SSR to CSR we have no place.
I also have a similar issue for i18n implementation project what I use https://github.com/cibernox/svelte-intl-precompile/issues/55
Describe the proposed solution
Maybe it's possible to do it more straightforwardly, but at least we need a global hook for what will be called on SSR and on CSR, after +layout.server.js but before +layout.js and +page.js.
Alternatives considered
No response
Importance
would make my life easier
Additional Information
No response

If I understand you correctly, it could work today for you, too, but you'd have to do await parent() in each layout/page, which is cumbersome. I had this concern, too. My idea was to introduce export const blocks = <boolean> to +layout.js (and possibly to layout.server.js) so you have to write it in one place only for situations like this.

@dummdidumm right, but honestly, I suppose +layout.js it's not a good place, and for me, it just should be before +layout.js and +page.js (doesn't care who first) it's not directly tied with the layout.

@dummdidumm right, but honestly, I suppose +layout.js it's not a good place, and for me, it just should be before +layout.js and +page.js (doesn't care who first) it's not directly tied with the layout. Also, because we can have a named layout, I don't want to duplicate this logic of how I should do it now.

This would be solved by the new Layouts proposal as well, since the root layout would always exist.

@tcc-sejohnson I see, in that case, it can work, but from a semantic point of view, it's not good. It's not a layout anymore if you understand what I mean.

@tcc-sejohnson I see, in that case, it can work, but from a semantic point of view, it's not good. It's not a layout anymore if you understand what I mean.

We've had this discussion before and pretty much just decided "Layout doesn't mean literally just laying things out on the page. You can lay data out for your app as well." No one's been able to come up with a better term, so I'd just adjust your understanding of the word.
(If you look at the dictionary definition, "the way in which the parts of something are arranged or laid out", it actually does apply to data as well. You're "arranging your app", not just "arranging the visual layout of a page".)

@stalkerg
https://github.com/sveltejs/kit/discussions/6124

@tcc-sejohnson I do not fully understand how a new proposal can solve this issue because. Root layout exists even now (+layout.js) in my case, but it's run after +page.js when I need access to i18n features.

I'm going to drop here some background on prior art on how other frameworks, in this case Ember.js, approached this problem of having code that needs to run before the continues the boot process and it may (or may not be blocking).
In Ember such code was put in /initializers and /instance-initializers. The functions there ran before the app booted and were typically used to setup critical initial configuration (i18n is an obvious example of setup that should run as early as possible because it will affect how everything else is rendered. Configuring user credentials if there's some kind of API wrapper singleton could be another one).
If those functions returned a promise, the app boot's process would block until that promise resolves. If no promise is resolved the boot process continues without delay.
The shade of meaning between initializers and instance-initializers was that initializers ran once in the entire lifetime of the app, even in SSR, while instance-initializers ran once in the browser but once per request in SSR.
Initializers also had names and accepted before/after: otherInitializersName in case there were many and the execution order was important, much like rollup plugins.
I just mention this because IMO Ember got this reasonably right. Sveltekit may decide to come up with a different abstraction, but it's good to know how others approached similar problems in the past.

export const blocking would work - though it'd also mean that you need an extra route group in most cases. E.g. a layout that just does the i18n setup discussed here in a blocking fashion, then a layout that loads the user in a parallel fashion and displays the layout UI. I'm not sure how annoying this would be in practice, but probably at least some

Having a hook like hooks/initialize.server.js and hooks/initialize.client.js would be extremely useful for injecting code to run "on boot". Many ORMs like TypeORM and MicroORM depend on you being able to run code on startup and those hooks would be a great way of adding this in a non-breaking way.

@sphinxc0re
No need for this. Back a while ago, we had #6179. This causes hooks.{js|ts} to be run whenever the app "starts" (this is a bit of an amorphous term when considering serverless stuff, but basically it's guaranteed to be run prior to responding to any requests). This means that any initialization logic can be run in the root of hooks and it'll run on startup.

@tcc-sejohnson that is very interesting. Do you know if this is intended behaviour and expected to stay or it just happens to be that way because of an implementation detail?
If that's guaranteed I'll go ahead and update the documentation on my library, but I wouldn't like the rug to be pulled from under me.

@cibernox No it's intended -- I purposefully made that PR because of the same use-cases as @sphinxc0re. It was created in response to #6147.

@tcc-sejohnson then you made my day! Thanks for the heads up!

So this should be documented then, right?

So this should be documented then, right?

Hah, that would close my issue from a looong time ago: #1753

@tcc-sejohnson thanks! I will try it, at least it sounds good.

@tcc-sejohnson, unfortunately, using hooks.client.js is not working for me because I need access to request (/page/?lang=en ) to get the language GET argument and init i18n. Yes, as you said, here https://github.com/sveltejs/kit/pull/6756#issuecomment-1244533496, it's only for the server.
@cibernox it's not helping us :(

@stalkerg there is a section about i18n in the docs: https://kit.svelte.dev/docs/accessibility#the-lang-attribute 🤷🏼♂ maybe it helps

Here's what i've been experimenting with today:
lang.ts
import type { Handle, RequestEvent } from '@sveltejs/kit';
import {
	init,
	register,
	waitLocale,
	getLocaleFromAcceptLanguageHeader,
	getLocaleFromNavigator
} from 'svelte-intl-precompile';
register('en', () => import('$locales/en'));
register('de', () => import('$locales/de'));

const DEFAULT_LOCALE = 'en';

// add this hook to your hooks.server.ts sequence
// and update app.html to use `<html lang="%lang%">`
export const setLocale: Handle = async ({ event, resolve }) => {
	const lang = await loadLocale(event);
	return resolve(event, {
		transformPageChunk: ({ html }) => html.replace('%lang%', lang)
	});
};

// call this function with await in hooks.client.ts
export async function loadLocale(event?) {
	let locale = event ? getSSRLocale(event) : getClientLocale();
	init({ initialLocale: locale, fallbackLocale: DEFAULT_LOCALE });
	await waitLocale(locale);
	return locale;
}

function getSSRLocale(event: RequestEvent) {
        // prefer stored user locale, fall back to accept header and default
	return (
		event.locals.user?.locale ||
		getLocaleFromAcceptLanguageHeader(event.request.headers.get('Accept-Language')) ||
		DEFAULT_LOCALE
	);
}

function getClientLocale() {
	// html lang attr is set by SSR hook, so we just reuse that
	// otherwise fall back to navigator or default
	return document?.documentElement.lang || getLocaleFromNavigator() || DEFAULT_LOCALE;
}

hooks.client.ts
import { loadLocale } from './lang';
await loadLocale();

hooks.server.ts
import { setLocale } from './lang';
export const handle: Handle = sequence(/*auth etc */, setLocale);

Is this a valid approach?

unfortunate side effect: you have to update your build target to es2022 for support of TLA

Good solution @dominikg

unfortunate side effect: you have to update your build target to es2022 for support of TLA

If you don't want to use es2022, you could do this

hooks.client.ts
import { loadLocale } from './lang';
await loadLocale();

in the root +layout.js like this:
import { browser } from '$app/environment';
import { loadLocale } from '../lang';

export const load = async () => {
  if (browser) {
    await loadLocale();
  }
};

This should work.

@PatrickG, as I mentioned in the issue, it will work only if you add await parent() for each page load function.

@dominikg thank you for the solution. But sorry, I disagree with @PatrickG ; it's a very complicated and sphagety-like solution. In the SveltKit we mustn't do it.
Also, it looks like SvelteKit forbids updating locale without reloading the whole page, it can be a considerable obstacle.

@PatrickG, as I mentioned in the issue, it will work only if you add await parent() for each page load function.

I was only talking about the solution @dominikg provided.

@sphinxc0re thanks for the advice, it does not solve this issue, but help to more accurate handle language even now.

My proposal would be an exported init or initialize (can't think of a better name) function in hooks.client.js that gets called (and awaited) right after the init function in https://github.com/sveltejs/kit/blob/177a5a9f8219f3f9633d8f8dc879f8472f74d6a2/packages/kit/src/runtime/client/start.js#L28
Maybe the returned value could be the equivalent of locals in the client-side load functions or merged with data.

@dominikg That is beautiful code. Thanks for providing that ! Going to try that out.

it's still very actual, and even more, because load is async between load function execution and starting template rendering can be executed many other load functions from different requests that overwrite global stores and provide race-condition.
Basically, we have no current way to implement i18n per request on SSR.
We are also very limited in how we can pass down parameters to the template in the per-request model.

@Rich-Harris Seems like we should close this issue and break it out into multiple parts. Some pieces of this have been fixed (i.e. "global config" can run in the hooks.{server|client}.js and will be called at startup rather than on first request). It'd probably be good to generate more-specific requirements as well.

the TLA solution i drafted above for async client init doesn't really work great with bundling, so one of the requirements would be an async client init hook.

@tcc-sejohnson my first message is very specific and still not solved. Maybe we must create a new task issues bounded to this one. IMHO this issue as feature request is good.


Android: null is not an object evaluating TfliteReactNative.loadmodel

Thanks for this project, it seems quite good.
I'm getting this issue when I try to run it on Android. Could you please help me?
Thanks!

Hi, looks like the library is not linked to your project properly. Can you please try manually linking it? https://github.com/shaqian/tflite-react-native#android

Hey I'm getting the same problem can you please help me Could not invoke TfliteReactNative.loadModel  null

Hi, looks like the library is not linked to your project properly. Can you please try manually linking it? https://github.com/shaqian/tflite-react-native#android

I had done this manually but still I'm facing the same error

I am facing the same error. Tried linking it manually too. Pls help as this is critical for the project

Thanks for this project, it seems quite good.
I'm getting this issue when I try to run it on Android. Could you please help me?
Thanks!

Android
In Android Studio (1.0 & above), right-click on the app folder and go to New > Folder > Assets Folder. Click Finish to create the assets folder.
Place the model and label files at app/src/main/assets.
In android/app/build.gradle, add the following setting in android block.
aaptOptions {
    noCompress 'tflite'
}

I have the same issue and already added the resources to android but is still not working.
Also I have downloaded other two models from elsewhere and they are working fine and I have added them to android.
So maybe the models that are not working are the problem?

Hi, have you tried to launch the app in Android Studio? You will be able to get more verbose trace.

Yes, I have tried and I get:
Caused by: java.io.FileNotFoundException: models/model2.tflite
But my model is in that directory, I don't understand why I gey this.

I have also faced same issue

@LorandP @sgc445
Please make sure you copied the models folder to app/src/main/assets and confirm it from Android Studio.

Thanks, Solved my issue.

Same issue on iOS

@LorandP @sgc445
Please make sure you copied the models folder to app/src/main/assets and confirm it from Android Studio.

Where exactly should I put models for iOS?
Thanks in advance.

Same issue on iOS

@LorandP @sgc445
Please make sure you copied the models folder to app/src/main/assets and confirm it from Android Studio.

Where exactly should I put models for iOS?
Thanks in advance.

Any luck?


Add a constrainCenter option to ol.View

IThis is unfinished work. Probably needs discussions, tests and a better example. I'm just creating this PR for people to be able track progress on this. See this post and this post on the mailing list for related discussions.
EDIT: and this question on StackOverflow.

For anyone waiting on this, I posted a temporary solution of sorts to the Stackoverflow question mentioned in the OP.

Is there any chance that the pull request gets merged in one of the next versions?

@elemoine can you resurrect this (rebase, resolve conflicts, and merge if you like it)?

I'll try to go back to this for the next release.

@elemoine, just a gentle reminder that you wanted to go back to this. If you don't have much time, it'd also be nice if you could just update what's here to remove conflicts. Your remaining concerns could be addressed in a separate pull request.

I've just rebased this. But this cannot be merged as-is. The example doesn't work correctly. You'll observe jumps when the view is at minZoom and you try to zoom out again (with the mousewheel or the zoom control's minus button).

Is this still going anywhere?
I recently build a custom restricted extent implementation for an OL3 project I was working on, and was wondering if I would be better off polishing it up and contribuiting it seperately?
It seems like restricted extent is one portion of this PR, but not the main goal.

@tbarsballe Thanks for asking. Currently, the extent option on ol.View creates a center constraint. This means that you will be able to pan the map to any place where the center is within the specified extent. If we had an additional boolean restrictExtent (or whatever a good name for it would be) option, the configured extent could be used to restrict panning and zooming to places where the whole viewport is within that extent. Is this along the lines of what you had in mind with your implementation?
I think the challenge with implementing this properly is restricting the zoom properly, and creating a nice user experience when zooming out an area that will not be fully within the constrained extent any more after zooming out.
That said, we'd gladly accept a contribution that is able to address this properly.

It seems to me that things would get very tricky as soon as the map is rotated! But if it can be made to work, it'd certainly be a very useful feature.

Yes, rotation will be equally challenging as the zoom user experience I outlined above.

@ahocevar Yes, that was aproximately what I had in mind, although I was thinking of restrictedExtent as its own ol.Extent value, not neccessarily the same as the extent of the view. My solution for zoom was to have a custom zoom constraint that does not allow zooming outside of the bounds of the extent.
One requirement for both these constraints is that the view needs to be aware of the element it is getting drawn in (in the same way that Map has a target parameter) in order to determine the size and aspect ratio of the actual view.
I had not considered how rotation would act with this, and don't really have a good solution. I feel like rotation would have to be mutually exclusive with restricted extent.

@tbarsballe:

I was thinking of restrictedExtent as its own ol.Extent value, not neccessarily the same as the extent of the view.

Where would it make sense to keep those separate? Or in other words: what would be a use case for having a larger restrictedExtent than extent? Because in the opposite case, when restrictedExtent is smaller than extent, you would never reach the bounds of extent.

My solution for zoom was to have a custom zoom constraint that does not allow zooming outside of the bounds of the extent.

That sounds good. And even better if the restrictExtent option can influence the default zoom constraint so it does this.

One requirement for both these constraints is that the view needs to be aware of the element it is getting drawn in (in the same way that Map has a target parameter) in order to determine the size and aspect ratio of the actual view.

To constrain center, resolution and rotation, ol.View#constrain* functions are called by ol.interaction.Interaction instances, which know about the map and can use ol.Map#getSize to get the size of the view. So these constrain* functions could be called with the size as additional argument.

I had not considered how rotation would act with this, and don't really have a good solution. I feel like rotation would have to be mutually exclusive with restricted extent.

It could work similar to the way you handle zoom - with a rotation constraint that only allows rotations where the viewport wouldn't exceed the restricted extent.

Any news on this issue? Unfortunately I am not able to help with code.

This PR works like this example (on ol2)?
http://dev.openlayers.org/examples/restricted-extent.html
And I check this issue https://github.com/openlayers/ol3/issues/1243 but it not correct because above example (restrictedExtent in ol2) restrict drag area but in this issue (extent in ol3) couldn't restrict drag area correctly. I want to restrict drag area.

Any news on this issue yet? Looking forward to this functionality. Thanks a lot!


Update site-recovery-limits.md

Updated number of servers, and replaced with numbers of appliances per RSV. There is not a hard limit regarding number of servers replicated per RSV. This is confirmed with PG for ASR.

@csilauraa @lalexms

Can you review this PR?
IMPORTANT: When this content is ready to merge, you must add #sign-off in a comment or the approval may get overlooked.

#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

@csilauraa @lalexms

Can you review this PR?
IMPORTANT: When this content is ready to merge, you must add #sign-off in a comment or the approval may get overlooked.

#label:"aq-pr-triaged" @MicrosoftDocs/public-repo-pr-review-team

Hi, Who can approve this please? If any more context, or background is required, please let me know :)

@Jak-MS @DP-Miller It appears that this article is from 2015 and the metadata is all outdated. I don't know who to redirect you to, unfortunately, as I haven't been part of that org for almost 9 years.

@Jak-MS @DP-Miller It appears that this article is from 2015 and the metadata is all outdated. I don't know who to redirect you to, unfortunately, as I haven't been part of that org for almost 9 years.

No worries :) @Jak-MS  Can you help please?

@tfitzmac - Can you review the change in this include file that's used in an article of yours?

#sign-off


Is the loadPropsOnServer example up-to-date?

I tried following the server example in README.md but got the error cb is not a function. After looking at loadPropsOnServer it looks like it's expecting 3 arguments where the last is the callback whereas the example has 2 unless I'm missing something?
What should be passed as the second argument, loadContext?
Other than that this library solves a much needed problem so thanks very much :)

put null as the second argument if you don't want to pass loadContext. So yes, context is there

Thanks @zackify .
Sorry, just realised that there's already a PR for this https://github.com/ryanflorence/async-props/pull/60.
What would the loadContext be used for if it was passed? Populating components' contexts?

Say you have some stuff you want loadProps to know about. Like the request
IP address. You can pass that in to loadProps and have access to it. Or
possibly a cookie. Can't think of a better example right now.
On Thu, Apr 14, 2016 at 11:03 Tim<EMAIL_ADDRESS>wrote:

Thanks @zackify https://github.com/zackify .
Sorry, just realised that there's already a PR for this #60
https://github.com/ryanflorence/async-props/pull/60.
What would the loadContext be used for if it was passed? Populating
components' contexts?
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/ryanflorence/async-props/issues/63#issuecomment-209988704

That makes sense, thanks for the clarification.


WIP: element-desktop cross build issues

element-desktop fails to build with crosscompilation.
I fixed 2 problems (pkg-config invocation, as well as calling fix_yarn_lock), but it uncover two more problems.

keytar haven't access to libsecret-1 via pkg-config (even if it correctly invoked)
seshat unable to link with libsqlcipher.so (even if it detect correct aarch64-linux crosscoompiled library)

proper command for reproducing: nix-build -A pkgsCross.aarch64-multiplatform.element-desktop

@Ma27 I randomly tag you, as you a member of matrix team, could you please mention appropriate maintainer


Request: add options param like 'tap' has for todos.

First off, thank you so much for tapes! Really solves a lot of issues when testing with before/after each.
I was using regular 'tap' until I have so major problems on windows trying to browserify and pipe to the browser. Literally cost me two days of time to figure out all of the compiling issues and still never worked.
What 'tap' had was an options object as the 2nd param of each tap.test which had a very useful thing for TDD ex. { todo: true }. This allows the test to run but is output in purple using tap-spec and is in a 'pending' category.
This allowed for pure TDD where I could map out and object's API with tests and then go code without forgetting which tests I needed to do.
Thoughts?

Sounds like an interesting idea.
Can you show me and example in code?

http://www.node-tap.org/api/
Under t.test look at the options.
{
  todo: true
}

Example:
t.test('some test', { todo: true }, function (t) { t.end(); });

is what I used the most.


dowload of 2.1

where is release of
""[10.09.2022] - Version 2.1 has been released. The ability to drag and drop images into the application has been added, error handling has been improved, and the process of saving the result has been simplified.""

There is no binary release for this version. It is necessary to assemble the required assembly (Artistic/Stable, Float/Half, SIMD/notSIMD) yourself according to the instructions from the README.


Default type parameter of WalkContext and AbstractWalker to void

PR checklist

[ ] Addresses an existing issue: #0000
[ ] New feature, bugfix, or enhancement

[ ] Includes tests

[ ] Documentation update

Overview of change:
Most rules take no options, so it's simpler to not require a type parameter.
CHANGELOG.md entry:
[api] WalkContext and AbstractWalker type parameter defaults to void

Doesn't this force custom rules to now use TS 2.3? I consider that a breaking change

at this point i think a minimum TS dep of 2.3 is fine.
@andy-hanson can you please update this PR? or close it.


[GSSoC'23]: Add a Netflix frontend clone

Describe the project you want to add with tech stack
A netflix frontend clone with only the landing page. Tech stack: HTML, CSS
Expected behavior
The Website will faeature some popular webseries' info and will be like the neflix home page
Screenshots (optional)

@MohitGupta121 @pranjay-poddar please assign me this issue

@MohitGupta121 please review and mergi this PR
issue: #2090
PR: #2098


Add option to skip recompiles

I'll just create a PR from #244 in case you're interested.
I'm unsure how to test this, doesn't seem like any tests runs the compilation twice

@jantimon Thoughts? I think that cache is not sufficient for my use case (I know the name s of all files, so I only need the html output once), and cache tries to be smart and see if there are any new assets. When I as a user know that there's not, I can apply this optimization.

Would prefer to fix the caching instead of implementing a work a round


default template will broken md syntax when highlight codeblock

Hey @quanru , sorry for the late reply.
Yeah, it happens because we also use code blocks for highlighted content. Trying to think about a way to solve this


remove *.png from .gitignore

There are committed png files, so we don't want to ignore all of them, right? 🤔
Having files gitignored and committed confuses release-plz. Is this a common pattern?
Usually I don't gitignore things I commit.
Committed png files: ["assets/a_logo.png", "examples/websocket-relay/synthcat.png"].
Alternative
Remove the committed .png.

Yep, we were force adding the couple we wanted, but makes sense to ignore the ones we really don't want.


Invite people modal uses odd button styling

Go to a group page, then click the "Invite People" button.  The styling is not the hydroshare standard and there should probably be some padding between the button and the field.
002.zip

181120_181120_test-env.txt

If you have questions about layout, you can ask @Lizabrazil , though Neal's suggestion seems good.

In Chrome it is looking fine.
@ndebuhr @cuahsimarko

Chrome and Firefox screenshots .
@ndebuhr @cuahsimarko


Added logscale options

Graph of exponential function fit with y axis logscaled:

I managed to solve it with FuncFormatter, but still not in scientific style (100000 instead of  10^5).

Thank you @OhadNir9 for the contribution!
I didn't change a lot of things, just moved the scaling switches next to the axis titles text inputs, and added command shortcuts to toggle those switches (ctrl+x and xcrl+y).
I fixed the ticks problem using the FuncFormatter as you did in EddLabs/eddington#104. The reason for that bug is because of beeware/toga-chart#11.  We have to wait until it is fixed in order to solve the problem here. Until then, at least we have something that works.
If you have the time and endurance to try and solve the problem in toga-chart, that would be awesome. I didn't get the chance to sit down and try to tackle this bug because of prior commitments.


Fix elm-oracle path

As you go deeper in the nested folders the autocomplete does not work anymore because it can't find the installed modules.

Fixed doing some magic around the project path in 6872e1c4a0a542bf6727ccafbbdc14ca49e062d5.


Hanging on "[+] Got message from Agent at"

Hi, I've got a problem (probably with stager but I'm not sure how can I debug).
First of all I don't know how did it work for you ;> because you completely ignore the URL option (I had to add one line in checkOptions()), other problem was with my SSL cert but I added new Transport object to the http client with InsecureSkipVerify set to true.
Anyway after that I was able to run liniaal. I've got listening Empire http_mapi:

then I run liniaal:

then I run empire's http_mapi launcher on a victim machine.
After that I see

[+] Got message from Agent at: 09/08/2017 03:40:21

where the time you see above is still updating.
I added few output() in getMessage() function do debug this and I see that liniaal is receiving the messages over and over which are the same:
the messageSubject is

mailpireout

and the payload is

PMSTAGE - #base64-here#

Maybe do you have some idea what can be wrong? Thanks!
P.S.: really nice research!
P.S.2: when I will be able to test everything properly I'm going to pull the modifications I mentioned before.

Hi!
Firstly, thanks for trying it out! Didn't think anyone would :+1:
Thanks
You are absolutely right, the URL wasn't being set, in my rush to get it ready for the Troopers talk, I didn't test with URL. My test domains were all auto resolving, hence the missed URL.
Same with the HTTPS, I relied on InsecureSkipVerify being set in the upstream Ruler library, but that is only for autodiscover.
^ A PR of your changes will be very welcome!
Real issue
I've been trying to reproduce on my side.
Setup:
liniaal - Master (with an added output(string(payload)) )
Empire - Master (commit - 37c72f0428d68edc36d4e19ee3540770ef12d981)
For http_mapi - I'm using the one that has been merged into Empire (although this should be the same as in the liniaal repo)
In Empire:
  Name              Required    Value                            Description
  ----              --------    -------                          -----------
  KillDate          False                                        Date for the listener to exit (MM/dd/yyyy).
  Name              True        mapi                             Name for the listener.
  DefaultProfile    True        /admin/get.php,/news.php,/login/ Default communication profile for the agent.
                                process.php|Mozilla/5.0 (Windows
                                NT 6.1; WOW64; Trident/7.0;
                                rv:11.0) like Gecko
  DefaultLostLimit  True        60                               Number of missed checkins before exiting
  DefaultDelay      True        20                               Agent delay/reach back interval (in seconds).
  Host              True        http://<IP_ADDRESS>:8080           Hostname/IP for staging.
  Email             False                                        The email address of our target
  WorkingHours      False                                        Hours for the agent to operate (09:00-17:00).
  CertPath          False                                        Certificate path for https listeners.
  DefaultJitter     True        0.0                              Jitter in agent reachback interval (0.0-1.0).
  Folder            True        Liniaal                          The hidden folder in Exchange to user
  Port              True        8080                             Port for the listener.
  BindIP            True        <IP_ADDRESS>                          The IP to bind to on the control server.
  StagingKey        True<EMAIL_ADDRESS>Staging key for initial agent negotiation.
  ServerVersion     True        Microsoft-IIS/7.5                TServer header for the control server.

In Liniaal
> set EmailAddress<EMAIL_ADDRESS>> set Password<EMAIL_ADDRESS>> set Host http://<IP_ADDRESS>:8080
> execute

For the launcher, I've taken the one from Empire and removed -NoP -sta -NonI -W Hidden (so I can see if something breaks) - And executed on my target

Finding Possible Issues

Running the launcher without -NoP -sta -NonI -W Hidden could help show up issues in the powershell. Maybe there is something killing the powershell?

Starting Empire with --debug 2 would show errors that might be occurring during the staging

Possible that there are multiple-mailboxes (although you are getting the stage, so I doubt this is it)

I'm going to try another domain and think of a few other issues that might be causing this.
Thanks again for trying it out, having the patience to find a fix for my omissions and finally putting together a detailed issue.

Oh and another thing to try,
You can flush the message folder, it could be that there are a few messages hanging around and they are causing sync issues between empire and the agent.
with Liniaal:
flush           remove all messages currently in the hidden folder
> flush

This should clear out all the messages. And you can try the launcher again

I didn't suspect so quick answer! Thank you.
Tomorrow morning I will try to reproduce your moves step by step.
I forgot to mention that I use the newest version of Empire and I had to put some modification in your empire's part as well. If I good remember in
https://github.com/sensepost/liniaal/blob/f79f0241de65c85c56d55c6ce54ba70a129b01bd/empire/lib/listeners/http_mapi.py#L221
Look at original http listener
https://github.com/EmpireProject/Empire/blob/37c72f0428d68edc36d4e19ee3540770ef12d981/lib/listeners/http.py#L258
I had to add second argument (launcher) to powershell_launcher function. Without this launcher could not be generated.

Using docker isn't always the best for this.. I thought I was using the container with the Empire folder mapped through, and testing with latest empire. Turns out I didn't and was still on the 2.0_beta branch.
I've made the changes to the listener as required. I had to add the launcher as an option and then add the same change as you did above. I've merged this into master with commit b70cb05ff05814ade0b2e2123119ab5c1b7cca12
Tested and it's all working for me in testing. Only other issue I can think is that there are messages hanging around, I recommend a "flush" or using a new folder.

Hi! No worries :)
I flushed everything, started launcher without -NoP -sta -NonI -W Hidden but still without success (I don't see any messages on CMD on my "victim" machine:

Empire with --debug 2 is silent like a fish as well:

and here liniaal:

It doesn't receive PMPOST payload. I found the loop ends on condition in line 212:
https://github.com/sensepost/liniaal/blob/b70cb05ff05814ade0b2e2123119ab5c1b7cca12/liniaal.go#L212

It seems like it isn't completing the connection to Empire, because --debug 2 would show up any connections coming in.
Could you try with some output added on line 213:
	if err != nil {
            output(err.Error())
	    continue
      }

Eh man, I don't know why I thought there is err == nil... anyway it was indeed connection problem so I checked my Empire listeners one more time and what I realized my BindIP was  not equal to host (my big mistake!), after that I was few step further but it still didn't want to work.
What I noticed on my "victim" screen:

Do you know that? It's Windows 8.1 and Office 2013. For now I don't have possibility to test liniaal on Windows 10 (Maybe tomorrow I will have then I will test it).
Regarding this question box when I allowed access for a 10 minutes then I received agent in Empire:

Anyway this additional interaction from victim side puts this technique under a question mark.

Ah! Ok :smile:  When I looked back at your screenshot I noticed http and mapi had different IPs set, thought it might be a dual homed box.
So for the next bit, that is an "AV problem"
That is outlook's programmatic access protection. I'm assuming that host has no AV installed, or the AV is out dated? The default security for Outlook is to block programmatic access if the AV is outdated or not installed. Completely forgot about this. My theory is that in any corporate environment, what is "best practice"? Install AV of course! And as soon as AV is installed, Outlook becomes vulnerable.. I love the irony.
If you go to File -> Options -> Trust Center -> Trust Center Settings
Then go to "Programmatic access"
(you may need to start Outlook as an admin to change this setting)

So I've been testing on Win10 and Office 2016 (insider channel) and it works. With win10 you get the benefit of Defender being installed/active by default. So you don't run into programmatic access warnings.

Cool, thank you very much. I will confirm that when I test it on other configuration.
Anyway I see you resolved the issue. The main mistake was on my side (BindIP in empire) but in mean time we found few other places to repair.
Thank you very much for your help!

Happy it's working and thanks so much for raising the issue. And helping squash those bugs.
If anything else pops, please let me know!

I confirm that  on Windows 10 Outlook pop-ups the warning-box when Defender is disabled, When the Defender is enabled, victim doesn't see any boxes... nice 😆

AV to the rescue :rofl:
The irony of this kills me


PixivUtil Settings Help and General Questions

My PixivUtil sometimes re-downloads copies of images I already have (Same File Size, Same Pixel-Count). I want it to always check every image in case an image was updated/changed but I don’t want it to redownload images that are 100% identical to it.
It occasionally catches duplicate images by saying Identical Size but not always.
When PixivUtil re-downloads an image it’ll add a string of numbers to the original file.
Since PixivUtil has downloaded copies of images I already have, does anyone have any advice on how to clean up these additional and renamed images? (mass-deletion, renaming, etc.)
Also, sometimes when an image is being downloaded, there will be yellow dots and a yellow square where a solid green line should be. I’ve looked around but I can’t seem to find out what this means.
Sorry for all the questions in a single post. I’ve used PixivUtil heavily for a few years now, but I’ve hardly interacted with the community, so these questions have built up over time.
I’ll attach my config file below, in case it's helpful.
config.txt

Ah, that explains why there are occasional redownloads of the same image. I'll look for software with a regex search option since I'm not experienced in writing Python, or even code, for that matter.
If the image itself, not just the metadata, was changed, would there be a better way to check and download them?
As for the yellow dots and squares, do you know what's causing this? This sometimes happens on fresh downloads as well. Is it something to be concerned about?

wiztree from here https://diskanalyzer.com/ does have regex support
Regular Expression Search ([regex](https://en.wikipedia.org/wiki/Regular_expression))
WizTree 4.13 and later supports regular expression search.

Type in a forward slash (/) followed directly by the regular expression you wish to use, e.g.:
/[0-9]{4}-[0-9]{2}-[0-9]{2}\.csv$

If the regular expression contains spaces, enclose it in double quotes, like this:
/"[0-9]{4} [0-9]{2} [0-9]{2}\.csv$"

If the image itself, not just the metadata, was changed, would there be a better way to check and download them?

if the image was updated, it will change the file and automatically downloaded. The problem is finding whether only the metadata was changed or the image was changed.
if you want to keep file if the image was changed. That would need comparing the image data itself not the whole file. Complicated, if there wasn't already stuff out there that does exactly that
For the yellow progress bar. I've just not concerned myself with it

Thanks for the link; I'll look into it!
I see, so the only way to feasibly do this is to manually check and clean the files afterwards.
Since the yellow progress bar doesn't concern you, then I won't let it concern me. However, I am curious as to why it's doing that.

Sorry to open this issue again; however, would there be a different way to check and download updated images without them being redownloaded if just the metadata or file hash was changed?

Sorry to open this issue again; however, would there be a different way to check and download updated images without them being redownloaded if just the metadata or file hash was changed?

Sorry to open this issue again; however, would there be a different way to check and download updated images without them being redownloaded if just the metadata or file hash was changed?

Let me try to explain how I think this works. Program checks if image is in database, if not, then it will save metadata about the image and downloads it. If the image was updated in any way by the artist, it will get picked up and the image is downloaded again and the old file is renamed. All it knows is the image has been updated.
There isn't a way to check how the file's been changed without downloading it and you processing it afterwards since the program just downloads the updated image.

Alright, thank you for the additional explanation. If I have anymore questions, I'll just open up a new issue.
Perhaps a feature in the future to prevent this kind of thing from happening would be a good addition, if possible.
I really appreciate your help through all this.

If you don't want the program creating files with file.[unix time], set backupOldFile=False in config.ini
But the old file will be deleted if the post is updated

I think I'll eventually try the manual option to clean up files that are duplicates, since I enjoy having all the versions of an image that were posted. However, I might turn off CheckFileSize in the future as well, just to save the headache. I'm still unsure.

Logging in with cookie doesn't work for me. I tried to logout-login and get new cookies so many times, still not working.


docs: Add guidlines for responding to a review feedback.

Added a section to our code-reviewing document based on the discussion here - https://chat.zulip.org/#narrow/stream/2-general/topic/responding.20to.20review.20feedback/near/1127414

Merged, thanks @sumanthvrao and @gnprice!


input from Michael

typical use case: the Pod's owner cares about what apps can access various locations in their Pod as the owner, and doesn't care about apps used by visitors (especially because visitors can lie).
any indication by an IdP (example: OpenID Provider) or in the user's profile about trust or desired permission limits would be at the discretion of the Resource Server (RS) to honor anyway.  an IdP doesn't have standing to govern permissions in an unassociated RS. an enumeration of trusted applications and permissions in the user's profile would need to be publicly accessible in order to be used at an unassociated RS (unacceptable for privacy and security), and the current acl:trustedApp scheme doesn't solve the "access for just my chats" use case.
i propose the following:

client attempts authenticated (webid + appid) access to a resource
403 Forbidden response

if appropriate, include request-permission URI (new link rel= or new header)
"appropriate" depends on resource server policy

maybe only when webid is the owner
maybe for special webids
maybe for anybody

request-permission URI includes enough information to recover webid, appid, method, and relevant portion of original URI (examples: stateless signed direct encoding, opaque key to DB record)
request-permission URI SHOULD only be valid for a limited time

to request permission, POST to request-permission URI

auth probably not needed, but requires more thought
if auth is needed, URI SHOULD be in the same protection space as original URI if possible so auth credentials can be reused

response to request-permission can include a link to a management UI if available

depending on RS policy, who's requesting, etc.

if desired, app redirects user's trusted browser to management UI in Resource Server

not in a frame
include a redirect_uri&state back to app

user interacts with management UI in RS to process permission request(s)

requires first-party (example: cookie) login
SHOULD NOT "Access-Control-Allow-Credentials"
SHOULD use anti-XSRF
SHOULD use frame-busting
when done, can 302 redirect back to app

alternatively, user can log into RS UI in the future to review and approve pending permission requests.

depending on RS policy, might be needed for third party (non-owner) requests

the notion of "permission" and the operation of the UI is entirely up to the RS. the functionality the user expects is that, if the necessary access is granted, the original request will not be 403 Forbidden if repeated.
for WAC, adding an app/origin analog of acl:agentGroup (such as acl:appGroup or acl:originGroup) may be helpful.  the RS can have UI and/or APIs for managing internal app groups so they can be hidden from outside access (to preserve privacy).
app groups could allow the owner to define arbitrary roles/scopes for apps, such as "chat", "photos", "music", etc., as coarse or as fine as desired.
for app groups, the RS can use heuristics or configuration to determine what groups/roles/scopes might be needed to satisfy the original request and likely related requests. those could be highlighted among all possible scopes, or only those could be presented (using a new challenge if additional scopes are required later by that app).

note that this method is independent of how identity works (doesn't need to be webid, doesn't need to be based on OIDC or WebID-TLS), how authorization works (doesn't need to be bearer tokens or cookies or WebID-TLS), how permissions work (doesn't need to be WAC), and how granting access works (maybe you can get access if you pay a dollar in the management UI).

We discussed this in today's call, I love it! Especially how the app requests 1 resource first, and that serves as just an example of the scopes it's requesting access to, and it's then up to resource server + user to handle the generalization from that one URI to a group of URIs to grant access for, there is no need to describe scopes in any way.

@michielbdejong a basic server implementation could, in the management UI, always present all available/defined scopes for the user/admin to select. more sophisticated management could guess what scopes were needed based on the original request.

a basic server implementation could, in the management UI

Just quickly stepping in for a remark here:
currently, there is no requirement for servers to have any UI—and I am not sure their should be.
We might rather want to see the management UI as an app, on top of an RDF API the server implements. That way, there can be different UIs for different cases and people.
Hence, the server vs app question might need an issue of its own.

@RubenVerborgh

currently, there is no requirement for servers to have any UI—and I am not sure their should be.

agreed. there is no requirement in this proposal for the server to have a UI of any sort, though i think it's likely a practical and usable server will have a web-based management UI to do "owner" stuff.
i reworded step 4 to hopefully make it clearer that a link to a management UI is optional in this protocol, since there might not be a web-based one (or a do-it-immediately one).

a basic server implementation could, in the management UI

a very basic server might send the owner email saying to go check the request queue and update configuration files and ACLs with their favorite text editor.  :)

here is a concrete example interaction (note x-permission-* is a placeholder for now pending a good name).
the client attempts an authenticated access to a resource:
→
GET /some/restricted/resource HTTP/2
Host: alice.example
Origin: https://other.example
Authorization: Bearer gZDES1DqHf1i3zydSqfnsgGhkMgc4gcbpnCHSCcQ

the server determines the client has insufficient privilege (for example, the app the user is using isn't allowed). the server supports requesting additional privilege and determines it is appropriate to allow the client to do so (for example, because the authenticated user is the owner). the response includes a Link with rel="x-permission-request":
←
HTTP/2 403 Forbidden
Access-Control-Allow-Origin: https://other.example
Access-Control-Expose-Headers: Link
Content-type: text/html; charset=utf-8
Cache-control: no-cache, no-store
Date: Fri, 09 Aug 2019 05:09:18 GMT
Link: </auth/request-permission?r=8374B650-4974-4E14-A7DF-8729041A96D8>; rel="x-permission-request"; expires_in="600"

<html>Your app is not allowed... Yet.</html>

the client application determines to request additional privilege and POSTs to the x-permission-request URI (without credentials):
→
POST /auth/request-permission?r=8374B650-4974-4E14-A7DF-8729041A96D8 HTTP/2
Host: alice.example
Origin: https://other.example
Content-type: application/x-www-form-urlencoded

the server accepts and queues the request for additional privilege. additionally, the server can provide a web-based interface for managing requests for additional privilege, and determines it's appropriate to give the client application a link to the interface (for example, because the authenticated user to which the x-permission-request link was given is the owner):
←
HTTP/2 202 Accepted
Access-Control-Allow-Origin: https://other.example
Content-type: application/json; charset=utf-8
Cache-control: no-cache, no-store
Date: Fri, 09 Aug 2019 05:09:19 GMT

{
    "x-permission-management-page": "https://alice.example/auth/permission-queue?r=07FE5FA4-A3F1-4F83-A6E4-41220A538BDB"
}

the client application determines to present the web-based server management interface to the user. the client redirects the browser to https://alice.example/auth/permission-queue?r=07FE5FA4-A3F1-4F83-A6E4-41220A538BDB&redirect_uri=https://other.example/app/page.html%23state%3D3SNflxua6WiOgQmp1YSSg5dPNOpEG0nubd3p3NthHuJb, which is the x-permission-management-page URI with a redirect_uri parameter added. the redirect_uri here contains a state parameter in the fragment identifier to allow the application to resume where it left off.
the user interacts with the management UI, perhaps granting necessary additional privilege. eventually the management activity concludes, and the management interface redirects back to the app:
←
HTTP/2 302 Found
Date: Fri, 09 Aug 2019 05:10:00 GMT
Location: https://other.example/app/page.html#state=3SNflxua6WiOgQmp1YSSg5dPNOpEG0nubd3p3NthHuJb

the client application can now resume. note that sufficient privilege to access desired resources might not have been granted during the management activity, so the entire process might play out again.

I just had a thought. This flow works very well with discovery if there exists a generic API route to do discovery.
For example. You could have a route like /all?shape=https://linktoshape.com. If you don't have access to all shapes of that type, you will receive the options outlined above.

So in that sense there's a strong connection to / dependency on shape discovery (in the data interop panel).

resolved by #18.


[Bug] cargo install --path . not working properly

🐛 Bug Report

Steps to Reproduce
cargo install --path .

Installing snarkos v2.0.2 (/home/users/chojnar1/Desktop/personal/crypto/snarkOS)
Updating crates.io index
error: failed to compile snarkos v2.0.2 (/home/users/chojnar1/Desktop/personal/crypto/snarkOS), intermediate artifacts can be found at /home/users/chojnar1/Desktop/personal/crypto/snarkOS/target
Caused by:
failed to open: /home/users/chojnar1/Desktop/personal/crypto/snarkOS/target/release/.cargo-lock
Caused by:
Permission denied (os error 13)```

Your Environment
rustc --version
rustc 1.65.0 (897e37553 2022-11-02)

Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.5 LTS
Release:	20.04
Codename:	focal

Do you have the write permission of your /snarkOS folder?
When you run following command under the same path with the /snarkOS
$ls -l ../

What's your output?
Try to run
sudo chown -R $(whoami) /home/users/chojnar1/Desktop/personal/crypto/snarkOS/

?

Closing due to inactivity. Please feel free to reopen if the issue persists, and provide the extra requested information (it does seem like it's an issue with your local user rights).


vue-cropperjs won't install with Vue 2.1.0 because of rigid peer dependency

 :~$ npm install --save vue-cropperjs
 /home/myName
 ├── UNMET PEER DEPENDENCY<EMAIL_ADDRESS> └─┬<EMAIL_ADDRESS>   └──<EMAIL_ADDRESS>
 npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.

I have Vue 2.1.0 installed:
 "raw"<EMAIL_ADDRESS>In your package.json can you change this:
   "peerDependencies": {
     "vue": ">=2.0.0"
   },

to this:
   "peerDependencies": {
     "vue": ">=^2.0.0"
   },

Just close this. It works as expected. I was in the wrong directory. Silly mistake. :(


Keep swapi data local

It's occurred to me that my approach to this server so far has been pretty absurd in the sense of not close to reality. Currently it is acting simply as a middle man, trying to replicate swapi endpoints in order to hit swapi end points.
SWAPI is made to be hit from the front end. Hitting it from the back end is super redundant.
Realistically, the server should be connecting to a database, and sending data from the db back to the client.
So in the case of this workshop:

I should keep as much swapi data as local as possible
clean up / enhance the swapi data a bit (ie: replace urls to names of people with the person's name, etc)
instead of getting data from swapi, send the local data back to the client
make swapi data into local json files

Be sure to mention this in the workshop, and contrast it with how it would normally work in real world where this express server hits a database somewhere else and sends that data to the client.

closed via #9


chore: edit balance test

Try out this version of the Hiro Wallet - download extension builds.

chore: edit balance test to remove Stella, this should fix the test error your getting.

cc/  @fbwoolf @beguene

Fixed the issue @fbwoolf can I put his live


Unable to instantiate multiple clients

Describe the feature request
Spinning up many clients for testing (or just as a general architectural decision) is not possible as it is.
Which project is your feature request related to

Client
ManagedClient

Describe the solution you'd like
Binding to port 0 for the client socket
Describe alternatives you've considered
Exposing ReuseSocket option out through the options builder
Additional context
I am perfectly willing to perform the changes myself

What exception do you get? Having multiple clients should be no problem.

If I instantiate 2 clients to the same broker I stop receiving messages.  With one client it's fine.

Sorry, the problem was in my test.  Withdrawing.


Add clustering support (based on Redis)

This PR aim to allow to deploy Leshan in a Cluster.
The first step was to add  ClientRegistry, SecurityRegistry and ObservationRegistry implementation based on Redis to Leshan Server Demo. (Previously done in #89  and #93)
The Redis ObservationRegistry implementation is based on the californium PR #16. So you need to get it and build it locally to test it.
This work is still in progress.

Hi Julien
based on the discussion in PR#89 I have a suggestion:
I fully agree with you to keep leshan-core as a pure LWM2M protocol library, without clustering.
But what about those who do not use the demo server , rather use their own server implementation.
Perhaps we could establish a new Cluster Layer which could used from demo serve and all other server implementations, but not have to.

Hello everybody
are there any news regarding this two impediments?
CQ under review for jedis + common-pool2
http://dev.eclipse.org/ipzilla/show_bug.cgi?id=11027
http://dev.eclipse.org/ipzilla/show_bug.cgi?id=11029
otherwise we would be pleased if this PR is merged into the master.
We have had good experience and think that it is a good basis for proposed Cluster

Thanks @ingoschaal for the feedback!
The CQ are validated. Now we are waiting for https://github.com/eclipse/californium/pull/16 merge & release in californium.

Another question:
The consistency concept of Redis is eventual consistency. This means that the write operation is not directly propagated to all replicas.
The KeyToken which is generated in Californium Matcher should be unique to the server.
What happens when the same token is generated to be persisted on a cluster which is not synchronized at this thime?
Is redis at this point the right choice?
Or concerns this Problem only PR #16

Hi @jvermillard and others,
regarding the upcoming merge into the master branch: Currently all LWM2M Servers that are based on Eclipse Leshan but have their own server implementation would need to include the demo server in order to use the new clustering feature. That's something I would like to avoid in our product and therefore I would propose to introduce a new module leshan-server-cluster (as an alternative one could also introduce a more generic module for all upcoming extensions of the core library, something like leshan-server-extensions).
What do you and others think? If everybody agrees we can provide a PR for that.
Thanks
Mathias

@mhemmeter,
I'm glad to see that you want to avoid to depend on leshan-server-demo, We take a lot of time to explain that leshan-server-demo is not intended to be directly reused. It's just a demo/example :)
Currently, we put all redis implementation in leshan-server-demo because this is still an experimental works, but we aims to make this reusable and so this will not stay in leshan-server-demo for ever ;) !

@sbernard31  I see you point and in general I would agree that the Redis stuff is still experimental. However, we could make it easier for people like @mhemmeter to test (end evolve) the code by putting it into a separate module that would not require them to depend on the demo server.
We can still put a disclaimer in there stating that this module is considered experimental ...

@ingoschaal  about the token issue.
In some rare cases, we can lost a token and so an observation. This is a trade-off between performance and consistency.
We will not be able to provide an implementation which covers all needs that's why we define interfaces to let users free to use adapted technology.
@sophokles73 I'm not sure to see the difference between depends on leshan-server-demo or leshen-server-experimental ;)

That's why I wouldn't call it leshan-server-experimental but put it in the right module from the beginning, e.g. leshan-server-clustering or whatever :-)

IMO the leshan maven modules already reached an unbearable level of over engineering for me :)
20k SLOC  and 9 modules.
Before introducing more module I would like to explore if we can merge some.
Since the main proponents of having californium  replaceable are gone I think we could merge:

leshan-server-core and leshan-server-cf
leshan-client-core and leshan-client-cf

I have no problem at all with merging them.
I also do not think that we need a separate module for the clustering stuff. We can simply add it to a new package within leshan-server-core as well, I guess.
Just out of curiosity: who is the party that was proposing the split up and that is now gone? Did I miss something?

@sophokles73: In  PR #89 it has been discussed that the leshan-server-core module is currently seen as a pure LWM2M protocol library and therefore the clustering feature was implemented as part of the demo server. As I can follow this argument I proposed to create a new module. But I would also be fine if it is included in the core in a separate package. My only wish is that it is not in the demo server :-)
Background of the request is that we are planning to invest in making the clustering feature production ready in the next months. So I would like to start having it in the right module from the beginning. leshan-server-clustering sounds good to me if it becomes a separate module.

I'm not sure the among of modules is a real problem.
The module separation is pretty simple : https://github.com/eclipse/leshan#modules
On the 9 module there is only 5 real modules (the others are just for tests and demos)
About merging cf and core, It would be a shame to lost the abstraction we introduce between LWM2M and transport layer. It could help us to implement LWM2M over other implementation or transport layer (CoAP/TCP).
About clustering, I'm not ok to create a leshan-server-clustering now, because I'm currently not able  to know if it's the right way to separate the code (for now we have only 2 classes to put on it ...). I suppose we can  move this 2 redis implementation from demo to core (with redis optional depency on server-core), but this will not make it less experimental. (sweeping dust under the carpet?)

Just for information.
OMA is developing OMA LwM2M v1.1 where one of the new features is CoAP over TCP.
I can prepare a summary of what is planned for OMA LwM2M v1.1 and post it in the distribution list if it helps.

About merging cf and core, It would be a shame to lost the abstraction we introduce between LWM2M and transport layer. It could help us to implement LWM2M over other implementation or transport layer (CoAP/TCP).
It's not about removing the abstraction, just keeping everything in one module, you are free to not use the Cf impl.
I think I'm a bit out of topic here :)

Seems like there is a veto from @sbernard31 for creating a separate clustering module. So what about moving the clustering implementation to leshan-server-core? If there are no objections we will create the pull request.

Ok, here's what I propose:

we create a module leshan-server-clustering in which create and evolve the clustering support. From my point of view it is totally acceptable to have code in there that is not (yet) perfect (in the end, which of our code is?).
indedpendently from that we can discuss which (other) modules to merge. I see the value of keeping the basic modules clean of dependencies that are only used for clustering, thus I prefer to have a separate module for it.

I cleaned the commit history and rebased it on master. I also move "clustering" code to a new  leshan-server-cluster module.
We are waiting now for a Californium 2.0.0-M1 release to integrate this PR in master.

This is now integrated in master :)

Sorry if this is a stupid question but what kind of advantages brings cluster based on Redis over usage of Bootstrap server ? My understanding is that Bootstrap server can act as load balancer and distribute clients between Leshan server instances. Will appreciate answer on this.

The bootstrap interface aims to provide essential information into the LWM2M Client to enable the LWM2M Client to perform the operation “Register” with one or more LWM2M Servers.
The idea is more about initializing information like credentials and server url.
You can have more details here.

Thank you for answer, I read this article and I was wondering if Bootstrap server can be used as Load Balancer. It seems that someone who created idea of Bootstrap server didn't took it under consideration.
Is it in your opinion good alternative to Leshan cluster which is based on Redis ? Actually we can put any logic in Bootstrap server, for example some Round Robin which could direct client to particular server based on hash.

We should move this discussion to the mailing list instead of having it on a merged PR ...


[numba] File numba bug report

[ ] construct minimal example documenting the issue we had in odu lecture (#210)
[ ] setup a bug report for numba with floating point values

May just need:
        elif isinstance(obj, float):
            return (obj,)

here

@najuzilu I think this is fixed now right?

Yes it has been fixed.

thanks @najuzilu I will leave you with the satisfaction of closing an issue :-)