Mouse Enter/Leave events for hover tooltips

Version
1.10.0
Development Environment
Chrome 71
Current Behavior
Currently it is possible to show popups on click but not on hover over an item
Expected Behavior
It should be possible to raise and mouseEnter/mouseLeave/focus which would allow implementors to show a tooltip with more event details before clicking the event. Since this event would need to be registered on the appropriate div it should be included in the calendar.

Hey guys, may be there is exist any way to show tooltip on event hover? This issue looks abandoned

@henryfool91
Unfortunately, we don't support hover events for schedules(events).
You can leverage the event delegation and native DOM APIs to show a tooltip when hovering over the schedule. Here's an example:
(Disclaimer: You need to create your own tooltip.)
Suppose there's a tooltip element in your application somewhere. I recommend it should be right below the body element.

</calendar>

Then let's bind some events.
const cal = new Calendar('#calendar', {
  defaultView: 'month',
  // ...
});
// ...

const tooltip = document.querySelector('#tooltip');
// This event listener should be debounced or it may affect the performance.
document.addEventListener('mouseover', (e) => {
  const el = e.target;

  // You need to choose a different selector for schedules in the other view.
  const schedule = el.closest('.tui-full-calendar-weekday-schedule');

  if (schedule) {
	// when the mouse leaves the schedule, hide the tooltip.
    schedule.addEventListener(
      'mouseleave',
      () => {
        tooltip.hidden = true;
      },
      { once: true } // Keep in mind that `options.once` doesn't support IE.
    );

	// Get the position of the schedule and set styles for the tooltip.
    const {
      x,
      width,
      bottom: scheduleBottom,
    } = schedule.getBoundingClientRect();
    tooltip.hidden = false;
    Object.assign(tooltip.style, {
      top: `${scheduleBottom}px`,
      left: `${x + Math.round(width / 2)}px`,
    });
  }
});

I hope this would be helpful. The working sandbox is here.
https://stackblitz.com/edit/tui-calendar-playground-ixbu4a?file=index.js

Wow, thanks a lot for such a detailed and helpful response, you are great!


⚠ Ausource International has degraded performance

In 4bb5a32, Ausource International (https://ausourceintl.com.au) experienced degraded performance:

HTTP code: 200
Response time: 20793 ms

Resolved: Ausource International performance has improved in b13a4d8.


[feature request] navigation from components in Component Tree to source code in IDE

Augury version (required): 1.19.1
Angular version (required): 4.4.3
Date: 8/2/18
OS: Windows 10
Description of issue:
I'm a frequent user of the Component Tree in Augury. Once I have located a component in which I'm interested, I usually next find myself digging through my application source code using my IDE to find the source code for that component. I'd like there to be a button next to each component in Augury that when clicked would cause my IDE to navigate to the source code for that component.
Here is a suggestion on how this could be implemented: There is a project called WallabyJS that ships as a series of extensions for various IDEs. For example, I'm using the WallabyJS extension for Visual Studio Code. When the Wallaby VS Code extension is run, it runs a web server on localhost which is accessible through Chrome. When viewed through Chrome, the web sever renders a web application with a user interface which looks like this:

Each of these lines in the interface is a unit test, and when the icon that is shaped like a pencil and paper next to a particular test is clicked, the VS Code extension (which is hosting the web interface) causes Visual Studio Code to navigate to the source code for that test.
Augury could cause Visual Studio Code to navigate to a component using the same technique. The Augury project would publish a series of IDE extensions, and one of these would be for Visual Studio Code. However, instead of hosting a web application, the Augury VS Code extension would host an API to which the Augury Chrome extension would connect. When the button next to a particular component in the Component Tree in the Augury Chrome extension is clicked, the Augury Chrome extension would call an endpoint on the API hosted by the Augury Visual Studio Code extension, which would result in the source code navigation.
I'd recommend starting by releasing the Visual Studio Code extension first, because VS Code is so popular with Angular developers. Extensions for other IDEs could be released at a later date.

Hi @walrus95. Thanks for the suggestion. This definitely sounds like something useful. Currently augury has "see source" in the properties tab which takes you to the chrome debugging. I agree that navigating directly to VS code, etc. would be even more useful though.
The current augury architecture is based around a devtool extension which would make it difficult to do what your proposing. That said, we have been working on some experimental proof of concepts that are not tied to devtools directly. In theory this would allow for the sort of thing to be possible. We will definitely keep this in mind moving forward.


Fix invalid field reference in "choices"

In the topics/db/models document Field options, the second element of choices is shown using ModelChoiceField.
Since choices uses ChoiceField, ModelChoiceField has been modified to ChoiceField.

That does look like a mistake, although I'm not sure what the sentence is trying to convey by saying "or". Also, it's not really the ChoiceField that displays something but the field's widget. Do you think we lose anything by saying, "The second element will be displayed by the field's form widget."
I'd guess the original text is referencing https://github.com/django/django/blob/4d60261b2a77460b4c127c3d832518b95e11a0ac/django/db/models/fields/init.py#L862


Flaky test: mForkProcessSandbox.CaptureOutputFromChildProcess

[----------] 1 test from ForkProcessSandbox
[ RUN      ] ForkProcessSandbox.CaptureOutputFromChildProcess
[       OK ] ForkProcessSandbox.CaptureOutputFromChildProcess (12 ms)
[----------] 1 test from ForkProcessSandbox (12 ms total)

I saw it failing on
  ASSERT_EQ(result.Status, Passed);

Just hit it once. So it happens once in a month 😞

Usual way of fixing this would be to run the test 100...x times so increase the reproducibility.


Safari issue in Macbook

Hi,
I have downloaded your application and using it in my application.
I have downloaded the plugin for windows and it is working fine in all 4 browsers in Windows machine.
But when i try to download the plugin in Macbook it is downloaded but not installing it in the machine.
Then i googled it and found that we can directly place that file in Library/internet-plugin folder.
Then i placed that plugin in the specified folder.
Now it is opening with local video showing up. But when i try to load remote video it closes local video as well and gives error as 'Error calling method on NPobject' When creating RTCIceCandidate.
I think while loading remote video the plugin object returns null.
Can you please help us to fix this issue.
Regards,
Alex.

Hi alexrozrio,
Thanks for telling me the way installing the Safari plugin.  I also met this issue on Safari 9.1 with plugin version 2.4.0.
In my scene, the ICE process is useless, so I set the NAT server as null, when create a peer connection. Then this issue is gone.
Hope it could help..

Thanks for your response udta. :)
But here we are not using NAT server. We are using only the STUN server for signalling
var configuration = {"iceServers": [{"url": "stun:stun.l.google.com:19302"}]};
var pc = new RTCPeerConnection(configuration);
It is working fine in all the browsers, even in safari windows. But it gives issue only in safari mac.
It loads the local video fine. But when we are trying to join with other users
It gives following error

Can you please help me in solving this issue

Try this:
var pc = new RTCPeerConnection( null );
My media server is on public network, so I don't need STUN or TURN server.
For your new issue, it seems the plugin was failed to start, so you could not use any function of it. Try to add your site to the allow list of this plugin.

Hi @udta ,
I think that this solution work only if you have a media server like kurento where you can configure STUN/TURN addresses.
But in normal peer to peer webrtc connections I think that it can't work.
Am I right?
Thanks

Yes, it seems the Safari plugin is issued on ICE function..

Thanks udta,
Yes it seems working but only if i am using them in internal network.
But if i want to use that outside network using public IP. it is not working (I think for that stun server is mandatory)
Am i right?
Is there any way to make it working in outside network also (Using public IP)

Alex


Editor type plug-ins should be able to be rendered without a doc being present

Currently only menu type plug-ins are supported to work without a doc being present.
This should also be the case for editor type plug-ins.
Acceptance criteria

requiredDoc attribute should not only be present in menu type plugins but also editor type ones
Editor type plugins should be able to be rendered without a doc being present.

From a given list of editor type plugins, only the ones with requiredDoc: false are visible when no doc is loaded and then if a doc is loaded all of them are visible.

If no editor type plugins are rendered, don't show the mwc-tab-bar (CSS :empty)

After implementing this change in https://github.com/openscd/open-scd/pull/1530, the tests for packages/openscd/test/unit/Plugging.test.ts stop working specifically at "add custom plugin dialog". The tests neither pass or fail just become unresponsive.
I noticed that this goes away after undoing the adding of requireDoc: true to all editor type plugins in packages/openscd/src/plugins.ts but this change is now required for all editor type plugins to tell apart the ones that should appear initially at the landing screen.

See the DRAFT pull-request; it can be fixed.


Update books to current state

Including Staging Workflow documentation update.

Deploy preview for openbuildservice ready!
Built with commit 800f1eb4dcc89787c841e42d3f314f3ef34d7b53
https://deploy-preview-252--openbuildservice.netlify.app


Customizing a label of the point value

Hello all,
When I click in some point on chart, I need to show a value like this:

But currently, my chart shows a label like this:

Is there some way to customize this label content?
Thanks.

Hi, unfortunately library doesn't support line breaks in labels so you can use only single line labels.
For example pointValue.setLabel("21 June 2015"). "\n" and "" will not work.


Connection with SFTP don't work

When I enter all my information to connect to my SFTP server its loading for a long time and after that I got a error failed to connect to [my server adress]

What I'm supposed to put in those fields ? It can be the reason why I can't connect to it


Internal server error: Code(20): Calling a 'use*()' method outside component$...

The whole message is:
Internal server error: Code(20): Calling a 'use*()' method outside 'component$(() => { HERE })' is not allowed. 'use*()' methods provide hooks to the 'component$' state and lifecycle, ie 'use' hooks can only be called synchronously within the 'component$' function or another 'use' method. For more information see: https://qwik.builder.io/docs/components/tasks/#use-method-rules
and stack trace points to "placeholder attribute prop"
I am using "qwik-speak": "^0.13.0" but it started in previous versions.
<Input
     // this does not work any more
     placeholder={t('app.enterYourEmail@@Enter your email')}
/>`
`

but this is ok

`const inputPlaceholderMsg = t('app.enterYourEmail@@Enter your email');

<Input
   placeholder={inputPlaceholderMsg}
/>`

See #50

I have read #50
I don't like the dx because you need to think where you are passing this "t" translate$ function.
Could we have useTranslate that would return inline translate without requirement to pass context.
something like
const {t} = useTranslate()
then use t('message') wherever.

Ok this could be done by user also

@primozs Yes, I'm already working on the useTranslate solution - I just need to resolve troubleshooting with Inlining and it will be released soon


Layout navigation and user actions (login, register) overlapping on medium windows

What about hiding login/registration for smaller viewports? The navigation could still overlap the search but then maybe we have to hide the search for smaller viewports as well. Or switch to mobile view for smaller viewports.

@ksuess The nav links (login,register) do not overlap in when the i18 is en lang. But I think we can switch to mobile view on smaller screens on other languages as well.

Anontools (login and register), even if not needed on many websites, are IMHO better hidden in custom themes, not in default theme.
As you said @tisto there is still the search that could be overlapped by a long navigation.
So here is my first throw of a flexible responsive header:
https://github.com/plone/volto/pull/1233
short navigation:

long navigation:


Github markdown support

Is there a way, or a petition to create pressure on github to inegrate it into their markup? For example python notebooks are fully supported with github and so many editors support wavedrom already, but it would be super useful to have it in github.

I don't know how to do that. I think that GitLab integration may be easier because it is opensource.
Also, I am porting wavedrom to observable notebook now, that may solve some use cases. https://github.com/drom/wavedrom/issues/196

The other option is to run wavedrom server https://github.com/wavedrom/server
But that would require someone to sponsor it.


nuget-to-nix: fallback to default URL for directories

In some cases $pkgs_src can be a path. For example with FSharp.Core when it comes with dotnet SDK.
When that happens we need to fallback on default URL otherwise curl fails.
Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

LGTM, except for the commit title. Please rename it to something like nuget-to-nix: fall back to default URL for directories.

@IvarWithoutBones done


update models.md - add details of history class

Add few comments to make it clear about the properties of 'history' class. Not sure if you'd think this details though.

You are right, thanks for pointing this out. Although your proposed changes still do not match the actual API.

Oh, really? Actually they are only things I'm using at the moment.
Do you generally encourage people to update the documents, too?


Does this one support read side to side?

What do you expect from such mode?

I want to read a portrait pdf using landscape mode but it look stretch, I think it will be better if I can see 2 page in landscape mode (side to side)

Using PDFViewer you can render PDF page / papers(single file).
Your question is

Read single page in portrait mode
Read two pages in landscape mode

But as of my Knowledge, single pdf view won't be stretch in landscape mode. you can read and multiple pdfs in a layout by giving single pdf page.
Everything depends on the PDF of yours, if it is a page or paper(includes more pages)
If this is useful it is fine, else some one may have solutions for that...


[iOS] Support launchOptions in bridgeless mode

Summary:
Support launchOptions in bridgeless mode
Changelog:
[IOS] [FIXED] - Support launchOptions in bridgeless mode
Test Plan:
useEffect(() => {
    const processInitialURL = async () => {
      const url = await Linking.getInitialURL();
      if (url !== null) {
        console.log(`Initial url is: ${url}`);
      }
    };

    processInitialURL();
  }, []);

/rebase - (this triggers an automatic rebase - build android should be green on main!)


Question: Inserting Arbitrary 3D Objects into Carla Simulation using Python API

Hello everyone,
I would like to know if there is a way to insert arbitrary 3D objects into a running simulation via the Python API. Ideally, I would use the Python API to specify the 3D object that I want to insert and spawn by providing its position, rotation, and scale. The object can be placed on any surface (road, sidewalk, etc.).
I'm using Carla 0.9.14, which is a package built from source, on Ubuntu 21.04 and Python 3.10.

+1
I also have a similar requirement.
Is it possible to insert a 3D model (in .obj or other file format) into fixed positions within the simulation? This could involve incorporating custom-designed objects, such as traffic lights, at specific static locations.

Hello everyone,
I would like to know if there is a way to insert arbitrary 3D objects into a running simulation via the Python API. Ideally, I would use the Python API to specify the 3D object that I want to insert and spawn by providing its position, rotation, and scale. The object can be placed on any surface (road, sidewalk, etc.).
I'm using Carla 0.9.14, which is a package built from source, on Ubuntu 21.04 and Python 3.10.


Internal error, an invalid response was received from the ad server.

This code working fine with test ads unit ID. However, When I use my setAdUnitID return this error; Internal error, an invalid response was received from the ad server.
How can i fix this error?
           AdMobInterstitial.setAdUnitID('ca-app-pub-xxxxx/xxxx');
           AdMobInterstitial.setTestDevices([AdMobInterstitial.simulatorId]);
           AdMobInterstitial.requestAd().then(() => AdMobInterstitial.showAd().then(()=>{
                    this.props.navigation.goBack();
           })).catch((err)=>{
                    console.log(err);
                    this.props.navigation.goBack();
           });

Hi try using the google test adunit id if this works its your google admob account sometimes this happens if you have just created your account or if you have not added your payment information into admob

If it's working with test unit ids, but not with your own, you probably have to wait a bit longer before those become active, and otherwise you might have to change something in your inventory settings in AdMob.


[DropdownMenu] Semantics still reads out "EditBox" when text editing is disabled

Steps to reproduce

Create a DropdownMenu widget and disable text editing (by setting enableFilter and enableSearch to false, as documented in https://github.com/flutter/flutter/issues/116587).
Using Voiceover/Talkback, select the DropdownMenu.

Initial investigation
I believe this is because the DropdownMenu always uses a TextField as the widget to render the text in the button, but it should swap to a Text when input isn't being used, or somehow otherwise disable the TextField semantics.
Expected results
Semantics are read out as if the DropdownMenu were a Button widget ("$label, Button, double tap to activate"). Double tapping should open the DropdownMenu, just like selecting the trailingIcon does.
Actual results
Semantics are read out as if the DropdownMenu were a TextField widget ("$label, EditBox, double tap to edit text"). This is doubly bad in that double tapping does not, in fact, allow you to edit text. It should open up the DropdownMenu instead.
Code sample
Code sample
import 'package:flutter/material.dart';

void main() {
  runApp(const DropdownMenuExample());
}

enum ColorLabel {
  blue('Blue', Colors.blue),
  pink('Pink', Colors.pink),
  green('Green', Colors.green),
  yellow('Orange', Colors.orange),
  grey('Grey', Colors.grey);

  const ColorLabel(this.label, this.color);
  final String label;
  final Color color;
}

class DropdownMenuExample extends StatefulWidget {
  const DropdownMenuExample({super.key});

  @override
  State<DropdownMenuExample> createState() => _DropdownMenuExampleState();
}

class _DropdownMenuExampleState extends State<DropdownMenuExample> {
  ColorLabel? selectedColor;

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData(
        useMaterial3: true,
      ),
      home: Scaffold(
        body: SafeArea(
          child: DropdownMenu<ColorLabel>(
            enableSearch: false,
            enableFilter: false,
            requestFocusOnTap: false,
            initialSelection: ColorLabel.green,
            label: const Text('Color'),
            onSelected: (ColorLabel? color) {
              setState(() {
                selectedColor = color;
              });
            },
            dropdownMenuEntries: ColorLabel.values
                .map<DropdownMenuEntry<ColorLabel>>((ColorLabel color) {
              return DropdownMenuEntry<ColorLabel>(
                value: color,
                label: color.label,
                enabled: color.label != 'Grey',
                style: MenuItemButton.styleFrom(
                  foregroundColor: color.color,
                ),
              );
            }).toList(),
          ),
        ),
      ),
    );
  }
}

Screenshots or Video
In this video I swipe to the right to advance to the next semantics node after each one is done speaking. You can see the output from Talkback at the bottom of the screen.
https://github.com/user-attachments/assets/6ca90e81-27e9-456a-9b21-97c773389405
Logs
No response
Flutter Doctor output
Doctor output
[Paste your output here]

Thanks for the report @TytaniumDev
Upon running the code sample on Android with talkback ON, it reads grey, disabled.  What exactly should be the expected behavior in this case you are looking for ?

@darshankawar Oh, that's even worse. I didn't examine the semantics deep enough the first time. There are a few things wrong:

Talkback says when the whole widget is focused: "Green. Edit box. Color. Double tap to edit text." This is incorrect, as with enableSearch and enableFilter set to false, the DropdownMenu should no longer be editable, and thus "Edit box" and "Double tap to edit text" are incorrect. Double tapping actually does nothing, so the semantics are lying here which is extra bad.
The semantics elements for all of the DropdownMenuEntries appear to be traversable even when they're not visible. This is the "Grey. disabled" you're seeing. This also includes "Orange, double tap to activate", "Pink, double tap to activate", etc. None of these should be able to be selected as they're not visible.
The actual button to open the dropdown menu (the down arrow icon at the end) doesn't have a proper semantics label, so Talkback reads it as "Button. Double tap to activate". It should indicate that a double tap will open the dropdown.

I'll also attach a video showing all of the semantics and where they show up.

Thanks for the detailed update. I was able to replicate the reported behavior.

 stable, master flutter doctor -v
[!] Flutter (Channel stable, 3.22.2, on macOS 12.2.1 21D62 darwin-x64, locale
    en-GB)
    • Flutter version 3.22.2 on channel stable at
      /Users/dhs/documents/fluttersdk/flutter
    ! Warning: `flutter` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/flutter, which is not inside
      your current Flutter SDK checkout at
      /Users/dhs/documents/fluttersdk/flutter. Consider adding
      /Users/dhs/documents/fluttersdk/flutter/bin to the front of your path.
    ! Warning: `dart` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/dart, which is not inside your
      current Flutter SDK checkout at /Users/dhs/documents/fluttersdk/flutter.
      Consider adding /Users/dhs/documents/fluttersdk/flutter/bin to the front
      of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 761747bfc5 (33 hours ago), 2024-06-05 22:15:13 +0200
    • Engine revision edd8546116
    • Dart version 3.4.3
    • DevTools version 2.34.3
    • If those were intentional, you can disregard the above warnings; however
      it is recommended to use "git" directly to perform update checks and
      upgrades.

[!] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    ! Flutter recommends a minimum Xcode version of 13.
      Download the latest version or update via the Mac App Store.
    • CocoaPods version 1.11.2

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

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

[✓] Connected device (5 available)
    • SM G975F (mobile)       • RZ8M802WY0X • android-arm64   • Android 11 (API 30)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1 18D61
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 98.0.4758.80

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

[!] Flutter (Channel master, 3.24.0-1.0.pre.129, on macOS 12.2.1 21D62
    darwin-x64, locale en-GB)
    • Flutter version 3.24.0-1.0.pre.129 on channel master at
      /Users/dhs/documents/fluttersdk/flutter
    ! Warning: `flutter` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/flutter, which is not inside
      your current Flutter SDK checkout at
      /Users/dhs/documents/fluttersdk/flutter. Consider adding
      /Users/dhs/documents/fluttersdk/flutter/bin to the front of your path.
    ! Warning: `dart` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/dart, which is not inside your
      current Flutter SDK checkout at /Users/dhs/documents/fluttersdk/flutter.
      Consider adding /Users/dhs/documents/fluttersdk/flutter/bin to the front
      of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 0a99e1f9a9 (12 minutes ago), 2024-07-16 00:57:11 -0400
    • Engine revision 2e4401545c
    • Dart version 3.6.0 (build 3.6.0-36.0.dev)
    • DevTools version 2.37.1
    • 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 30.0.3)
    • Android SDK at /Users/dhs/Library/Android/sdk
    ✗ cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for
      more details.

[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 13C100
    • CocoaPods version 1.11.2

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

[✓] IntelliJ IDEA Ultimate Edition (version 2021.3.2)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin version 65.1.4
    • Dart plugin version 213.7228

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

[✓] Connected device (3 available)
    • Darshan's iphone (mobile) • 21150b119064aecc249dfcfe05e259197461ce23 • ios
      • iOS 15.3.1 19D52
    • macOS (desktop)           • macos                                    •
      darwin-x64     • macOS 12.2.1 21D62 darwin-x64
    • Chrome (web)              • chrome                                   •
      web-javascript • Google Chrome 109.0.5414.119

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

! Doctor found issues in 1 category.

[!] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    ! Flutter recommends a minimum Xcode version of 13.
      Download the latest version or update via the Mac App Store.
    • CocoaPods version 1.11.2

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

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

[✓] Connected device (5 available)
    • SM G975F (mobile)       • RZ8M802WY0X • android-arm64   • Android 11 (API 30)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1 18D61
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 98.0.4758.80

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.


Install Failed,

Attempted to install the plugin for atom, but it failed. The following is the log.

<EMAIL_ADDRESS>install /private/var/folders/1q/d5rjn3_s18n7_14kf_h7f2gh0000gn/T/apm-install-dir-11611-60365-igono9/node_modules/jupyter-notebook/node_modules/pathwatcher/node_modules/runas
node-gyp rebuild

CXX(target) Release/obj.target/runas/src/main.o
CXX(target) Release/obj.target/runas/src/runas_darwin.o
CXX(target) Release/obj.target/runas/src/fork.o
SOLINK_MODULE(target) Release/runas.node

<EMAIL_ADDRESS>install /private/var/folders/1q/d5rjn3_s18n7_14kf_h7f2gh0000gn/T/apm-install-dir-11611-60365-igono9/node_modules/jupyter-notebook/node_modules/ws/node_modules/bufferutil
node-gyp rebuild

CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
SOLINK_MODULE(target) Release/bufferutil.node

<EMAIL_ADDRESS>install /private/var/folders/1q/d5rjn3_s18n7_14kf_h7f2gh0000gn/T/apm-install-dir-11611-60365-igono9/node_modules/jupyter-notebook/node_modules/ws/node_modules/utf-8-validate
node-gyp rebuild

CXX(target) Release/obj.target/validation/src/validation.o
SOLINK_MODULE(target) Release/validation.node

<EMAIL_ADDRESS>postinstall /private/var/folders/1q/d5rjn3_s18n7_14kf_h7f2gh0000gn/T/apm-install-dir-11611-60365-igono9/node_modules/jupyter-notebook/node_modules/jupyter-js-services/node_modules/jupyter-js-utils
npm dedupe

<EMAIL_ADDRESS>install /private/var/folders/1q/d5rjn3_s18n7_14kf_h7f2gh0000gn/T/apm-install-dir-11611-60365-igono9/node_modules/jupyter-notebook/node_modules/pathwatcher
node-gyp rebuild

CXX(target) Release/obj.target/pathwatcher/src/main.o
CXX(target) Release/obj.target/pathwatcher/src/common.o
CXX(target) Release/obj.target/pathwatcher/src/handle_map.o
CXX(target) Release/obj.target/pathwatcher/src/pathwatcher_unix.o
SOLINK_MODULE(target) Release/pathwatcher.node
sh: npm: command not found
npm ERR! Darwin 15.3.0
npm ERR! argv "/Applications/Atom.app/Contents/Resources/app/apm/bin/node" "/Applications/Atom.app/Contents/Resources/app/apm/node_modules/npm/bin/npm-cli.js" "--globalconfig" "/Users/alex/.atom/.apm/.apmrc" "--userconfig" "/Users/alex/.atom/.apmrc" "install" "/private/var/folders/1q/d5rjn3_s18n7_14kf_h7f2gh0000gn/T/d-11611-60365-1gvbub4/package.tgz" "--target=0.34.5" "--arch=x64"
npm ERR! node v0.10.40
npm ERR! npm  v2.13.3
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
npm ERR<EMAIL_ADDRESS>postinstall: npm dedupe
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>postinstall script 'npm dedupe'.
npm ERR! This is most likely a problem with the jupyter-js-utils package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     npm dedupe
npm ERR! You can get their info via:
npm ERR!     npm owner ls jupyter-js-utils
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     /private/var/folders/1q/d5rjn3_s18n7_14kf_h7f2gh0000gn/T/apm-install-dir-11611-60365-igono9/npm-debug.log

Same issue here on both OS X El Captian and Ubuntu 14.04.

Try PYTHON=python2 apm install

Atom 1.5.3 on OSX 10.11.3
$ apm -v
apm  1.6.0
npm  2.13.3
node 0.10.40
python 2.7.10
git 2.7.0

$ apm install jupyter-notebook
Installing jupyter-notebook to /Users/jkorkames/.atom/packages ✗

><EMAIL_ADDRESS>install /private/var/folders/m8/l0gl08bj0zn4zpck62hn3yv40000gp/T/apm-install-dir-116116-9700-1f2m3ac/node_modules/jupyter-notebook/node_modules/pathwatcher/node_modules/runas
> node-gyp rebuild

  CXX(target) Release/obj.target/runas/src/main.o
  CXX(target) Release/obj.target/runas/src/runas_darwin.o
  CXX(target) Release/obj.target/runas/src/fork.o
  SOLINK_MODULE(target) Release/runas.node

><EMAIL_ADDRESS>install /private/var/folders/m8/l0gl08bj0zn4zpck62hn3yv40000gp/T/apm-install-dir-116116-9700-1f2m3ac/node_modules/jupyter-notebook/node_modules/ws/node_modules/bufferutil
> node-gyp rebuild

  CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
  SOLINK_MODULE(target) Release/bufferutil.node

><EMAIL_ADDRESS>install /private/var/folders/m8/l0gl08bj0zn4zpck62hn3yv40000gp/T/apm-install-dir-116116-9700-1f2m3ac/node_modules/jupyter-notebook/node_modules/ws/node_modules/utf-8-validate
> node-gyp rebuild

  CXX(target) Release/obj.target/validation/src/validation.o
  SOLINK_MODULE(target) Release/validation.node

><EMAIL_ADDRESS>postinstall /private/var/folders/m8/l0gl08bj0zn4zpck62hn3yv40000gp/T/apm-install-dir-116116-9700-1f2m3ac/node_modules/jupyter-notebook/node_modules/jupyter-js-services/node_modules/jupyter-js-utils
> npm dedupe

><EMAIL_ADDRESS>install /private/var/folders/m8/l0gl08bj0zn4zpck62hn3yv40000gp/T/apm-install-dir-116116-9700-1f2m3ac/node_modules/jupyter-notebook/node_modules/pathwatcher
> node-gyp rebuild

  CXX(target) Release/obj.target/pathwatcher/src/main.o
  CXX(target) Release/obj.target/pathwatcher/src/common.o
  CXX(target) Release/obj.target/pathwatcher/src/handle_map.o
  CXX(target) Release/obj.target/pathwatcher/src/pathwatcher_unix.o
  SOLINK_MODULE(target) Release/pathwatcher.node

><EMAIL_ADDRESS>postinstall /private/var/folders/m8/l0gl08bj0zn4zpck62hn3yv40000gp/T/apm-install-dir-116116-9700-1f2m3ac/node_modules/jupyter-notebook/node_modules/jupyter-js-services
> npm dedupe

<EMAIL_ADDRESS>node_modules/jupyter-js-utils/node_modules/minimist -> node_modules/minimist
<EMAIL_ADDRESS>node_modules/jupyter-js-utils/node_modules/requirejs -> node_modules/requirejs

npm ERR! Darwin 15.3.0
npm ERR! argv "node" "/usr/local/bin/npm" "dedupe"
npm ERR! node v0.10.40
npm ERR! npm  v3.5.3
npm ERR! path /private/var/folders/m8/l0gl08bj0zn4zpck62hn3yv40000gp/T/apm-install-dir-116116-9700-1f2m3ac/node_modules/jupyter-notebook/node_modules/jupyter-js-services/node_modules/jupyter-js-utils/node_modules/.bin/r.js
npm ERR! code EEXIST

npm ERR! Refusing to delete /private/var/folders/m8/l0gl08bj0zn4zpck62hn3yv40000gp/T/apm-install-dir-116116-9700-1f2m3ac/node_modules/jupyter-notebook/node_modules/jupyter-js-services/node_modules/jupyter-js-utils/node_modules/.bin/r.js: containing path /private/var/folders/m8/l0gl08bj0zn4zpck62hn3yv40000gp/T/apm-install-dir-116116-9700-1f2m3ac/node_modules/jupyter-notebook/node_modules/jupyter-js-services/node_modules/jupyter-js-utils/node_modules/requirejs isn't under npm's control
npm ERR! File exists: /private/var/folders/m8/l0gl08bj0zn4zpck62hn3yv40000gp/T/apm-install-dir-116116-9700-1f2m3ac/node_modules/jupyter-notebook/node_modules/jupyter-js-services/node_modules/jupyter-js-utils/node_modules/.bin/r.js
npm ERR! Move it away, and try again.

npm ERR! Please include the following file with any support request:
npm ERR!     /private/var/folders/m8/l0gl08bj0zn4zpck62hn3yv40000gp/T/apm-install-dir-116116-9700-1f2m3ac/node_modules/jupyter-notebook/node_modules/jupyter-js-services/npm-debug.log
npm ERR! Darwin 15.3.0
npm ERR! argv "/opt/homebrew-cask/Caskroom/atom/1.0.2/Atom.app/Contents/Resources/app/apm/bin/node" "/opt/homebrew-cask/Caskroom/atom/1.0.2/Atom.app/Contents/Resources/app/apm/node_modules/npm/bin/npm-cli.js" "--globalconfig" "/Users/jkorkames/.atom/.apm/.apmrc" "--userconfig" "/Users/jkorkames/.atom/.apmrc" "install" "/private/var/folders/m8/l0gl08bj0zn4zpck62hn3yv40000gp/T/d-116116-9700-ksanl3/package.tgz" "--target=0.34.5" "--arch=x64"
npm ERR! node v0.10.40
npm ERR! npm  v2.13.3
npm ERR! code ELIFECYCLE

npm ERR<EMAIL_ADDRESS>postinstall: `npm dedupe`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>postinstall script 'npm dedupe'.
npm ERR! This is most likely a problem with the jupyter-js-services package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     npm dedupe
npm ERR! You can get their info via:
npm ERR!     npm owner ls jupyter-js-services
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /private/var/folders/m8/l0gl08bj0zn4zpck62hn3yv40000gp/T/apm-install-dir-116116-9700-1f2m3ac/npm-debug.log```

& from within Atom's installer:
><EMAIL_ADDRESS>install /private/var/folders/m8/l0gl08bj0zn4zpck62hn3yv40000gp/T/apm-install-dir-116116-8859-wynld/node_modules/jupyter-notebook/node_modules/pathwatcher/node_modules/runas
> node-gyp rebuild

  CXX(target) Release/obj.target/runas/src/main.o
  CXX(target) Release/obj.target/runas/src/runas_darwin.o
  CXX(target) Release/obj.target/runas/src/fork.o
  SOLINK_MODULE(target) Release/runas.node

><EMAIL_ADDRESS>install /private/var/folders/m8/l0gl08bj0zn4zpck62hn3yv40000gp/T/apm-install-dir-116116-8859-wynld/node_modules/jupyter-notebook/node_modules/ws/node_modules/utf-8-validate
> node-gyp rebuild

  CXX(target) Release/obj.target/validation/src/validation.o
  SOLINK_MODULE(target) Release/validation.node

><EMAIL_ADDRESS>install /private/var/folders/m8/l0gl08bj0zn4zpck62hn3yv40000gp/T/apm-install-dir-116116-8859-wynld/node_modules/jupyter-notebook/node_modules/ws/node_modules/bufferutil
> node-gyp rebuild

  CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
  SOLINK_MODULE(target) Release/bufferutil.node

><EMAIL_ADDRESS>postinstall /private/var/folders/m8/l0gl08bj0zn4zpck62hn3yv40000gp/T/apm-install-dir-116116-8859-wynld/node_modules/jupyter-notebook/node_modules/jupyter-js-services/node_modules/jupyter-js-utils
> npm dedupe

><EMAIL_ADDRESS>install /private/var/folders/m8/l0gl08bj0zn4zpck62hn3yv40000gp/T/apm-install-dir-116116-8859-wynld/node_modules/jupyter-notebook/node_modules/pathwatcher
> node-gyp rebuild

  CXX(target) Release/obj.target/pathwatcher/src/main.o
  CXX(target) Release/obj.target/pathwatcher/src/common.o
  CXX(target) Release/obj.target/pathwatcher/src/handle_map.o
  CXX(target) Release/obj.target/pathwatcher/src/pathwatcher_unix.o
  SOLINK_MODULE(target) Release/pathwatcher.node

sh: npm: command not found
npm ERR! Darwin 15.3.0
npm ERR! argv "/opt/homebrew-cask/Caskroom/atom/1.0.2/Atom.app/Contents/Resources/app/apm/bin/node" "/opt/homebrew-cask/Caskroom/atom/1.0.2/Atom.app/Contents/Resources/app/apm/node_modules/npm/bin/npm-cli.js" "--globalconfig" "/Users/jkorkames/.atom/.apm/.apmrc" "--userconfig" "/Users/jkorkames/.atom/.apmrc" "install" "/private/var/folders/m8/l0gl08bj0zn4zpck62hn3yv40000gp/T/d-116116-8859-xbypvv/package.tgz" "--target=0.34.5" "--arch=x64"
npm ERR! node v0.10.40
npm ERR! npm  v2.13.3
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn

npm ERR<EMAIL_ADDRESS>postinstall: `npm dedupe`
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>postinstall script 'npm dedupe'.
npm ERR! This is most likely a problem with the jupyter-js-utils package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     npm dedupe
npm ERR! You can get their info via:
npm ERR!     npm owner ls jupyter-js-utils
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /private/var/folders/m8/l0gl08bj0zn4zpck62hn3yv40000gp/T/apm-install-dir-116116-8859-wynld/npm-debug.log

This looks like a relevant line:
npm ERR! File exists: /private/var/folders/m8/l0gl08bj0zn4zpck62hn3yv40000gp/T/apm-install-dir-116116-9700-1f2m3ac/node_modules/jupyter-notebook/node_modules/jupyter-js-services/node_modules/jupyter-js-utils/node_modules/.bin/r.js
npm ERR! Move it away, and try again.

Try removing that file using rm /private/var/folders/m8/l0gl08bj0zn4zpck62hn3yv40000gp/T/apm-install-dir-116116-9700-1f2m3ac/node_modules/jupyter-notebook/node_modules/jupyter-js-services/node_modules/jupyter-js-utils/node_modules/.bin/r.js and reinstalling.
If that doesn't work, we should probably open an issue on jupyter-js-utils: npm ERR! Failed at the<EMAIL_ADDRESS>postinstall script 'npm dedupe'.

the /tmp folder is created and destroyed with each apm install run, nothing I can clean up for it.
npm v2 is so old that I'm not surprised that npm-dedupe is being buggy. its a :imp: move for jupyter-js-utils's postinstall to use it, but maybe atom/apm should upgrade its npm.

its a :imp: move for jupyter-js-utils's postinstall to use it

Agreed.

This looks like a permissions issue, where npm dedupe isn't being allowed to run properly.  We are using npm dedupe specifically to overcome limitations in npm resolution logic in older versions.

I used TMPDIR=~/.atom/.apm-tmp apm install jupyter-notebook to try and get better perms. no change.
additionally, all the debug logs still get blown away from that TMPDIR. npm's log dir is completely unconfigurable.
@blink1073 what are the limitations that dedupe is being utilized to work around?

Dedupe avoids having duplicate versions of libraries in node_modules, and is a standard npm command.

While npm dedupe saves disk space, it is currently causing friction with users. Putting commands in postinstall tends to be bad practice for userland as well.
Options:

Rely on peer dependencies. End user applications have to list these peer deps within their primary dependencies.

Use dedupe only at the stage of live code/user space (server, command line tool, stitched together front end).

Use a different package that doesn't bother with the dedupe.

@rgbkrk, the reason we need dedupe is not to save disk space, but to ensure that isinstance Foo works, which is not the case if you have different versions of the same library loaded with different versions of the same class.

Oh, ok. Peer deps would be the idiomatic and safe way of handling that then.

Thanks Kyle, I'll give that a try on Monday.

I just tried to install this package and having the same error.  This package looks great, and hope next update will address issue.

I released<EMAIL_ADDRESS>which avoids npm dedupe.

Thank you for the update. It fixed the problem and allowed me to install.  I just can't get it to open .ipynb files right now because it keeps complaining about not having jupyter session (which I did run from terminal).  Probably just something on my end and I need to learn how this jupyter package works.
Thanks again for the work on update!

Now you need to make sure that the path to your Jupyter binary is in Atom's
path or in the jupyter-notebook settings. The package will run an instance
of Jupyter Kernel Gateway for you.
On Sun, Feb 21, 2016 at 12:12 PM Ken0sis<EMAIL_ADDRESS>wrote:

Thank you for the update. It fixed the problem and allowed me to install.
I just can't get it to open .ipynb files right now because it keeps
complaining about not having jupyter session (which I did run from
terminal). Probably just something on my end and I need to learn how this
jupyter package works.
Thanks again for the work on update!
—
Reply to this email directly or view it on GitHub
https://github.com/jupyter/atom-notebook/issues/32#issuecomment-186875950
.

jupyter-notebook Installs and runs for me now. Thanks @blink1073 @rgbkrk @gnestor !

Good news! 👍👍


[Identity] release identity 3.1.0-beta.1

Packages impacted by this PR
@azure/identity

API change check
API changes are not detected in this pull request.


Login

Allows users to login with omniauth through github using the devise gem

@wpeery looks great.

@wpeery looks great.


Suggest to add the tiltle when copy link on a question page

Is your feature request related to a problem? Please describe.
When I before sharing a question to team, I would like to copy the link, but the copy function doesn't copy the question title, so I  need to add the question description again.
Describe the solution you'd like
Click the copy link button, copy the question title and link at the same time.

@fenbox
Additional feature request:
Is it possible to change the sharelink in to shortlink?

@erasewu You can create a new issue for this feature

I create a new issue here.
https://github.com/answerdev/answer/issues/139

Fixed, please upgrade to v1.0.1


Add additional fallback city option for Yukon

Adds additional city name option for places without city or unincorporated name

@iandees Any idea why first_non_empty would be causing this failure?

The error is
Traceback (most recent call last):
  File "/usr/lib/python3.10/site-packages/openaddr/__init__.py", line 139, in conform
    out_path, feat_count = task4.convert(source_config, decompressed_paths, workdir)
  File "/usr/lib/python3.10/site-packages/openaddr/conform.py", line 416, in convert
    rc = conform_cli(source_config, source_path, dest_path)
  File "/usr/lib/python3.10/site-packages/openaddr/conform.py", line 1155, in conform_cli
    transform_to_out_geojson(source_config, extract_path, dest_path)
  File "/usr/lib/python3.10/site-packages/openaddr/conform.py", line 1132, in transform_to_out_geojson
    out_row = row_transform_and_convert(source_config, extract_row)
  File "/usr/lib/python3.10/site-packages/openaddr/conform.py", line 856, in row_transform_and_convert
    feat = row_convert_to_out(source_config, row)
  File "/usr/lib/python3.10/site-packages/openaddr/conform.py", line 1082, in row_convert_to_out
    output["properties"][field] = row.get(cfield)
TypeError: unhashable type: 'dict'

I think the field variable is a dict in this case. I wonder if this function ever worked...

Solved the bug 🎉

Awesome!


Rework Ecoacoustics preprocessing.

The current implementation of the Ecoacoustics dataset awkwardly straddles the line between image and audio datasets  due to the audio files being converted into spectrograms and saved as .pt files during the processing step, something which also severely hinders flexibility due to being locked into a specific spectrogram parameterisation. The motivation for this was that since the audio files already needed to be segmented we may as well also do away with the overhead of an on-the-fly transformation (though how significant said overhead actually is in practice, with multiple data-loading workers enabled, was never actually determined). The current version of this PR aims to redress these two problems by simply removing the spectrogram-conversion step from preprocessing method, such that the waveforms segments are saved as .wav files and the data can thus be treated as audio and not pseudo-image data. However, with this approach there still remains inflexibility stemming from the segment length; it may be better to do no preprocessing at all and instead randomly sample segments (one from each waveform, in the name of iidness) on-the-fly using a custom transform, akin to in an image-loading pipeline, though I'm not sure how costly this would be in comparison.

Thanks for looking into this and your changes. It looks like you have also added support for multiple attributes, but I haven't tested this yet.
I'm of the opinion that fully dynamic preprocessing would be the optimal strategy. The segment length is not intrinsically a different factor of variability to the spectrogramming, and as .wav is uncompressed, I would hope it should not be too inefficient to dynamically sample segments. Moreover, it's likely that at certain parts of model training/evaluation we would take the full minute long spectrogram as input into the model, and accordingly the preprocessing would just copy the whole dataset!


Feature: Add Google PaLM API support

Adds support for Google PaLM API support
Addresses #1129
Related to https://github.com/hwchase17/langchain/pull/3575
This is different from Google Vertex AI support added by @afirstenberg in the PR series

#1273
#1384
#1388

Added wrappers for all 3 models

LLM - GooglePalm
Embeddings - GooglePalmEmbeddings
Chat - ChatGooglePalm

Added integration & unit tests
Added documentation

P.S.

I got access to Google Makersuite and thought it'll be cool to add PaLM API support
I chose to set The Google PaLM Key in the GOOGLEPALM_API_KEY environment variable and not GOOGLE_API_KEY since this is used for the SerpAPI tool.

Twitter: @MerbinJAnselm
Fixes https://github.com/hwchase17/langchainjs/issues/1129

Looks broadly ok but it's the exact same models as Vertex AI right? Would it be possible to roll this into the existing Vertex support/reuse more of the existing components?
CC @afirstenberg do you have any thoughts here?

Thanks @jacoblee93 for your inputs. I was checking the langchain python implementation chat_models here, llms here and embeddings here, and hence implemented this separate from Vertex AI.
Technically I find some differences, i.e. in case of OpenAI vs Azure OpenAI, the NodeJS client seems is regardless the same

NPM Package: openai
Import: import { OpenAIApi } from "openai";

But in the case of Google PaLM 2 API vs Google Vertex AI, it requires two different set of NodeJS clients (a Node client exists for Google Vertex AI too and probably we can switch)

Google PaLM 2 API

NPM Package: @google-ai/generativelanguage
Import: import { DiscussServiceClient } from "@google-ai/generativelanguage"; // for chat
Example: Chat sample

Google Vertex AI

NPM Package: @google-cloud/aiplatform
Import: import { PredictionServiceClient } from "@google-cloud/aiplatform"; // for chat
Example: Chat sample

While both of the integrations have a lot of similarities and can be abstracted out. But since during the runtime, they have different authentication needs (one requires an API Key like this while the other requires a different approach) and different client libraries.
Simplest way I could think of would be writing plain REST API integration like that of Baidu Wenxin integration. Any other ideas/suggestions?

I did a basic evaluation via Curl and here are the requests & responses below
Google PaLM via MakerSuite
GOOGLEPALM_API_KEY is generated via Google MakerSuite
# REQUEST
MODEL_NAME=models/text-bison-001
curl \
  -H 'Content-Type: application/json' \
  -X POST "https://generativelanguage.googleapis.com/v1beta2/${MODEL_NAME}:generateText?key=${GOOGLEPALM_API_KEY}" \
  -d '{
        "prompt": {
            "text": "Write a poem about an adventure in an underwater castle\n\n"
        },
        "temperature": 0.7,
        "top_k": 40,
        "top_p": 0.95,
        "candidate_count": 1,
        "max_output_tokens": 1024,
        "stop_sequences": [],
        "safety_settings": []
    }'

# RESPONSE:
# {
#   "candidates": [
#     {
#       "output": "Deep in the ocean,\nWhere the water is clear,\nStands a castle,\nMade of coral and pearl.\n\nA mermaid princess lives there,\nWith her servants and guards.\nShe is kind and beautiful,\nAnd her heart is full of grace.\n\nOne day, a young prince\nWas sailing by the castle.\nHe saw the princess,\nAnd he was immediately smitten.\n\nHe dove into the water\nAnd swam to the castle.\nHe asked the princess\nTo marry him.\n\nThe princess was delighted,\nAnd she said yes.\nThe prince and princess\nWere married in a grand ceremony.\n\nThey lived happily ever after\nIn the underwater castle.\nThey had many children,\nWho were all as beautiful and kind\nAs their parents.",
#       "safetyRatings": [
#         {
#           "category": "HARM_CATEGORY_DEROGATORY",
#           "probability": "NEGLIGIBLE"
#         },
#         {
#           "category": "HARM_CATEGORY_TOXICITY",
#           "probability": "NEGLIGIBLE"
#         },
#         {
#           "category": "HARM_CATEGORY_VIOLENCE",
#           "probability": "NEGLIGIBLE"
#         },
#         {
#           "category": "HARM_CATEGORY_SEXUAL",
#           "probability": "NEGLIGIBLE"
#         },
#         {
#           "category": "HARM_CATEGORY_MEDICAL",
#           "probability": "NEGLIGIBLE"
#         },
#         {
#           "category": "HARM_CATEGORY_DANGEROUS",
#           "probability": "NEGLIGIBLE"
#         }
#       ]
#     }
#   ]
# }

Google PaLM via Google Vertex AI
GCLOUD_ACCESS_TOKEN corresponds to gcloud auth print-access-token output
# REQUEST
API_ENDPOINT="us-central1-aiplatform.googleapis.com"
PROJECT_ID="<my-project-id>"
MODEL_ID="text-bison@001"
curl \
-X POST \
-H "Authorization: Bearer ${GCLOUD_ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
"https://${API_ENDPOINT}/v1/projects/${PROJECT_ID}/locations/us-central1/publishers/google/models/${MODEL_ID}:predict" -d \
$'{
    "instances": [
        {
            "content": "Write a poem about an adventure in an underwater castle\n\n"
        }
    ],
    "parameters": {
        "temperature": 0.7,
        "maxOutputTokens": 1024,
        "topP": 0.95,
        "topK": 40
    }
}'

# RESPONSE
# {
#   "predictions": [
#     {
#       "content": "In a wondrous underwater castle,\nI found myself one day.\nThe halls were lined with treasures,\nAnd the mermaids sang me a song.\n\nI swam through the crystal clear waters,\nAnd marveled at the beauty of the sea.\nI met all sorts of interesting creatures,\nAnd had many exciting adventures.\n\nOne day, I was exploring a new part of the castle,\nWhen I came across a secret room.\nInside the room was a powerful treasure,\nBut it was guarded by a fierce dragon.\n\nI knew I had to be brave,\nSo I faced the dragon and fought it.\nAfter a long and difficult battle,\nI was victorious and claimed the treasure.\n\nI left the underwater castle with a new sense of pride,\nAnd I knew that I would never forget my adventure.\nIt was an experience that I will cherish forever.",
#       "citationMetadata": {
#         "citations": []
#       },
#       "safetyAttributes": {
#         "categories": [],
#         "scores": [],
#         "blocked": false
#       }
#     }
#   ]
# }

Both the APIs have similar functionalities but has different request/response structure. Building an API wrapper makes better sense in this case

Both the APIs have similar functionalities but has different request/response structure. Building an API wrapper makes better sense in this case if we have to proceed with the unified approach. But again, finally, I don't find much similarity between two APIs and hence a single implementation, I presume, will have a lot of if-elses for mapping request & response bodies for each of LLM, Embedding & Chat models.

Got it - that's unfortunate but let's proceed with this approach then.

While both of the integrations have a lot of similarities and can be abstracted out. But since during the runtime, they have different authentication needs (one requires an API Key like this while the other requires a different approach) and different client libraries.
Simplest way I could think of would be writing plain REST API integration like that of Baidu Wenxin integration. Any other ideas/suggestions?

A few thoughts:

The VertexAI implementation does use the REST API. At the time I started, there was no JavaScript API for the GenAI models and it wasn't clear there ever would be one. It is generic enough that we could write the PaLM APIs to use it, and that was my plan, but I'm not sure how much it gains us.
Although the underlying models are supposed to be the same, we don't  actually know if they are. The two APIs are maintained by two completely separate teams, from what limited info I understand.
The Vertex AI API supports models that the PaLM API doesn't, at least so far. There are suggestions that Vertex AI
The two have different naming conventions for their models. Trying to normalize them would be a maintenance nightmare.
While the models have many of the same parameters - there are differences in both the parameters and what is returned.

Given all this, we unfortunately have to consider these two different creatures. Google seems to be.

While both of the integrations have a lot of similarities and can be abstracted out. But since during the runtime, they have different authentication needs (one requires an API Key like this while the other requires a different approach) and different client libraries.
Simplest way I could think of would be writing plain REST API integration like that of Baidu Wenxin integration. Any other ideas/suggestions?

A few thoughts:

The VertexAI implementation does use the REST API. At the time I started, there was no JavaScript API for the GenAI models and it wasn't clear there ever would be one. It is generic enough that we could write the PaLM APIs to use it, and that was my plan, but I'm not sure how much it gains us.
Although the underlying models are supposed to be the same, we don't  actually know if they are. The two APIs are maintained by two completely separate teams, from what limited info I understand.
The Vertex AI API supports models that the PaLM API doesn't, at least so far. There are suggestions that Vertex AI
The two have different naming conventions for their models. Trying to normalize them would be a maintenance nightmare.
While the models have many of the same parameters - there are differences in both the parameters and what is returned.

Given all this, we unfortunately have to consider these two different creatures. Google seems to be.

Thank you for the context - yes this seems like the best option then.

FYI I also pushed some small changes to the branch (docs and reverting a probably unintentional config change).

FYI I also pushed some small changes to the branch (docs and reverting a probably unintentional config change).

Thanks! I made changes based on the review feedback. Also, have moved the input validation out of async caller parameter to fail before execution and have improved the integration tests to fail faster.

I put .skip on all the integration tests due to limited access to the model at the moment and changed the env var name from GOOGLEPALM_API_KEY to GOOGLE_PALM_API_KEY.

I put .skip on all the integration tests due to limited access to the model at the moment and changed the env var name from GOOGLEPALM_API_KEY to GOOGLE_PALM_API_KEY.  Yes, verified all the tests by GOOGLE_PALM_API_KEY and temporarily removed .skip from integration tests and works perfectly good 👍🏾

Great, thank you!


docs(config) document optimization.sideEffects

as per title
Takes one off #1968

@montogeek i think its good for final look now

Thanks!


Lock the conversation after first person asks to assign the issue

Description
Currently the issue gets locked when someone raises an issue until it is changed to ready for dev. After it is labelled ready to dev, many contributors are interested to work on the same issue and asks to assign the issue to them which is good. Many new contributors are not reading the BioDrop Docs  to get to know about contributing guide. And are asking to assign the issue to them.
I would like to request a new feature based on GitHub actions to lock the issue or conversation as soon the first person comments asking to assign the issue. Through this maintainer can focus less on replying to the new contributors who are asking to assign the issue after someone have already asked for
💡 To implement (just a little idea I had)
Check if the comment have assign or some specific keywords to trigger the GitHub action
Screenshots
No response
Do you want to work on this issue?
Yes
Additional information
No response

Thank you for the suggestion but I don't think this is good idea because many people who ask for the issue first cannot be assigned - for example they have another issue assigned or have already done multiple good first issues


Add helper to get session information based on pin name

[x] This contribution adheres to CONTRIBUTING.md.

What does this Pull Request accomplish?
Currently the reserve session call returns a list of session info and users have to define their own method to get the exact session's information to use the required session on the pins that is needed to be used. A new helper method has been introduced in this PR to allow the users to get the list of session information related to a specific pin or a set of pins.
Why should this Pull Request be merged?

Added a two new API to get the sessions information based on the pins namely,

get_sessions_and_channels_for_pins which takes in a list of pin names and returns a list of (session_info, channel_list).
get_session_and_channel_for_pin which takes in a single pin name and returns one session information and the corresponding channel list

Both of these APIs have an optional site input which filters the sessions based on the site.

What testing has been done?
Tested the APIs manually.

@bkeryan  Can we bypass @sreekantham  due to his unavailability. I have resolved the comments given by Kiran in this PR.

@bkeryan Can we bypass @sreekantham due to his unavailability?. I have resolved the comments given by Kiran in this PR.

@bkeryan @subash-suresh Done.

@bkeryan @subash-suresh How do we get the checks to pass? Does Subash need to merge main into this branch or something?

@bkeryan @subash-suresh How do we get the checks to pass? Does Subash need to merge main into this branch or something?

Yes. Sorry, I posted a comment on Wesley's enum PR but didn't notice this one is still active.

@bkeryan @subash-suresh How do we get the checks to pass? Does Subash need to merge main into this branch or something?

I have resolved the conflicts in this PR


One micronaut-test integration test is running with a PURL, but we check for dependency report files.

In this integration test case here, we are running the analysis on a PURL without dependency resolving -purl<EMAIL_ADDRESS>--skip-deps. However, we check for two dependencies report files caffeine.json and slf4j.json.
The reason this test case is still passing is because it's reusing caffeine.json and slf4j.json from test cases that run before it.

That's expected. If dependencies are manually specified in the configuration file, even if the --skip-deps is passed, those dependencies will be analyzed. --skip-deps only skips analyzing dependencies that are automatically resolved.

I agree it would be expected if we are analyzing with a yaml config file. However, because we are providing a PURL, --skip-deps here would mean that at most one software component is analyzed. :thinking:

Right, looks like the output comparisons have been mixed up with the test above. I will fix it.

I think this test case used to be a config file test case (which explains the different dependency report files checking). In this PR, it was changed to use a PURL instead.


belinda-nest_enhancement-82-add_find_product_by_type_endpoint

Resolves #82
Related: #139
As a developer, I want to create an API endpoint that retrieves products based on specific types. This approach allows the front end to categorize products by their types.
Approach:

Add find product by type logic into the product service
Create GET request from the product controller with findByType/:productType

To test:

Ensure the backend is running
Using Postman and this endpoint http://localhost:3000/api/products/findByType/Shoes
Replace Shoes with other product types to get results such as Shirts, Pants, Dress, etc.

Screenshot:

I'm glad that this API works with the dynamic route, well done!


Media: Fix video poster not rendering in Safari

Context

Summary
Fix poster image render, by using an image tag to render poster instead of video tag.
For performance reasons, it much better to use an image tag anyway. These are lazily loaded.
On hover/focus, the image tag is replaced with a video tag and autoplayed.
Relevant Technical Choices

To-do

User-facing changes
Before

After

Testing Instructions

[ ] This is a non-user-facing change and requires no QA

This PR can be tested by following these steps:

Open editor in Safari, Edge, Firefox, Chrome.
See poster images of videos in media library (including videos under third-party media).
Video should play when hovering over video

Reviews
Does this PR have a security-related impact?

No
Does this PR change what data or activity we track or use?

No
Does this PR have a legal-related impact?

No
Checklist

[x] This PR addresses an existing issue and I have linked this PR to it in ZenHub
[x] I have tested this code to the best of my abilities
[x] I have verified accessibility to the best of my abilities (docs)
[x] I have verified i18n and l10n (translation, right-to-left layout) to the best of my abilities
[x] This code is covered by automated tests (unit, integration, and/or e2e) to verify it works as intended (docs)
[x] I have added documentation where necessary
[x] I have added a matching Type: XYZ label to the PR

Fixes #8449

@kkalarickal @swissspidy
I tested this fix in Safari, against https://stories-qa-wordpress-amp.pantheonsite.io/wp-admin/post.php?post=15708&action=edit#page=%252237b6d1bc-4856-40e5-82a9-4bcf4a7919e7%2522, using PR #10023

Opened the link above
Clicked on third-party media
Clicked on Video
Hovered over the videos - autoplay starts

https://docs.google.com/document/d/13pHJ3co3tNAPbXPdod-q25cucn0HHVOx2OBlhwB0frw/edit


2024-12-5 Meeting Notes

Date
2024-12-5 - 12pm ET / 5pm GMT
Untracked attendees

Fullname, Affiliation, (optional) GitHub username
...

Meeting notices

FINOS Project leads are responsible for observing the FINOS guidelines for running project meetings. Project maintainers can find additional resources in the FINOS Maintainers Cheatsheet.

All participants in FINOS project meetings are subject to the LF Antitrust Policy, the FINOS Community Code of Conduct and all other FINOS policies.

FINOS meetings involve participation by industry competitors, and it is the intention of FINOS and the Linux Foundation to conduct all of its activities in accordance with applicable antitrust and competition laws. It is therefore extremely important that attendees adhere to meeting agendas, and be aware of, and not participate in, any activities that are prohibited under applicable US state, federal or foreign antitrust and competition laws. Please contact<EMAIL_ADDRESS>with any questions.

FINOS project meetings may be recorded for use solely by the FINOS team for administration purposes. In very limited instances, and with explicit approval, recordings may be made more widely available.

Agenda

[ ] Convene & roll call (5mins)
[ ] Display FINOS Antitrust Policy summary slide
[ ] Review Meeting Notices (see above)
[ ] Orchestra Platform
[ ] AOB, Q&A & Adjourn (5mins)

Decisions Made

[ ] Decision 1
[ ] Decision 2
[ ] ...

Action Items

[ ] Action 1
[ ] Action 2
[ ] ...

Luca Borella / FINOS

Jimin Huang / The Fin AI

Karl Moll / FINOS

Sergio Gago / Moody's

Mahesh Adulla / Independent

Mathias Nielsen / Moody's

Asad Ateeque/ NatWest

Peter Smulovics / Morgan Stanley

Arnau Oller / Tradeheader


Diego client tries all bbs domain IPs

A short explanation of the proposed change:
Diego::Client resolves the bbs URL directly and tries each IP in turn.
Replaces #3002 as a solution to 'Runner unavailable' errors that occur during an outage that leaves at least one bbs server unreachable. I also considered alternative HTTP clients, but couldn't identify any (maintained) client that can be configured to try the next IP in the list when the first one times out.
These changes rely on the ability of the standard library's Net::HTTP to target an IP other than the one that a domain resolves to (without this, you'd hit a TLS name validation error when trying to hit a bare IP address over HTTPS). Unfortunately there seems to be no way to validate this behaviour with unit tests when stubbing requests with Webmock (or any other similar library that I can find). Therefore the specs prove only that we set ipaddr on the http client in the required way prior to making requests. I have however run this through the cf-acceptance-tests (details below) and it's passing.
An explanation of the use cases your change solves
See #3002 for a more detailed description of the problem this PR solves.
Links to any other associated PRs
#3002

[x] I have reviewed the contributing guide

[x] I have viewed, signed, and submitted the Contributor License Agreement

[x] I have made this pull request to the main branch

[x] I have run all the unit tests using bundle exec rake

[x] I have run CF Acceptance Tests
*Run against the following cf-acceptance-test suites with the PR branch swapped into CAPI 1.140.0: apps, container_networking, detect, docker, internet_dependent, routing, service_instance_sharing, services, ssh, sso, tasks, v3

please retest

@sethboyles @jpalermo Opinions welcome :relaxed:

No problem!


templates API

A few things to fix on the /resource/templates/ API:

I think it would be better named template (no s)
instead of passing the template name in the ?searchType argument, it could be in the url: /resource/templates?searchType=IIIFPres_itemInfo could be /resource/template/IIIFPres_itemInfo
/resource/template (no parameter) should return the list of templates
everything should work with json parameters (in POST or GET)

In fact, I think maybe using /query instead of /resource/template would make more sense, I don't think the /resource prefix is that relevant here... there is a little bit of API design to do here, creating a swagger file first will probably help

Also, http://buda1.bdrc.io/queries returns links with the .arq suffix, which don't work... but using some best practices like this one would make more sense anyways, the output would look something like:
[
  {
    "id": "PersonNames_byName",
    "href": "/queries/PersonNames_byName",
    "description": "Gets some basic info on persons with names matching the argument"
  },
...
]

(note that this would require a "description" field on the queries, which would be very useful)

+1 These are great suggestions.

All points implemented as of commit 6961186 (Except for swagger file which requires some thinking and time)

looks good, thanks! the swagger file has its own issue, closing this one


Fix flaky undertow test

It seems that the fix didn't work, the first build failed on the same error.
UndertowInstrumentationTest > postUrlEncoded() FAILED
    org.opentest4j.AssertionFailedError at UndertowInstrumentationTest.java:113

I will merge this as it is an improvement, the traces should be queried after wait statement.


Simple question about server use

Hi there,
If I want to use the plugin on my dedicated server, do I have to install it only under the server's directory, only under the game's folder, or both?
I never really know when to install things locally or on both sides for Valheim.
Thank ya!

Which mod are you referring to? There are multiple in this repo.
I know all of my mods besides except one need to be installed on the client only, server doesn't matter. Vengeful Trees is the one I'm not sure about, haven't tried.

Which mod are you referring to? There are multiple in this repo.
I know all of my mods besides except one need to be installed on the client only, server doesn't matter. Vengeful Trees is the one I'm not sure about, haven't tried.

BiggerBoatMapExploreRadius is the one I'm talking about. Sorry for not mentioning it before.
Can I install it on the server instead of the client though? Will it work for everybody that joins or will they need the mod installed on their clients too? Or server doesn't matter at all?


Add-annotation

Signed-off-by: Maggie Chen<EMAIL_ADDRESS>https://github.com/stolostron/backlog/issues/21824

/lgtm


How to find all parameters contain System.Byte[]?

Hi,
How to find parameters contain System.Byte[] (byte array)?

Hi, I don't really get what you are trying to achieve. Could you give further details?

I'm trying to find all parameters that contains System.Byte[] (byte array). How can I achieved that, using Il2cpp.Array doesn't seem to do the job. How to create a System.Byte[] as parameter.

You can dump the classes first (https://github.com/vfsfitvnm/frida-il2cpp-bridge/wiki/Snippets#dumping), then look for System.Byte[] with a text viewer. I personally use klogg


Replace websockets library with aiohttp library - Liquid

See epic https://github.com/CoinAlpha/hummingbot/issues/3941 for the rationale of this task.
Definition of Done

[ ] Replace websockets library with aiohttp in Liquid connector
[ ] Connector should be working without issues after the change

┆Issue is synchronized with this Clickup task by Unito

connector removed


Ignore duplicate keys if ignore_verifications=True

Currently, it's impossible to generate a dataset if some keys from _generate_examples are duplicated. This PR allows skipping the check for duplicate keys if ignore_verifications is set to True.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

Cool thanks ! Could you add a test please ?


Add binary support for git.

Hey, thanks for posting this. However, we do not accept pull requests. Can you post this on https://reviews.reviewboard.org/dashboard/ for review?

I upload to https://reviews.reviewboard.org/r/7571/ , thank you.

Please review it, thank you very much.


Update Vault version to 1.1.4

See https://github.com/hashicorp/vault/blob/v1.1.4/CHANGELOG.md

Thanks a lot, that's merged now.


Croping isue in IOS, not crop according cordinates in IOS only, Android running perfect

Croping isue in IOS, not crop according cordinates in IOS only, Android running perfect

How are people supposed to help you if you don't provide any infos at all?

Hey @hashimkhatri , I'm getting this error in Android.
"RNPdfScanner was not found in the UIManager". Please let me know


Ensure VENDOR-LICENSE, Gopkg.lock, and vendor have no diffs as part of verification

/hold

/assign @ImJasonH @adrcunha


Add CI

Add circleci

:tada: This PR is included in version 1.0.3 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


What? Nadeko never had a remote access to anyones computer unless you managed to get the malware hidden under Nadeko's installer from some unknown resources.

I have all the information I need don't you worry about it this is for everyone else as a resistance against people like you

Now I wonder why my data was never touched. Literally. None of my accounts and data were ever affected.

Tryna get nadeko down just because you got banned in #NadekoLog? Not quite smart move, I can say.

@shivaco it's just some bored teenager with nothing to do. Ignore them. They've been commenting on every post/issue full of salt. They'll move on and hopefully find something more fulfilling to do with their time eventually.

Would you be so kind as to show the information/evidence?  I don't doubt nor believe you because I've not seen anything, but if you've found something I missed please do share. If you're intentions are just to bash a project just because of an attitude problem then please reconsider.

I say give him a day or two to post his evidence just in case something has slipped into the code base as I've seen such things happen before.  I'd also advise looking over the commit logs just to be sure.  After that, if he fails to provide any evidence I'd say close this issue and mark it as a troll who's crying cause he was banned.

If you are so worried about your data and stuff, use Linux and check the whole code. Nothing can be hidden in Linux in the code if you check all the files yourself carefully, but I guess you won't even bother. :^)

Please ignore this guy 😂  he got banned yesterday from the server for dm advertising, he mad 😂

Nice label. :^)


Optimize for Mobile Devices

Hi Everyone,
First, thank you for this product, it is a really beautiful thing !
How can I to Optimize OHIF VIEWER for Mobile Devices ?

We are accepting pull requests for changes that improve our current layouts to be responsive. You can find an old check list here: https://github.com/OHIF/Viewers/issues/507
The majority of our UI Controls and Viewports already work well in a mobile context; our biggest issue are around simple layout responsiveness. If you're interested in contributing, I can help prioritize.


Explore federated auth

keycloak :pleading_face:

keycloak :pleading_face:

Link?
Details?
Pros/cons?

Keycloak
Keycloak supports the client credentials flow with virtually an unlimited amount of clients (unlike Auth0) which is already an enticing choice for us.
I'm not entirely able to compare Keycloak with any other products (only other similar vendor I can think of is FusionAuth, and I've barely looked into that at all)
But Keycloak provides a central place to manage all our users, their permissions, and other settings we may need
It's also beneficial to our ongoing RabbitMQ migration, since it does have an OAuth2 plugin)
This way, we can use the same authentication server for both Mainframe and the message queue.
Those are just some of my initial thoughts, if anyone else has any vendors or suggestions I'm open to ideas.

The move to Keycloak has been approved per this comment on Discord


Now there is a new item type "PcItemDynamic" which takes function as
parameter.
When it comes to autocomplete at this position, the function is called,
the whole line is given to it (for example if autocompletion depend on
previous autocompleted field) and functio should return possible strings
how to continue.
Example usage:

listing some dynamic key-value storage
listing files in directory

Tested on Debian 5.4.0-3 and Win10, it seems working fine :-)

@setnicka
I think we should use a new interface for backward compatibility?

@chzyer
Yes, it would be better. But this will probably yields to duplicate almost every function in completer_helper.go (because we will need to have old version od PrefixCompleter struct and new DynamicPrefixCompleter struct).
Or have you better idea?

Hi! @setnicka , sorry for the lated reply.
How about this:
type DynamicPrefixCompleterInterface interface {
  	PrefixCompleterInterface
	IsDynamic() bool
	GetDynamicNames(line []rune) [][]rune
}

In function Do, we just assert whether PrefixCompleterInterface  is DynamicPrefixCompleterInterface.
And please add a new function instead of changing the declaration of Do.  :)
Thanks!

BTW, Dynamic autocompletion is really a very cool feature!

Sorry for lated reply too (summer trips, camps, etc).
I added DynamicPrefixCompleterInterface like you suggested and yes, it looks good for me now :-)
Plus I split Do function into doInternal with added parameter and original Do with the same declaration.

Is there something I should fix/modify, or it can be merged?

Not yet. Sorry about that.
I just want to review the code more deeply, I will got some time at weekend :)

Ok, it's fine, thank you :-)

👍 It looks very cool!

There is a lot of cool stuff in this code that I wish the docs would explain and give examples for. Every time I think I need something, I come across a type that already seems to do it (fair warning: I have exactly 1 day exposure to this code).
I'll figure out what everything does (eventually :)  - there is a lot of stuff). Would you be open to accepting a PR with godoc additions and examples only?

@gotwarlost
That's welcome :)


Panic at startup on the latest docker image

Current Behavior
Updating to the latest docker image (6c9a468325f2), all my oauth2_proxy containers panic at startup.
goroutine 1 [running]:
github.com/pusher/oauth2_proxy/vendor/github.com/mreiferson/go-options.Resolve(0x8769c0, 0xc000043500, 0xc00001e600, 0xc0000692c0)
	/go/src/github.com/pusher/oauth2_proxy/vendor/github.com/mreiferson/go-options/options.go:86 +0xa3e
main.main()
	/go/src/github.com/pusher/oauth2_proxy/main.go:109 +0x148f
panic: interface conversion: *main.StringArray is not flag.Getter: missing method Get

Steps to Reproduce (for bugs)

Update to the latest docker image
Reup your docker-compose without changing anything
docker-compose logs -f shows me the previous panic stack

Context
It seems that this bug appears on the build generated by the merge of this pull request https://github.com/pusher/oauth2_proxy/pull/92. I notice that this PR adds a new option -proxy-websockets. Note that setting it to true or false does not change anything.
Your Environment

Version used: latest docker image (6c9a468325f2)

the issue is that #92 updated the version of github.com/mreiferson/go-options being used

Indeed. This is the exact commit that cause the issue: https://github.com/mreiferson/go-options/commit/0c63f026bcd6dea4266dc61d845d8db1043f75e5.
* use Get() rather than String() for flag values

I added a Get() to StringArray and it still failed exactly the same way:
`
// StringArray is a type alias for a slice of strings
type StringArray []string
// Set appends a string to the StringArray
func (a *StringArray) Set(s string) error {
*a = append(*a, s)
return nil
}
// String joins elements of the StringArray into a single comma separated string
func (a *StringArray) String() string {
return strings.Join(*a, ",")
}
func (a *StringArray) Get() string {
return strings.Join(*a, ",")
}
`

Get() needs to return interface{} explicitly.
There is actually another project with the same type and usage which adapted for this first:
https://github.com/nsqio/nsq/blob/master/internal/app/string_array.go

I have just tested the latest docker image, this issue seems to be solved.

Thanks 😀


Suggestions for new features for normal parsers

Here are a few suggestions:

data from noaa ftplib comes out as byte strings. Hence, we should add ability to parser to handle byte strings.
another feature we can add is mappings for each normal data file. as of right now, normal parser is default to handle normal hourly temperature data; i.e units and other data are set to temperature related metadata. we should add mappings for other data file. or have a record of mappings on client side at least.

The boolean flag you added that you showed me I think is good enough
I am going to look into the best way to handle #2

Ok so based on the readme I had copied directly from the ftp server on how this works... (look in extras folder)...
IV. UNITS

    tenths of degrees Fahrenheit for maximum, minimum, average, dew point, heat
    index, wind chill, and air temperature normals and standard deviations.
    e.g., "703" is 70.3F

    tenths of days for the number of days per month above or below certain threshold,
    such as days above 90F. e.g., "256" is 25.6 days.

    whole degrees Fahrenheit for heating and cooling degree days (except high
    precision files while are in hundredths of degrees Fahrenheit).

    hundredths of inches for average monthly/seasonal/annual precipitation,
    month-to-date/year-to-date precipitation, and percentiles of precipitation.
    e.g., "1" is 0.01" and "1486" is 14.86"

    tenths of inches for average monthly/seasonal/annual snowfall,
    month-to-date/year-to-date snowfall, and percentiles of snowfall.
    e.g. "39" is 3.9"

    whole inches for percentiles of snow depth.

    tenths of percent for probabilities of precipitation, snowfall, or snow
    depth exceeding a specific threshold, as well as cloud and wind percentages.
    e.g., "207" is 20.7%

    tenths of degree hours for heating and cooling degree hours. e.g., "152" is 15.2

    tenths of millibars for mean sea level pressure normals.
    e.g., "10147" is 1014.7 mb

    tenths of percent for prevailing and secondary wind direction percentages.
    e.g., "299" is 29.9%

    prevailing and secondary wind directions can take on 8 values:
    1=N, 2=NE, 3=E, 4=SE, 5=S, 6=SW, 7=W, 8=NW

    tenths of mph for wind speeds and vector magnitudes. e.g. "73" is 7.3 mph

    whole degrees for mean vector wind directions

This is the data that we would map in a client implementation... The schema between files should be identical, but we would simply map unit and scaling_factor
So that is why for default it is degrees_F and the scaling_factor is set to 10. Based on above the scaling factor will mostly be 10 for numeric values... precip is in 100ths and several other are in whole degrees which I assume means we would divide by 1.
So I think everything checks out

In terms of format we will only ever look at hourly files
    D. FORMAT OF HOURLY FILES
       (hly-*.txt)

       Each file contains the values of one parameter for each hour of the day
       at all qualifying stations. There is one record per station-calendar day.

        Varies from 1 to 31 in each
               record.
       VALUE1  is the value for the first hour of the day
       FLAG1   is a completeness flag based on the WMO normals classification, for
               the first hour of the day. See Flags Section below.
       - - - -
       Value24 is the value for last hour of the month.
       Flag24  is the completeness flag for the last hour of the day

So this is what the library was written specifically to parse... Based on our other work its best to track less stuff and then resample as needed... so since hourly is the root we just parse and store this format
In the future if we decide to do other files we would need to extend the library significantly and probably change the API a bit
Note that according to the documentation this should hold true for all normals files and do not need to be changed
V. SPECIAL VALUES

    -9999: missing or insufficient data; values cannot be computed
    -8888: date not defined (e.g. February 30, September 31) - used in daily files to
           achieve fixed-length records
    -7777: a non-zero value that would round to zero, for variables bound by zero.
    -6666: parameter undefined; used in precipitation/snowfall/snow depth percentiles
           when number of nonzero values is insufficient
    -5555: parameter not available because it was inconsistent with another parameter

VI. FLAGS

    Flags accompany every Normals value and indicate the completeness of the data
    record used to compute each value, accounting for methodological differences for
    different product classes. There are six flag options described generally below.
    Due to methodological differences, the flags are applied somewhat differently
    between the temperature-based normals and the precipitation-based and hourly
    normals. For the precipitation-based and hourly normals, the following flags were
    assigned independently for each normals value reported based on number of years
    available for that individual calculation. For temperature-based normals, strong
    precedence is given to the monthly normals of maximum and minimum temperature,
    and all other temperature-related normals at the daily, monthly, seasonal, and
    annual timescales are equivalent to or derived from the flags for these two
    variables.

    C = complete (all 30 years used)
    S = standard (no more than 5 years missing and no more than 3 consecutive
        years missing among the sufficiently complete years)
    R = representative (observed record utilized incomplete, but value was scaled
        or based on filled values to be representative of the full period of record)
    P = provisional (at least 10 years used, but not sufficiently complete to be
        labeled as standard or representative). Also used for parameter values on
        February 29 as well as for interpolated daily precipitation, snowfall, and
        snow depth percentiles.
    Q = quasi-normal (at least 2 years per month, but not sufficiently complete to
        be labeled as provisional or any other higher flag code. The associated
        value was computed using a pseudonormals approach or derived from monthly
        pseudonormals.
    Blank = the data value is reported as a special value such as -9999

    Notes: Flags Q and R are not applicable for hourly normals. Flags Q and R also
    aren't applicable to average number of days with different precipitation,
    snowfall, and snow depth threshold exceedance; precipitation/snowfall/snow
    depth probabilities of occurrence; and daily precipitation/snowfall/snow depth
    percentiles. Further, Q flags are not applicable for standard deviations. High-
    precision degree day values are presented without corresponding flags.

This is why I mapped this into the global variable FLAGS... NormalsMeasure has a class variable named _missing but probably this should be mapped to a global the same as FLAGS
class NormalsMeasure(object):
    _flags = FLAGS
    _missing = MISSING

just to make it consistent... not sure why I did it that way


change default error status from 200 to 400

The default error status was set to 200.  Even though it is overridable by changing the default in the server config, I don't really see why 200 would be a desirable status code to indicate an error.  Most of the errors set by SetError calls seem to be related to client errors, so 400 seems like a better default.

Hi guys. I just run into this problem, that osin returns 200 while it should IMO return 400. I understand the RFC the same way as @deads2k mentioned. I just found out there is configuration option for that, but IMO there shouldn't be one - RFC is quite specific that it should be 400 unless specified otherwise. Of course I can now use that configuration option as a workaround but as default I would expect behavior that is in line with RFC

This ended like this up because some HTTP client libraries make it hard to get the body of the request if the status code isn't 200, and I also prefer this way, because anyway you have to check the error inside the json.
But now this can't be changed because of BC, and it isn't directly against the rfc.
But if this is confusing to people, I can add a warning on the README.