Missing Role/Permission for PPL may block access for non-admin user

In the latest release, we merged in this commit, which adds the transport layer support for PPL. While creating the TransportPPLQueryAction, a "NAME" is required in its constructor, that has 2 purposes.

It helps a node to know which TransportAction class should be executed.
Also, this name is the permission, used in the context of security plugin, to filter what users can and can not do.
https://github.com/opensearch-project/sql/blob/45d84d005ebbca8bb88e3cff48327131f35cb6e6/plugin/src/main/java/org/opensearch/sql/plugin/transport/PPLQueryAction.java#L12

The issue with the change is. If a user doesn't have "cluster:admin/opensearch/ppl" permission, he/she won't be able to query OpenSearch using PPL. A lack of permission error will show. Noticed that previously, PPL doesn't require any permission to conduct a search.

"cluster:admin/opensearch/ppl" is not pre-defined in security plugin, and is not attached to any pre-defined roles.
Noticed that Admin user with all_access role won't have the issue. Because the all_access role has access to all "cluster permissions", that is basically any permission string defined as cluser:*
Non admin user that using PPL may have issue. See next section for the workaround.
This may lead to a even broader discussion on if we want to add any layer of permission control for PPL/SQL user

Workaround

Ask admin user to manually create one cluster permission called cluster:admin/opensearch/ppl from either OSD security UI or using security Rest API,
As admin, assign the permission to any user/role that needs to query PPL

Proposed solution

[ ] Update PPL doc to inform user to make changes to add permission to the user they want to use
[ ] #764

I also wonder if we should just revert this commit in a patch release, since requiring a new permission that doesn't exist before seems like a breaking change.

What does PPL stands for?

Here is the user manual for your reference: https://github.com/opensearch-project/sql/blob/main/docs/user/ppl/index.rst

Add docs. https://github.com/opensearch-project/sql/pull/777

Backport to 2.1. https://github.com/opensearch-project/sql/pull/778

I also wonder if we should just revert this commit in a patch release, since requiring a new permission that doesn't exist before seems like a breaking change. Let me know what you think. @penghuo

Since this feature has been release in 2.2. Patch release does not solve the problem.
We will backport this feature to 2.1 and add docs to in PPL.

Struggling with the manual addition of cluster:admin/opensearch/ppl in the UI mentioned in the workaround, getting the following message:
{
  "error": {
    "reason": "Error occurred in OpenSearch engine: no permissions for [indices:admin/mappings/get] and User [name=viewer, backend_roles=[kibana_user, re_viewer], requestedTenant=]",
    "details": "org.opensearch.OpenSearchSecurityException: no permissions for [indices:admin/mappings/get] and User [name=viewer, backend_roles=[kibana_user, re_viewer], requestedTenant=]\nFor more details, please send request for Json format to see the raw response from OpenSearch engine.",
    "type": "OpenSearchSecurityException"
  },
  "status": 403
}

Checked the user and both mentioned roles, all have the permission indices:admin/mappings/get.
Any other way to debug here? Am I doing something wrong?

@robsliwi Thank you for reporting the issue! Have you figured out? From the error message, the user seems still missing permission.


Content Script not working unless commenting out the import statement

I have a question, why does the content script not work with any event listeners when using the
/**
 * @description
 * Chrome extensions don't support modules in content scripts.
 */
import("./components/Demo");

I have to comment out the code above for the block for the rest of the code below to work, how can I render a React element in the content script while also having these document event listeners working?
console.log("content loaded");

// /**
//  * @description
//  * Chrome extensions don't support modules in content scripts.
//  */
// import("./components/Demo");

console.log("THIS IS THE CONTENT SCRIPT GUYS");

function activityDetected(event) {
  if (event.type === "mousemove") {
    console.log("mouse has moved");
  } else if (event.type === "blur") {
    console.log("window has blurred");
  } else if (event.type === "visibilitychange") {
    console.log("visibility has changed");
  } else if (event.type === "keydown") {
    console.log("key was pressed");
  }

  if (!userIsActive) {
    userIsActive = true;
    // Send a message to the background script
    chrome.runtime.sendMessage({ type: "userActive" });
  }
  // this got moved over to the service worker too
  // resetInactivityTimeout();
}

// Add event listeners for user interactions
document.addEventListener("mousemove", activityDetected);
document.addEventListener("keydown", activityDetected);
document.addEventListener("visibilitychange", activityDetected);
window.addEventListener("blur", activityDetected);

document.addEventListener("mouseup", function () {
  const selectedText = window.getSelection().toString().trim();

  if (selectedText) {
    console.log("Selected text:", selectedText);
    // You can add your custom logic or call a function here
  }
});

let userIsActive = false;

For now, you can create another module and make it work by importing it.
~/content/index.ts
console.log("content loaded");

/**
 * @description
 * Chrome extensions don't support modules in content scripts.
 */
import("./components/Demo");
import("./init");

~/content/init.ts
import refreshOnUpdate from "virtual:reload-on-update-in-view";

refreshOnUpdate("pages/content/init");
/**
 * If you want to run HMR based on changes in the init file, please add the code above.
 */

export function init() {
  console.log("THIS IS THE CONTENT SCRIPT GUYS");

  function activityDetected(event) {
    if (event.type === "mousemove") {
      console.log("mouse has moved");
    } else if (event.type === "blur") {
      console.log("window has blurred");
    } else if (event.type === "visibilitychange") {
      console.log("visibility has changed");
    } else if (event.type === "keydown") {
      console.log("key was pressed");
    }

    if (!userIsActive) {
      userIsActive = true;
      // Send a message to the background script
      chrome.runtime.sendMessage({ type: "userActive" });
    }
    // this got moved over to the service worker too
    // resetInactivityTimeout();
  }

  // Add event listeners for user interactions
  document.addEventListener("mousemove", activityDetected);
  document.addEventListener("keydown", activityDetected);
  document.addEventListener("visibilitychange", activityDetected);
  window.addEventListener("blur", activityDetected);

  document.addEventListener("mouseup", function () {
    const selectedText = window.getSelection().toString().trim();

    if (selectedText) {
      console.log("Selected text:", selectedText);
      // You can add your custom logic or call a function here
    }
  });

  let userIsActive = false;
}

init();

Alternatively, you can get around this by deferring module imports.

console.log("content loaded");

// /**
//  * @description
//  * Chrome extensions don't support modules in content scripts.
//  */

console.log("THIS IS THE CONTENT SCRIPT GUYS");

function activityDetected(event) {
  if (event.type === "mousemove") {
    console.log("mouse has moved");
  } else if (event.type === "blur") {
    console.log("window has blurred");
  } else if (event.type === "visibilitychange") {
    console.log("visibility has changed");
  } else if (event.type === "keydown") {
    console.log("key was pressed");
  }

  if (!userIsActive) {
    userIsActive = true;
    // Send a message to the background script
    chrome.runtime.sendMessage({ type: "userActive" });
  }
  // this got moved over to the service worker too
  // resetInactivityTimeout();
}

// Add event listeners for user interactions
document.addEventListener("mousemove", activityDetected);
document.addEventListener("keydown", activityDetected);
document.addEventListener("visibilitychange", activityDetected);
window.addEventListener("blur", activityDetected);

document.addEventListener("mouseup", function () {
  const selectedText = window.getSelection().toString().trim();

  if (selectedText) {
    console.log("Selected text:", selectedText);
    // You can add your custom logic or call a function here
  }
});

let userIsActive = false;

import("./components/Demo");

The behavior of the __vitePreload part of the transpiled code seems to be causing the problem, but I'll have to spend some time figuring it out.
hope this helps.

Oh....? I don't know why, but it seems to work fine.
I just used the code you posted.
https://github.com/Jonghakseo/chrome-extension-boilerplate-react-vite/assets/53500778/8f7fb28b-0e2b-4e67-946b-8fafaf3b07f9

Close for issue management. Anyone can reopen it for similar or identical issue raising.


Fix some dead links in docs

Going through the docs, finding some dead links.

Yeah, I have secrets turned off, but for some reason PR's are still publishing through to GH. That needs resolved, it's a huge gap.


Add (some) REST support

Is your feature request related to a problem? Please describe.
I need to work in projects where both, REST and GraphQL queries needs to be done.
Usually, at the moment, REST is only needed (in my use case) for getting an Authentication token, but there are other projects/use cases where we need to work with both, REST and GraphQL API.
I guess this is a common use case (Insomnia exists just because of that, right?).
Describe the solution you'd like
Some way to be able to do some REST calls from inside Altair and get the result of such calls.
Describe alternatives you've considered
Insomnia. But it doesn't have a docs explorer at the moment.
I know this is a GraphQL client, but such thing would be kinda useful and let to some of us to consider this as an alternative to Insomnia.
Thanks for your time! :D.

Hey @soulchainer
I'm sorry but that is out of scope of Altair. There are plans to add some kind of scripting at some point, which you could potentially use to send requests, or compute values to be used within your application. However those are meant to make the requests more "dynamic". That would help in your case since you should potentially be able to get the authentication token and set it into an environment variable before your request is sent. But there wouldn't be a lot more to it.
As for the scripting, I'm still doing some research and trying to figure out the best way to provide that feature.


Autogenerated/gadgets revived.gadgets revived/ac90948d f4dd 44b3 b1d3 98e8bdb80f76

[ ] Have you signed the Contributor License Agreement?
[ ] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] This PR only modifies one (1) manifest
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.4 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

Automatic Validation failed with:

Manifest: The manifest file path must match PackageIdentifier and PackageVersion properties from manifest. actual
'manifests\g\GadgetsRevived\GadgetsRevived\1.0', expected
'manifests\g\GadgetsRevived\GadgetsRevived\2.0'

The path is 1.0 but the version is 2.0.


Harmonise the PUI containers and headers

Watch out: Merge #719 first!
The PUI has built up a range of different implementations of containers and headers across a range of templates. This means some pages behave differently, and containers can misbehave (sometimes on the same pages as ones behaving as expected), especially around breakpoints.
This PR simplifies the SCSS (and generated CSS) used to define container widths and padding, and makes all containers behave the same way.
It also tidies up and simplifies layout templates to improve reuse and reduce complexity, bringing all static pages into the same template for consistency, always generating titles and breadcrumb context in the same place (ie in the view).
Together these changes make the site more consistent and easier to maintain.

Codecov Report

Merging #722 (13b5653) into main (0d5ee48) will decrease coverage by 0.06%.
The diff coverage is 80.00%.

@@            Coverage Diff             @@
##             main     #722      +/-   ##
==========================================
- Coverage   92.18%   92.13%   -0.06%
==========================================
  Files          25       25
  Lines        1088     1093       +5
  Branches       55       55
==========================================
+ Hits         1003     1007       +4
- Misses         71       72       +1
  Partials       14       14

Impacted Files
Coverage Δ

judgments/views/results.py
64.44% <0.00%> (-1.47%)
:arrow_down:

judgments/views/advanced_search.py
80.85% <100.00%> (+0.85%)
:arrow_up:

judgments/views/browse.py
92.00% <100.00%> (+0.69%)
:arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Zero --> Null for missing values

For flot charts, null values would be better than zero values.
In flot, it can be configured if null values should be null, ignored or zero.

+1

If you do not tag the option "Werte vor jeder Aktualisierung nullen" in the adapter settings the last known value will be kept and the flot chart won't be disrupted.
If you insist on having always up to date values you have to tag the option. Then - in case of an error while receiving new data from tankerkoenig or in case the station is closed - the new value is 0.
Optin:
See 0 ----> Price is not up to date or station is closed
See other value ----> price is up to date*
Optout:
see last value (possibly not up to date)
chart ist fluent, because no null or 0 ist written.
*up to date means the last known value on tankerkoenig.

I do not want last known but actual, valid and up-to-date value or no value at all (null)
I accept gaps in flot charts when stations are closed or in case of any errors
0 is theoretically a valid value (free fuel), null means no value (error or station closed)
I don´t want zero values, because fuel is not free when station is closed and the jumps (vertical lines) in flot chart are bad
In flot, it can be configured if null values should be null, ignored or zero

This can´t be achieved with the option "Werte vor jeder Aktualisierung nullen", neither optin nor optout will work.
So my suggestion would be to use null instead of zero...
Do you see any disadvantages of using null?

At least, feed would be fine as this value is primarly used for flot (in my case).
short and 3rd are connected, so either both or none should be changed imho.
For name, the best would be to never reset the value, only overwrite it with new values.
So changing only feed would be fine (for me) for now.


How to only generate specific features?

In my case, the amount of experimental data is huge. Thus, I need to use a small set to try different features and then select a subset of features. However, I cannot find an elegant way to only generate those features on the new dataset. How can I implement this function?

you can combine your tables into only one big table by using join relations, and generate features by set max_depth=1 in ft.dfs and only set trans_primitives without agg_primitives.

@zhenlingcn when you calculate the features on the smaller dataset, you should get back both a feature matrix and a list of features objects.  If you trim down that feature list to just the subset you want to use on the larger dataset, you can calculate that list of features directly on the large dataset using the calculate_feature_matrix function.  This assumes the datasets have the same relationship structure, just a difference in the amount of data.  For convenience, you can use ft.save_features and ft.load_features to save the feature list you want to use to disk so you can load it in later.

I hope I answered your question, am closing this issue for now.  Feel free to re-open and comment more if this doesn't seem resolved.


Automatic odb device tracker

Description:
The Automatic ODB reader tracks driving habits and locations. Battery attribute didn't quite fit for the Fuel Level so added a new attribute.
Related issue (if applicable): fixes #
Pull request in home-assistant.io with documentation (if applicable): home-assistant/home-assistant.io#863
Example entry for configuration.yaml (if applicable):
device_tracker:
  platform: automatic
  client_id: 1234567
  secret:<PHONE_NUMBER>
  username<EMAIL_ADDRESS>  password: your_password
  devices:
    - 2007 Honda Element
    - 2004 Subaru Impreza

Checklist:
If user exposed functionality or configuration variables are added/changed:

[x] Documentation added/updated in home-assistant.io

If code communicates with devices, web services, or a:

[x] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[ ] New dependencies have been added to the REQUIREMENTS variable (example).
[ ] New dependencies are only imported inside functions that use them (example).
[ ] New dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[ ] New files were added to .coveragerc.

If the code does not interact with devices:

[ ] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[ ] Tests have been added to verify that the new code works.

Will you add fuel level to the see_service and the root see function also?

What about exposing the fuel level & any other similar data as sensors? That would also be in line with the Torque component.

@happyleavesaoc Is it ok if I save that for a second PR? I like to try to keep my PRs atomic.

Of course. Definitely not a mandate! Maybe one day we'll even have a Vehicle domain.

I almost made one, but figured it fit in device tracker since it had GPS.
On Aug 29, 2016 7:26 AM, "happyleavesaoc"<EMAIL_ADDRESS>wrote:

Of course. Definitely not a mandate! Maybe one day we'll even have a
Vehicle domain.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/home-assistant/home-assistant/pull/3035#issuecomment-243122993,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AC2fZYWjpuRBe88yf5Jlr80hqpC78j5iks5qkt4NgaJpZM4JvIoC
.

Do not merge yet - gonna refactor to utilize refresh token and expiration to reduce callouts.

Did you rebase this after #2908 was merged? You seem to have started from that branch at least so it should be less painful

I thought I rebased, I think I fubar'd it. I'll redo the rebase tomorrow
On Aug 30, 2016 10:19 PM, "Johann Kellerman"<EMAIL_ADDRESS>wrote:

Did you rebase this after #2908
https://github.com/home-assistant/home-assistant/pull/2908 was merged?
You seem to have started from that branch at least so it should be less
painful
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/home-assistant/home-assistant/pull/3035#issuecomment-243654340,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AC2fZSxn_g0bDrBBf38p2t5hCrYLIK0Pks5qlQC2gaJpZM4JvIoC
.

:dolphin: from me, lets just wait for @balloob to comment on the attributes
Especially for your next PR to move things like battery, as it might have some frontend impact.

It shouldn't effect the front end as the attributes are pulled in
dynamically.
On Fri, Sep 2, 2016 at 3:42 PM, Johann Kellerman<EMAIL_ADDRESS>wrote:

🐬 from me, lets just wait for @balloob https://github.com/balloob to
comment on the attributes
Especially for your next PR to move things like battery, as it might have
some frontend impact.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/home-assistant/home-assistant/pull/3035#issuecomment-244494190,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AC2fZTKPCJwc_lgt2eVvrxu3t641IyWXks5qmJg9gaJpZM4JvIoC
.

Probably wouldn't, but the old ones were all simple class attributes. Now its a dict, so not sure

I'm sure I could figure it out :-P

As long as GPS & battery level still displays in the front end, I'm happy!
:dolphin:

Awesome commit!


skill increase-decrease does not show skill change message if change is less than 1%

as per summary, problem in src/Network/PacketHandlers.cs
if (change != 0.0f && !float.IsNaN(change) && ProfileManager.CurrentProfile != null && ProfileManager.CurrentProfile.ShowSkillsChangedMessage && Math.Abs(change) >= ProfileManager.CurrentProfile.ShowSkillsChangedDeltaValue)
change is float, usually 0.1
when ShowSkillsChangedDeltaValue is int = 1 in profile.cs
public int ShowSkillsChangedDeltaValue { get; set; } = 1;
so when skill is changed less than 1%, change message is not shown
usually skill is changed by 0.1% - so I can say that skill change message is never shown in real live gameplay.

ShowSkillsChangedDeltaValue is only 1 by default.
If you want to see those 0.1 skill changes, you're meant to use the slider labeled 'Inform when skills change by' to 0 under the 'General' section of the Options menu, like so.  This will change the value of ShowSkillsChangedDeltaValue.

You can definitely ask about stuff like this in Discord if you run into anything else you find surprising.

The standard client has a 0-1000 slider for 0.1% precision, I think it makes sense to change ClassicUO to have the same precision. 1% isn't terribly useful

Change made https://github.com/ClassicUO/ClassicUO/commit/22c6882178005b7a47fbfdbb653d553407846262


"The located assembly's manifest definition does not match the assembly reference. " exception raised

[Enter feedback here]
It will report "0x80131040 : The located assembly's manifest definition does not match the assembly reference." exception at this line:
winrt::SampleComponent::Example myExample;
VS: Microsoft Visual Studio Enterprise 2022 (64-bit)

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: ca2fb23f-7644-1b8d-6b34-cf65c0e0fb9a
Version Independent ID: 13f2c20d-8a38-7466-105d-0d868f2cd507
Content: Authoring a C# Windows Runtime component for use from a C++/WinRT app - UWP applications
Content Source: windows-apps-src/cpp-and-winrt-apis/use-csharp-component-from-cpp-winrt.md
Product: uwp
Technology: platform
GitHub Login: @stevewhims
Microsoft Alias: stwhi

Hi, @kezhangMS, and thanks for filing this issue. I followed along with the tutorial, and I don't get any issue with that line of code, either at compile time or at run time. I don't know whether it makes any difference, but did you set the Application Minimum Version of the WRC project as indicated in the tutorial? I can't think what else might be causing the issue, except perhaps using different project templates from the ones indicated. In any case the instructions in the tutorial appear to be correct.
Thanks!
-Steve


SSL Error on site

Minor SSL issue on indobenchmark.com

Thank you for report. We will figure out on how to solve the issue.

Feel free to re-open the issue if you have any follow-up questions.


Is it possible to add a texture pack to this

Hi I just made a server using this datapack, but I cant figure out how to get a texturepack for it

Hello, if you downloaded the datapack on modrinth, it is just below the datapack download:


Not able to clone remote git when passphrase is not empty

New Issue Checklist

[x] Updated fastlane to the latest version
[x] I have read the Contribution Guidelines

When I trying the fastlane cert command with a non-empty passphrase key, the terminal stucks at Cloning remote git repo... at the fastlane is obviously waiting for the user to input the passphrase for the git.
Complete output when running fastlane, including the stack trace and command used

You can use: --capture_output as the last commandline argument to get that collected for you

INFO [2017-05-01 13:59:19.21]: Cloning remote git repo... INFO [2017-05-01 13:59:19.21]: $ GIT_TERMINAL_PROMPT=0 git clone 'git@github.dev.com:certificates.git' '/var/folders/fm/rt336s_j5gqglxwm7_wj7b7xtl38cc/T/d20170501-3703-1ww977' INFO [2017-05-01 13:59:19.22]: ▸ Cloning into '/var/folders/fm/rt336s_j5gqglxwm7_wj7b7xtl38cc/T/d20170501-3703-1ww977'...
Environment
Please run fastlane env and copy the output below. This will help us help you :+1:
If you used --capture_output option please remove this block - as it is already included there.
✅ fastlane environment ✅
Stack

Key
Value

OS
10.12.3

Ruby
2.0.0

Bundler?
false

Git
git version 2.10.1 (Apple Git-78)

Installation Source
/usr/local/bin/fastlane

Host
Mac OS X 10.12.3 (16D32)

Ruby Lib Dir
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib

OpenSSL Version
OpenSSL 0.9.8zc 19 Mar 2015

Is contained
false

Is homebrew
false

Is installed via Fabric.app
false

Xcode Path
/Applications/Xcode.app/Contents/Developer/

Xcode Version
8.2.1

System Locale

Variable
Value

LANG
en_US.UTF-8
✅

LC_ALL

LANGUAGE

fastlane files:
`./.fastlane/Fastfile`
# Customise this file, documentation can be found here:
# https://github.com/fastlane/fastlane/tree/master/docs
# All available actions: https://github.com/fastlane/fastlane/blob/master/docs/Actions.md
# can also be listed using the `fastlane actions` command

# Change the syntax highlighting to Ruby
# All lines starting with a # are ignored when running `fastlane`

# By default, fastlane will send which actions are used
# No personal data is shared, more information on https://github.com/fastlane/enhancer
# Uncomment the following line to opt out
opt_out_usage

# If you want to automatically update fastlane if a new version is available:
#update_fastlane

# This is the minimum version number required.
# Update this, if you use features of a newer version
fastlane_version "2.24.0"

# Used for manual .env loading inside certs lane
require('dotenv')

default_platform :ios

platform :ios do

  # Helper methods for common ENV vars and paths. Using ENV["SOME_STRING"] everywhere is NOT recommended.
  def workspace()         sh("git rev-parse --show-toplevel").chomp                             end
  def build_config()      ENV['XCODE_CONFIGURATION']                                            end
  def build_number()      ENV["BUILD_NUMBER"]                                                   end
  def scheme()            ENV["SCHEME"]                                                         end
  def app_name()          scheme()                                                              end
  def xc_workspace()      "Groupon.xcworkspace"                                                 end
  def xc_workspace_path() workspace + '/' + xc_workspace                                        end
  def branch()            get_branch_name()                                                     end
  def mvn_version()       "#{app_version}-#{build_number}"                                      end
  def zipped_artifacts()  "#{workspace}/build/artifacts/#{app_name}-#{mvn_version}.zip"         end

  # Avoid building and artifacting on branches that don't match these regexes
  # We don't need ipas for anything not matching these, so we can speed up the builds.
  def should_build_and_artifact(build_ipa=false)
    result = build_ipa
    if (branch =~ /^master$/) != nil || (branch =~ /^.*release.*$/i) != nil || (branch =~ /^.*integration.*$/i) != nil
      result = true
    end
    if building_for_appstore? # Always build an IPA for appstore.
      result = true
    end
    return result
  end

  def app_version()
    get_info_plist_value(path: "#{workspace}/Resources/#{app_name}-Info.plist", key: "CFBundleShortVersionString")
  end

  def building_for_appstore?()
    return ['AppStore', 'LivingSocial AppStore'].include?(build_config)
  end

  def archive_path()
    if building_for_appstore?
      return "#{workspace}/build/artifacts/AppStore"
    else
      return "#{workspace}/build/artifacts/Enterprise"
    end
  end

  # Returns the proper branch name, if we are building on dotCI, they reset HEAD to a detached SHA
  def get_branch_name()
    return is_ci? ? ENV['DOTCI_BRANCH'] : git_branch
  end

  #=====================================================================
  # Builds
  #=====================================================================

  desc "Runs the tests and builds the ipa if necessary"
  desc "This is the entry point into fastlane for most actions"
  lane :build do |options|

    # Build variables
    upload_to_nexus = options[:upload_to_nexus]
    build_ipa = options[:build_ipa]
    upload_to_itunes = options[:upload_to_itunes]

    # Unlock keychain on CI
    unlock_ci_keychain

    # Remove old artifacts
    remove_old_artifacts()

    # Run tests
    run_tests()

    # Early exit, if we don't have to build the IPA, skip the rest of this lane!
    if should_build_and_artifact(build_ipa) == false
      puts "Skipping rest of build as should_build_and_artifact returned false"
      next # Skip the rest of this lane
    end

    # Copy the catfood plist to green-machine
    copy_catfood_list()

    # Build the app
    build_xcarchive()

    # Export to the correct IPA format we want for Enterprise or AppStore
    export_xcarchive()

    # Upload to nexus
    artifact(upload_to_nexus: upload_to_nexus)

    # Submit app if we are running an AppStore build
    if building_for_appstore? && upload_to_itunes
      submit_app()
    end
  end

  desc "Builds and artifacts the app"
  desc "Does not run tests."
  lane :build_xcarchive do |options|
    build_start = Time.now

    # Create artifact path
    sh("mkdir -p #{archive_path}")

    # Clean and build the project
    xcclean(workspace: xc_workspace_path,
      scheme: scheme,
      xcargs: "-sdk iphoneos -configuration \"#{build_config}\""
    )

    build_settings = {
      "SYMROOT" => "#{workspace}/build",
      "CI_BUILD_NUMBER" => build_number,
    }

    xcodebuild(
      workspace: xc_workspace_path,
      scheme: scheme,
      build_settings: build_settings,
      xcargs: "-sdk iphoneos -configuration \"#{build_config}\"",
      archive_path: archive_path,
      archive: true
    )

    # Upload the build duration
    build_duration = (Time.now - build_start).ceil
    report_build_time(duration: build_duration)
  end

  desc "Exports xcarchive to IPA"
  desc "Used for both Enterprise & AppStore builds"
  lane :export_xcarchive do |options|
     existing_xcarchive_path = "#{archive_path}.xcarchive"
     intermediate_build_path = "#{workspace}/build/intermediates"
     export_plist_path = "#{workspace}/scripts/ExportArchivePlists/#{scheme}-#{build_config}-ExportArchive.plist"

     # Full IPA paths
     tmp_ipa = "#{intermediate_build_path}/#{app_name}.ipa"
     output_ipa = "#{intermediate_build_path}/#{app_name}-#{mvn_version}.ipa"
     # Don't rename for appstore builds, as we submit {app_name}.ipa as the final product
     if building_for_appstore?
       output_ipa = tmp_ipa
     end

     # Creates an IPA from the existing .xcarchive file
     sh("#{workspace}/scripts/./xcbuild-safe.sh -exportArchive -archivePath \"#{existing_xcarchive_path}\" -exportOptionsPlist \"#{export_plist_path}\" -exportPath \"#{intermediate_build_path}\"")

     # Rename IPA file
     # E.g. (Enterprise): workspace/build/intermediates/Groupon-17.6-12345-Enterprise.ipa
     sh("mv \"#{tmp_ipa}\" \"#{output_ipa}\"")

     # Move artifacts to artifact folder
     copy_artifacts(
      target_path: archive_path(),
      artifacts: ["**/*.dSYM", "#{output_ipa}"],
      fail_on_missing: true
     )

     #TODO: Remove once we have fixed dogfood installer not to expect this file.
     sh("touch \"#{archive_path}/manifest.plist\"")

     # Zip the folder
     zip(
      path: archive_path,
      output_path: zipped_artifacts
     )
  end

  #=====================================================================
  # Artifacts
  #=====================================================================

  desc "Removes old artifacts in the path"
  desc "Required, since on CI we jut reset the repository to a SHA instead of removing the folder."
  private_lane :remove_old_artifacts do |options|
    sh("rm -rf #{workspace}/build")
  end

  desc "Creates artifacts and uploads to nexus if necessary"
  desc "Must pass workspace, and branch as options"
  lane :artifact do |options|
    puts "Artifacting with #{branch}"
    sh("#{workspace}/scripts/./upload_to_nexus.sh \"#{branch}\" \"#{workspace}\" \"#{build_number}\" \"#{ENV["GROUP_ID"]}\" \"#{scheme}\" \"#{options[:upload_to_nexus]}\" #{building_for_appstore?}")
  end

  #=====================================================================
  # Unit Testing + Reporting
  #=====================================================================

  desc "Runs unit tests, generates code coverage and report unit test numbers"
  lane :run_tests do |options|
    if build_config != 'Catfood' && build_config != 'AppStore' && build_config != 'LivingSocial AppStore' then
      xctool_test()
      report_unit_test_numbers()
    end
  end

  desc "Builds and tests with xcodebuild and xctool"
  lane :xctool_test do |options|
    sdk = "iphonesimulator"
    derivedDataPath = ENV["DERIVED_DATA_PATH"]
    config = ENV["UNIT_TEST_XCODE_CONFIGURATION"]
    reporter = "junit:#{workspace}/fastlane/test_output/report.junit"
    executor = File.basename(ENV['PWD'])
    sim_name = executor

    # Clean the project
    xcclean(workspace: xc_workspace_path,
      scheme: scheme,
      xcargs: "-sdk #{sdk} -configuration \"#{config}\""
    )

    # Run multisim_test boot sim, build, test with xctool
    command = "ruby #{workspace}/scripts/multisim_test.rb "\
    "--name #{sim_name} "\
    "--sdk #{sdk} "\
    "--config \"#{config}\" "\
    "--deriveddata #{derivedDataPath} "\
    "--scheme #{scheme} "\
    "--path #{workspace} "\
    "--workspace #{xc_workspace} "\
    "--reporter #{reporter} "

    puts "running command: \n#{command}"

    sh(command)
  end

  desc "Report unit test count to mobile test dash"
  private_lane :report_unit_test_numbers do |options|
    if branch == 'master'
      puts "Updating grapher"
      sha1 = sh("git rev-parse --short HEAD").chomp
      unit_test_count = sh("#{workspace}/Tests/tools/unit-test-count.sh #{workspace}/test_output/report.junit").chomp
      sh("curl -X POST -d 'branchIdentifier=#{branch}&projectIdentifier=iOS%20Consumer%20Unit%20Test%20Count&datapoint[name]=Count&runIdentifier=#{sha1}&datapoint[value]=#{unit_test_count}' 'http://mobileperftest-app.snc1/api/datapoint'")
    end
  end

  desc "Report build durations to mobiletestdashboard"
  private_lane :report_build_time do |options|
    duration = options[:duration]
    now = DateTime.now.to_s
    sh("curl -X POST -d 'branchIdentifier=profile&projectIdentifier=iOS%20Consumer%20Build%20Times&datapoint[name]=t_Groupon_duration&runIdentifier=#{now}&datapoint[value]=#{duration}' 'http://mobileperftest-app.snc1/api/datapoint' || true")
  end

  #=====================================================================
  # AppStore submission
  #=====================================================================

  desc "Submit to App Store"
  lane :submit_app do |options|
    deliver(
      ipa: "#{archive_path}/#{app_name}.ipa",
      app_version: "#{app_version}"
    )
    hipchat_message = "New #{app_name} #{app_version} Build Uploaded to iTunes Connect - Build #{build_number}"
    hipchat(message: hipchat_message)
    remove_fastlane_folders_if_needed(["#{workspace}/fastlane"])
  end

  #=====================================================================
  # Cut release branch
  #=====================================================================

  ## Usage: fastlane cut_release_branch skip_date_check:${skip_date_check} is_patch_release:${is_patch_release}
  desc "Cutting Release Branch"
  lane :cut_release_branch do |options|
    skip_date_check = options[:skip_date_check] ? options[:skip_date_check] : false
    is_patch_release = options[:patch_release] ? options[:patch_release] : false
    base_branch = options[:base_branch]
    sh("#{workspace}/scripts/./cut_release_branch.rb \"#{workspace}\" \"#{base_branch}\" \"#{skip_date_check}\" \"#{is_patch_release}\"")
  end

  #=====================================================================
  # Certificates and Keychain actions
  #=====================================================================

  # This is a helper method to load an environment file from a combination of appname and type.
  # Only used when invoking the 'certs' lane directly from command line.
  def loadEnvFromAppAndType(match_app_name, match_type)
    appstore_and_debug_types = ['development', 'adhoc', 'appstore']
    if match_app_name == 'groupon'
      appstore_and_debug_types.include?(match_type) ? Dotenv.load('.env.Appstore') : Dotenv.load('.env.Enterprise')
    elsif match_app_name == 'livingsocial'
      appstore_and_debug_types.include?(match_type) ? Dotenv.load('.env.LivingSocialAppStore') : Dotenv.load('.env.LivingSocialEnterprise')
    else
      raise "Unsupported app name #{match_app_name}"
    end
  end

  desc "Download Certificates and Provisioning profiles for Different teams. Admins can push new profiles using write:true
  # Usage: fastlane certs app:${app} match_type:${env}
  Supported configurations
    # app         : groupon , livingsocial
    # match_type  : development, adhoc, appstore, enterprise (defaults to development)"
  lane :certs do |options|
    app = options[:app] ? options[:app].downcase : "groupon"
    # Option takes precendence, otherwise we fall back to .env file values, otherwise default to "development".
    type = options[:match_type] ? options[:match_type].downcase : (ENV["MATCH_TYPE"] ? ENV["MATCH_TYPE"] : "development")

    # This is a convenience method to load .env values without requiring passing the build config on command line.
    # Only necessary when running this lane directly from command line.
    # So we check that no .env files are previously loaded (easiest way is checking the match app ids aren't set).
    if ENV["MATCH_MAIN_APP_ID"] == nil
      loadEnvFromAppAndType(app, type)
    end

    if ['groupon','livingsocial'].include?(app) == false
      errorMessage =<<-USAGEMSG
      Invalid Team name. We do not support match for #{app} App!
      Usage: fastlane certs app:${app} env:${env}
      Supported configurations
        # app : groupon , livingsocial
        # env : development, adhoc, appstore
      USAGEMSG
      raise "#{errorMessage}"
    end

    # Default to login keychain if we aren't on CI
    if is_ci == false
      ENV["MATCH_KEYCHAIN_NAME"] = 'login.keychain'
      ENV["MATCH_KEYCHAIN_PASSWORD"] = ''
    end

    # Build match app identifiers. See env files for details, this is to workaround no array support in DotEnv.
    app_identifiers = [ENV['MATCH_MAIN_APP_ID'], ENV['MATCH_TODAY_WIDGET_ID'], ENV['MATCH_NOTIFICATION_WIDGET_ID']]

    if options[:write] == true
      match(type: type, force_for_new_devices: true, force: true, verbose:true, readonly: false, app_identifier: app_identifiers)
    else
      puts "Fetching #{type} profiles of #{app} app"
      match(type: type, app_identifier: app_identifiers)
    end
  end

  desc "Unlocks keychain on CI only"
  private_lane :unlock_ci_keychain do |options|
    if is_ci?
      unlock_keychain

      puts "Reading match certs for #{app_name} #{ENV["MATCH_TYPE"]}"
      certs(app: app_name.downcase)
    end
  end

  #=====================================================================
  # Misc Utitilies
  #=====================================================================

  private_lane :copy_catfood_list do |options|
    if build_config == 'Catfood'
      puts "Copying Catfood plist to green-machine Dogfood plist location"
      sh("cp #{workspace}/scripts/resources/ABTestCatfoodOverrides.plist #{workspace}/green-machine/GreenMachineResources/ABTestDogFoodOverrides.plist")
    end
  end

  def remove_fastlane_folders_if_needed(fastlane_folders)
    fastlane_folders.each { |folder|
      if File.directory?(folder)
        sh("rm -rf #{folder}")
      end
    }
  end

end
# More information about multiple platforms in fastlane: https://github.com/fastlane/fastlane/blob/master/docs/Platforms.md
# All available actions: https://github.com/fastlane/fastlane/blob/master/docs/Actions.md

`./.fastlane/Appfile`
app_identifier "com.groupon.grouponapp" # The bundle identifier of your app
#apple_id<EMAIL_ADDRESS># Your Apple email address

# you can even provide different app identifiers, Apple IDs and team names per lane:
# More information: https://github.com/fastlane/fastlane/blob/master/docs/Appfile.md

fastlane gems

Gem
Version
Update-Status

fastlane
2.28.3
💥 Check failed

Loaded fastlane plugins:
No plugins Loaded
Loaded gems

Gem
Version

slack-notifier
1.5.1

CFPropertyList
2.3.5

claide
1.0.1

colored2
3.1.2

nanaimo
0.2.3

xcodeproj
1.4.4

rouge
2.0.7

xcpretty
0.2.7

terminal-notifier
1.7.1

terminal-table
1.4.5

plist
3.2.0

addressable
2.3.8

multipart-post
2.0.0

word_wrap
1.0.0

tty-screen
0.5.0

babosa
1.0.2

colored
1.2

highline
1.7.8

commander-fastlane
4.4.4

excon
0.45.4

faraday
0.9.2

unf_ext
<IP_ADDRESS>

unf
0.1.4

domain_name
0.5.20160615

http-cookie
1.0.2

faraday-cookie_jar
0.0.6

fastimage
1.9.0

gh_inspector
1.0.2

uber
0.0.15

representable
2.3.0

retriable
2.1.0

mime-types-data
3.2016.0521

mime-types
3.1

hurley
0.2

little-plugger
1.1.4

multi_json
1.12.1

logging
2.2.2

jwt
1.5.6

memoist
0.15.0

os
0.9.6

signet
0.7.3

googleauth
0.5.1

httpclient
2.8.3

google-api-client
0.9.28

json
1.7.7

mini_magick
4.5.1

multi_xml
0.5.5

rubyzip
1.1.7

security
0.1.3

xcpretty-travis-formatter
0.0.4

dotenv
2.2.1

bundler
1.14.6

faraday_middleware
0.10.0

generated on: 2017-05-01

Can you run it manually once, so you're asked for the credentials, which are then stored in the keychain?

Typing it in manually didn't work. I had to remove my passphrase, rerun the fastlane command and then add the passphrase back. I used to the following guide to remove my passphrase:
http://www.thinkplexx.com/learn/howto/security/ssl/remove-passphrase-password-from-private-rsa-key

@KrauseFx hi, any update on this?
fastlane match won't ask for ssh passphrase
usually when I do clone manually it should show
Enter passphrase for key '/Users/xxxxxxx/.ssh/id_rsa'
but when using match the line seems not cameup
doing it manually won't work


Remove pubnet configuration from the quickstart image

I propose we remove the pubnet configuration from the quickstart image.
There are several reasons:

This image isn't intended for running a scalable and long live node on pubnet.
This image is intended for developing testing.
Pubnet has a significant amount of data, and so tests like our CI runs that test the pubnet edition have to pull a decent amount of data and so it takes about 1 hour to run pubnet tests.
I've lost count of the number of times I've heard people say we don't want people to use quickstart for running production instances, so it seems like this is a problem that we've created by having pubnet support in this image.
With increased network traffic it is becoming impractical to run the pubnet configuration without waiting hours.

There are several reasons not to:

People may be using the quickstart image for actual pubnet deployments and may not be prepared to migrate off.
We may not have good enough documentation for running stellar-core and horizon other ways.
It is helpful to validate this image is a good representation of a working node by running it with pubnet, although running it with testnet should satisfy that requirement I think.

cc @MonsieurNicolas @brahman81 @accordeiro @ire-and-curses @jcx120

This sounds good to me, quickstart should never be used in production. This might impact folks who use the quickstart image to submit transactions to Pubnet locally?

This might impact folks who use the quickstart image to submit transactions to Pubnet locally?

Is that a common use case? This is the first time I've heard of this use case.

Not sure tbh, it has been a use case at some point but I have no idea how pervasive it is. I wouldn't block on this as there are other easier ways to get a local horizon + core deployment .

there are other easier ways to get a local horizon + core deployment

That hasn't been my experience actually. I'll close this issue I think. I hadn't considered this use case.
Thanks Tom!


Pass TokenManager to plugins and use where needed

Pass the TokenManager implemented in #7353 to all plugins via the makeCreateEnv method. Where needed (catalog, search, etc?) attach server tokens to backend to backend requests, and validate both frontend and backend tokens on the receiving end.
Document how to migrate to using the TokenManager as well.

the first pass of this is implemented in #7943


disabled as a global option doesn't work

When i try this:
const Validations = buildValidations({
  'model.email': [
    validator('presence', true)
  ]
}, {
  disabled(model, attribute) {
    console.log('Can anyone hear me?');
    return false;
  }
});

export default Component.extend(Validations, {
});

The console.log never fires.  The validations are disabled though—despite the fact that I am returning false.

Actually disabled as a function doesn't work right no matter how you use it.

@dustinfarris what version of ember-cp-validations are you on?

2.9.3

Does it work when you do this:
const Validations = buildValidations({
  'model.email': [
    validator('presence', true)
  ]
}, {
  disabled(model, attribute) {
    console.log('Can anyone hear me?');
    return false;
  }
});

export default Component.extend(Validations, {
  model: { email: '' }
});

I have a similar use case and am currently working with version 3.0.0-beta.0
What I can confirm is that the global disabled-computed is being utilized whenever a validator doesn't specify its own disabled logic, so it's more or less a default option.
My intuition was that it would act as a real global disabled aka "Check the topmost disabled first and only if that is false, check the disabled properties on the specific validators".
But I guess that's what #165 is aiming for, right?

@hschmidt99

Just like in the default options, local validator options will always take precedence over default options and default options will always take precedence over global options. This allows you to declare global rules while having the ability to override them in lower levels.

- docs

@dustinfarris have you been able to resolve your issue?

I noticed the docs show disabled being used as a function, but the tests only use it as a property or a computed property. Switching to a computed property for disabled resolved the problems I was having.

I'm using ember-changeset-validations now.  Please feel free to close, but looks like there is still an open issue with updating docs for 3.x.


vendor: add backoff

@mxinden @fabxc @Gouthamve
Without this our unit tests will fail.

@brancz Should we add a vendor job to the CI that checks whether everything in the vendor folder matches vendor.json?

👍

@mxinden yes we should at some point, but it is more easily said than done :slightly_smiling_face:


adding snippet responsive image

Checklists
General Checks

[ ] the branch is up to date with main/master
[ ] the code works when pulled and run locally
[ ] All CI checks pass
[ ] all conflicts are resolved (if any)
[ ] PR has a descriptive title
[ ] PR has appropriate labels and milestones for easy identification
[ ] PR it is assigned to the owner
[ ] reviewers are assigned
[ ] the PR contributes only one focused change
[ ] It is in the appropriate column in the project board (if necessary)
[ ] has short and clear description
[ ] is linked to an issue (if it is related)
[ ] feedback is addressed (if any and if it is appropriate feedback.)

Markdown

[ ] the markdown source is formatted
[ ] spelling and grammar is correct in all text
[ ] The markdown looks correct when you preview the file
[ ] all links and images work
[ ] any embedded code snippets are formatted

Hey @sannesofie can you please revert the changes that you made to the files other than snippets/html-css/responsive-image.md ?
You can revert to the version of the main branch by using the following GIT command in the CLI:
git checkout origin/main -- path/to/file
The snippet looks good!

@arnochauveau I just looked over the changes and the only changes I did was add the little snippet... I do not know how all the other changes happened. I will try and revert

@arnochauveau I just looked over the changes and the only changes I did was add the little snippet... I do not know how all the other changes happened. I will try and revert

That happens sometimes :-)
That's why I always check what files changed and revert the accidental changes before committing.

@arnochauveau Is it normal that VScode just adds changes by auto?
I tried git checkout origin/main -- path/to/file (not sure how to do this) can you help?

@arnochauveau Is it normal that VScode just adds changes by auto? I tried git checkout origin/main -- path/to/file (not sure how to do this) can you help?

Sure, I've contacted you via Discord!


overlayremove also fired when manually removing layer

The documentation says for the overlayremove event:

Fired when an overlay is deselected through the control.

But it is also fired if I programmatically remove a layer that is controlled through the layer control: map.removeLayer(layerThatWasAddedToLayerCnotrol).
So either the documentation for this event should be update to reflect this behavior, or, preferably, the overlayremove should only be fired when layers are removed from the map through the layer control.
Same probably applies for overlayadd, though I did not check.

I'm using Leaflet version 1.3.1
The problem seems not have been solved.
When I remove the layer with map.removeLayer() it fires overlayremove and layerremove, when I remove the layer by clicking the layerControl it fires only overlayremove

The problem seems to come from using on(overlayremove) to trigger another overlayremove.  In the _onInputClick function control.layers looks at the checkboxes and pushes all of the layers into arrays based on the checkbox status.  Then it runs its own map.removeLayer for each layer that is unchecked which fires the overlayremove flag.  the problem is that the arrays are stored before the flags, but handled after the flags.  This works wonderfully for everything but triggering another overlayremove.  So an overlayremove actually happens, but because no checkmark was removed from the layer control, the layer is still in the addedLayers array, so it is immediately added back to the map.
The solution I came up with was to add a Waitfor function in my code which waits for _handlingClick to be false.
function waitUntil(check,onComplete,delay,timeout) {
// if the check returns true, execute onComplete immediately
if (check()) {
onComplete();
return;
}
if (!delay) delay=100;

var timeoutPointer;
var intervalPointer=setInterval(function () {
    if (!check()) return; // if check didn't return true, means we need another check in the next interval

    // if the check returned true, means we're done here. clear the interval and the timeout and execute onComplete
    clearInterval(intervalPointer);
    if (timeoutPointer) clearTimeout(timeoutPointer);
    onComplete();
},delay);
// if after timeout milliseconds function doesn't return true, abort
if (timeout) timeoutPointer=setTimeout(function () {
    clearInterval(intervalPointer);
},timeout);

}
Then it runs my map.removeLayer events.
map.on('overlayadd overlayremove', changeChildLayers);
function changeChildLayers(e){
let parent = e.name;
let type = e.type;
waitUntil(
function(){
if(layerControl._handlingClick == false){
return true;
} else {
return false;
}
},
function(){
for(layer in layerControl._layers){
if(layerControl._layers[layer] && layerControl._layers[layer].layer.category == parent){
if(type == "overlayadd"){
map.addLayer(layerControl._layers[layer].layer);
layerControl._update();
} else {
map.removeLayer(layerControl._layers[layer].layer);
layerControl._update();
}
}
}
}
)
}
This works, but I don't know if there is some solution that could be handled within leaflet.


pkg

Describe the feature
I suggest that Nuxt consider supporting pkg or nexe packaging, as nuxt3.7.3 is now basically available for official projects, but there are still shortcomings in source code protection, especially for small or individual developers. Therefore, I suggest that the Nuxt team consider pkg packaging
Additional information

[ ] Would you be willing to help implement this feature?
[ ] Could this feature be implemented as a module?

Final checks

[X] Read the contribution guide.
[X] Check existing discussions and issues.

Hi. Are you thinking about Nuxt as a single executable? Probably not core but i had been experimenting this idea recently for nuxt/cli. Made a new issue you can subscribe: https://github.com/nuxt/cli/issues/219

你好。您是否将Nuxt视为单个可执行文件？可能不是核心，但我最近一直在为 nuxt/cli 试验这个想法。制作了一个您可以订阅的新问题：nuxt/cli#219

Yes, I tried using bytenode, but it was quite difficult. I used confusion, but the effect was average. If it could support more ways of packaging, it would be very perfect. At the same time, I will continue to follow and hope that you will bring us more surprises

closing in favour of nuxt/cli issue :+1:


Using changeSlug in a job breaks panel reload

I'm using a janitor button to fetch data from an API to prefill page content. The data includes the page title. So I want to update the slug too. And reload the panel view after all is done. But changing the slug in the job breaks the panel reload because the page doesn't exist anymore under the old slug.
I don't see this as a bug-report because it seems like quite the edge case. It's rather a write down and to see if others run into this too.
I found this forum post where ktryn is sharing a solution to handle the redirect after changing the slug. Unfortunately it was reported that it broke with version 3.6.

maybe this will help
https://mega.co.nz/#!9vE0jIrD!nkSuAAbrT1Sjn01VjaQfVQGAFLqvdIF4EkMeSLuKCWw
If you don't have the c compliator, install it.(gcc or clang)

thanks for contributing.


youtube flash player fullscreen: controlbar does not appear by mousemove

there is a bug in the fullscreen flash player when playing a youtube video (self hosted h264 is ok). if you move the mouse the controlbar does not appear. only if you move the mouse to the left edge the controlbar appears.

@lhwparis This issue seems to be fixed on 3.x-dev branch; please test and let me know

Closing this issue since no answer has been posted in more than 2 weeks. If you'd like to reopen this, let us know. Thanks!


Please Document Azurite Logging in VS CODE - not obvious how to see logs

Which service(blob, file, queue, table) does this issue concern?
Azurite in VS CODE
Which version of the Azurite was used?
Latest from Gallery
Where do you get Azurite? (npm, DockerHub, NuGet, Visual Studio Code Extension)
VS CODE Gallery
What's the Node.js version?
v16.13.1
What problem was encountered?
Documentation is unclear how to see Azurite Debug Logs in VS Code
Steps to reproduce the issue?
See above
If possible, please provide the debug log using the -d parameter, replacing <pathtodebuglog> with an appropriate path for your OS, or review the instructions for docker containers:
No idea, how do you set -d for azurite in VS Code? (This is another documentation issue!)
-d "<pathtodebuglog>"

Please be sure to remove any PII or sensitive information before sharing!
The debug log will log raw request headers and bodies, so that we can replay these against Azurite using REST and create tests to validate resolution.
Have you found a mitigation/solution?
NOPE. Please update the documentation, should be an easy fix.

@Stuart-Williams-CLA
We have the doc for debug log of VSCode extension in readme.md:
https://github.com/Azure/Azurite?tab=readme-ov-file#visual-studio-code-extension:~:text=by default false-,azurite.debug,-Output debug log


use open-addressing hash map, just as a test

Pull Request Guidelines
Testing unordered maps with open addressing.
Scope & Purpose

[x] Strictly new functionality (i.e. a new feature / new option, no need for porting)
[x] The behavior change can be verified via automatic tests

Testing & Verification
This change is already covered by existing tests, such as any existing ApplicationServer or AQL tests.
https://jenkins01.arangodb.biz/view/PR/job/arangodb-matrix-pr/6267/

Obsolete


Not seeing "Machines should have secret findings resolved"

Not seeing the recommendation "Machines should have secret findings resolved" listed here

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 6230e675-0c07-86be-96e8-2e5463c809bc
Version Independent ID: a9e9c045-ed30-b01a-5682-b102448066ef
Content: Reference table for all recommendations - Microsoft Defender for Cloud
Content Source: articles/defender-for-cloud/recommendations-reference.md
Service: defender-for-cloud
GitHub Login: @dcurwin
Microsoft Alias: dacurwin

@applefacts
Thanks for your feedback! We will investigate and update as appropriate.

#reassign:dcurwin

#label:"backlog-item-created"

#reassign:alizabernstein

@dcurwin
Could you please review it?


Moved Git-Repository tcf-agent

The SRC_URI for the tcf-agent seems to be moved to a different folder:
https://git.eclipse.org/c/tcf/org.eclipse.tcf.agent.git/
https://github.com/Xilinx/meta-petalinux/blob/5d9a1b621c8198e7b5b87b18dc124877787bb309/recipes-devtools/tcf-agent/tcf-agent_%25.bbappend#L14
Does anybody know how to patch this in master and in former releases? We're still using 2018.2 and it's obviously moved there as well

Remove protocol=https or use https://git.eclipse.org/r/tcf/org.eclipse.tcf.agent.git instead


how about the inference speed?

Great work! Is the speed as fast as the paper'value?

The model is built as the paper described. (Only training stragety modified in this implementation) So I think the speed is nearly the same as the paper. (I will test it)

Got it. Thanks.

i run demo.py on GTX 1070, use time 120ms, why it's so slow , the paper said 71FPS.....


Refresh token

Long running refresh token

Codecov Report

Merging #43 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff          @@
##           master    #43   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           7     14    +7
  Lines         150    236   +86
  Branches       15     23    +8
=====================================
+ Hits          150    236   +86

Impacted Files
Coverage Δ

graphql_jwt/refresh_token/admin/__init__.py
100% <100%> (ø)

graphql_jwt/refresh_token/admin/filters.py
100% <100%> (ø)

graphql_jwt/refresh_token/shortcuts.py
100% <100%> (ø)

graphql_jwt/refresh_token/managers.py
100% <100%> (ø)

graphql_jwt/refresh_token/relay.py
100% <100%> (ø)

...aphql_jwt/refresh_token/migrations/0001_initial.py
100% <100%> (ø)

graphql_jwt/refresh_token/signals.py
100% <100%> (ø)

graphql_jwt/utils.py
100% <100%> (ø)
:arrow_up:

graphql_jwt/refresh_token/mutations.py
100% <100%> (ø)

graphql_jwt/refresh_token/models.py
100% <100%> (ø)

... and 11 more

Continue to review full report at Codecov.

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


Upgrade to v1.7.0 broke the e2e tests in Stackrox

Hello :wave:
I see that the recent update from v1.6.0 to 1.7.0 has changed the error messages and our e2e tests are failing now - see https://github.com/stackrox/stackrox/pull/5793
There are two possibilities to fix that:

Restore previous error messages to keep the compatibility with the tests
Update the test assertions in Stackrox repo

Both of these solutions are equally fine. I am open for questions if there are any.

A better fix would be to change the test assertions in Stackrox repo so they check error type rather than error string.
Do you want me to commit a fix to the dependabot/go_modules/github.com/np-guard/cluster-topology-analyzer-1.7.0 branch, or should this be a separate PR?

The problem is that these are e2e tests and they operate on strings printed to console and do not have access to the go code.
I think both options are fine - if pushing to that branch does not work, then you can open a separate PR for this.

Opened PR #5877

Fixed in Stackrox e2e tests.


Add govulncheck action

Adds the govulncheck action to the CI workflow and tests against the same versions of golang as boulder.

That was surprising to me too. I've removed govulncheck action proper to stop the unnecessary reinstallation of go from the setup-go action. Instead we'll use all the bits from that action sans setup-go.


Visual Studio 2019 Test-related API removal

Visual Studio 2019 Test-related API removal
In previous releases of Visual Studio there were several test-related APIs marked public, but were never documented or intended for external use. With Visual Studio 2019, we plan to deprecate and/or remove the APIs listed in the tables below. We know this could affect extension owners so we are communicating this very early and before the first preview release of Visual Studio 2019.
Only public APIs under Microsoft.VisualStudio.TestWindow.Interfaces.dll will be available to extend.
If this impacts you and your customers please comment so we can better understand your scenario.
Microsoft.VisualStudio.TestPlatform

API Name
Remarks
Recommendation

Common.Internal.ITestDiscovererCapabilities

Common.RockSteady.TestPluginsFramework.TestPluginCache

Common.RunSettings

Common.TestPluginsFramework.LazyExtension`2

Core.DiscoveryContext

Core.DiscoveryManager

Core.IFrameworkHandleInternal

Core.ITestCaseLog

Core.ITestRunLog

Core.TestExecutionContext

Core.TestExecutionManager

Core.TestRunStats

ObjectModel.Client.ITestExecutorLauncher
Not supported, as it is not required with the new design and new API   surface for ITestPlatform.
ITestHostLauncher to be considered.

ObjectModel.Client.ITestPlatform
Re-designed. Slight changes in the API surface to accommodate the new   design, removal of redundancies.
Recommendation for clients is to use the TranslationLayer APIs   to interact with Test platform v2.

ObjectModel.TestCaseProperties
Supported in TPv2

Utilities.AppContainerUtilities
Not supported in TPv2 : Helper utilities for running tests for Windows   Store apps
Do not use.

Utilities.ClientUtilities

Utilities.FakesUtilities
Not supported.

Utilities.InferSettingsHelper
Not supported.

Utilities.IPackageDebugSettings

Utilities.MSTestSettingsUtilities
Not supported.

Utilities.PackageDebugSettings

Utilities.PhoneAppUtilitiesImplementation

Utilities.UtilitiesException
Redundant exception, mainly used in AppContainer context.
Do not use.

Microsoft.VisualStudio.TestWindow (under Microsoft.VisualStudio.TestWindow.Interfaces.dll)

API Name
Remarks

Extensibility.ICustomSettingsImporter (Deprecated)
With runsettings having an extensible format to specify extension specific settings, there isn't a requirement to support multiple custom settings files. Extensions can always provide additional settings in IDE work flows through the IRunSettingsService.

Extensibility.ICommandContainer (Deprecated)

Extensibility.IDeployService (Deprecated)
This API is no longer supported for deployment of UWP based apps.

Extensibility.IOpenTarget (Deprecated)
Please use VS shell supported APIs to open files or hyperlinks in your extensions.

Extensibility.IProperty (Deprecated)

Extensibility.IResult (Deprecated)

Extensibility.IRunCommands (Deprecated)

Extensibility.ISelectionCommands (Deprecated)

Extensibility.ITest (Deprecated)

Extensibility.ITestsService (Deprecated)

Extensibility.IUICommandContainer (Deprecated)

Extensibility.RunCommand (Deprecated)

Extensibility.SelectionCommand (Deprecated)

Extensibility.ValidateArgProperty (Deprecated)

Extensibility.IIncrementalUnitTestChange

Extensibility.ISourceBasedTestDiscoverer

Extensibility.ISourceInformationProvider

Extensibility.ITestContainer2

Extensibility.ITestContainer3

Extensibility.ITestDataDelta

Extensibility.ITestDiscoveryListener

Extensibility.ITestExplorerService

Extensibility.ITestExplorerServiceContainerDiscoverer

Extensibility.ITestSourceLocationLookupService

Extensibility.SourceLocation

Extensibility.TestDataChangeReason

Extensibility.TestMethodSourceInformation

Telemetry. ITestWindowTelemetry

Microsoft.VisualStudio.TestWindow
The following APIs not under Microsoft.VisualStudio.TestWindow.Interfaces.dll are amongst the list of APIs removed.

API Name
Remarks

Controller.DiscoverAllOrRunOnInitializeOperation

Controller.DiscoveryConfiguration

Controller.IDebugLauncher

Controller.IOperationData

Controller.IRequestFactory

Controller.ITestContainerProvider

Controller.IUserRunSettings

Controller.Operation

Controller.OperationData

Controller.RequestConfiguration

Controller.RequestConfigurationFactory

Controller.SafeDispatcher

Controller.TestContainerConfiguration

Controller.TestPlatformProvider

Controller.TestRunConfiguration

Data.ChangedContainer

Data.TestsService

Extensibility.ILoggerExtensions

VsAdapters.AbstractDeviceAppxPackageUtilities

VsAdapters.VsPhoneAppxPackageUtilities

VsHost.DebugLauncher

VsHost.IToolWindow

VsHost.RemoteDebugLauncher

VsHost.TestWindowPackage

I'm looking to make a vsix interact with some test code (i.e. executing a test, getting the result) Can I use this apis (the ones not deprecated) to do so? Which nuget pkg should I use.

@luis-cortina We plan to publish a nuget package to make referencing Test Window APIs easy for extension developers. Until this package is published (it may be a month or two looking at our current backlog) you can manually add a reference to this assembly in your Visual Studio install location: <VSInstallDir>/Common7/IDE/CommonExtensions/Microsoft/TestWindow/Microsoft.VisualStudio.TestWindow.Interfaces.dll

@kendrahavens Thanks.
I'm currently using ITestsService, which looks like it will be deprecated in vs2019, to get discovered tests and run them inside an extension. If it's in fact deprecated, which interface should we use to do this moving forward?
Is there any documentation on this APIs? i.e I need to start the test discovery process inside an extension and I don't really know where to look. Any help will be appreciated.
Luis

@luis-cortina : Thanks for letting us know. ITestsService is indeed something we are planning to replace with a more performant alternative soon. Just so I understand your scenario fully, you need an API to trigger a test run on a filtered set of tests? Can you elaborate please?
If you have an implementation of ITestContainerDiscoverer triggering the TestContainersUpdated event should get a discovery going. This blog should help.

@AbhitejJohn how soon are you thinking? I'm thinking about upgrading my extension, but not sure if ITestService will be available at all for vs2019? Te blog post helps, thanks for that.

@luis-cortina : We are actively working on getting this through - Hoping to have it in an update soon. Could you tell us what functionality in ITestsService is interesting to your extension?

@AbhitejJohn here is what I'm using:

IComponentModel to get all the test window related services
ITestsService to get all discovered tests (GetTestsAsEnumerableAsync) and to run a particular test (RunTestsAsync)
ITestExplorerServiceContainerDiscoverer, I call the ClearContainers method which seems to start test discovery

@luis-cortina : Thanks.
So the usage of ITestsService is essentially to run a specific test - would supplying the test to run through a filter of Full Qualified Name or Outcome be an easier alternative? The GetTestsAsEnumerableAsync API cycles through all tests in the store which is pretty slow.
As for ITestExplorerServiceContainerDiscoverer this was meant primarily for Live Unit Testing and was accidentally public in builds of VS 2017. This wouldn't be available anymore unfortunately per the list above. Just to make sure I'm understanding this right - your extension triggers discovery to ensure everything is up to date, gets a set of tests and runs a specific one? INewTestService.RunTests with a filter, I described above, could do all of this for you - perform a discovery, filters the test you need to run and then runs it.

@AbhitejJohn Yes, that would work. It would be nice that the filter accepts a predicate of ITest (or whatever the new class is to represent a test), this should also allow someway to run multiple tests as well.
The only reason I'm using ITestExplorerServiceContainerDiscoverer is to kick off the discovery at the beggining of the vsix load, and it won't be needed anymore.

Hi @kendrahavens @AbhitejJohn, VS2019 is out and I'm looking to upgrade my extension to it. Are any of the deprecated apis available or should i wait for the new ones to come out?

@luis-cortina : The deprecated ITestsService is still available, yes. The new API I've detailed above are part of a larger change that's being stabilized. We will update this thread as soon as that is available in a preview.
APIs, other than the ones marked deprecated above, are removed. So ITestExplorerServiceContainerDiscoverer wouldn't be available anymore. A solution build triggers discovery as well if that's an option.

@AbhitejJohn Building the solution is not currently triggering discovery. Only opening the Test Explorer window does. Is there a service that can help me do this better?

@luis-cortina : Opening the Test Explorer ensures that a few initialization hooks are in place to trigger discovery on build - we wouldn't want to perform any test related work unless a user expresses interest in testing - one of which is opening the Test Explorer.

@kendrahavens @AbhitejJohn @cltshivash Any updates on this? I'm looking for some sort of interface to kickstart the test engine without explicitly opening the Test Explorer. Also, any documentation on the Apis that we can use to interact with the testing engine would be great.

@luis-cortina : I haven't been great with github notifications off late. I've logged an issue to track exposing this new API here. We've currently scheduled to preview this for Q2 of 2020 given our other set of priorities. We should be able to review docs as well as part of that effort. Thanks a lot for your feedback and for following up on this.

There is, in general, a need to be able to extend test discovery to different test sources, as well as to have those test results recorded in TFS.

@suehshtri : The test platform adapter extensiblity helps with that - https://github.com/microsoft/vstest-docs/blob/master/RFCs/0004-Adapter-Extensibility.md. Is there a case where this does not work for you?

Fine Code Coverage extension for 2019 was hooking into tests with ITestContainerDiscoverer. Visual Studio 2022 is not working in this manner. Is there a method of obtaining test projects being run and runsettings in Vs 2022 ?

@tonyhallett : Oh we haven't intentionally changed anything for Test Explorer extensibility in VS 2022. Which interface or API are you using that doesn't work the same?
On a related note, for code coverage scenarios I'd imagine IRunSettingsService would work better. Here's an example usage of that API: https://github.com/pimterry/chutzpah/blob/a521844899d85c308307e857cfb07df47421e994/VS2012.TestAdapter/ChutzpahMapperSettingsService.cs#L40. It provides a list of test containers that you can condition runsettings on as well.

@AbhitejJohn
Thank you for your response and the link.  All is ok now.  The ITestContainerDiscoverer was not being loaded as it was missing
[Export(TestContainerDiscoverer)]

I thought that this would be sufficient
[Export(ITestContainerDiscoverer)]

The Test Window logic does not require the concrete implementation to be exported. Perhaps there are changes in your extension where an import of TestContainerDiscoverer is required? MEF logs are usually found under %localappdata%\Microsoft\VisualStudio<VSInstanceID>\ComponentModelCache

@AbhitejJohn yes that didn't make sense. I will check further. Thanks for log path.

Make the list of APIs listed above for Test Platform side internal instead of public. This should probably be done for 17.5.

This is breaking change to the public api and won't be implemented, we are focusing on adding new features to Testing.Platform instead. https://aka.ms/testingplatform


Change pandas requirement to allow pandas==2.0.0

Description
New pandas==2.0.0 is about to come this March, 2.0.0rc0 already available. I have seen the gluonts is currently not compatible with that. When are you planning to bump the requirement pandas~=1.0 https://github.com/awslabs/gluonts/blob/1a117ef90479b5d86bfba9e84add081c2e9db414/requirements/requirements.txt#L2
References

https://pandas.pydata.org/docs/dev/whatsnew/v2.0.0.html
https://github.com/scikit-time/scikit-time/pull/153

Hi Martin,
I think there is nothing preventing us from using pandas 2.0 -- from a quick glimpse at the release notes there are not many breaking changes.
For what it's worth, we are working on removing pandas as a core dependency and only have it as an optional dependency for things like PandasDataset.


[Bug]: Tremor Button background, border, and outline is not applied

Tremor Version
^3.13.4
Link to minimal reproduction
https://github.com/galih56/manpro-v2/tree/dev_tremor_so
Steps to reproduce
Laravel setup :
php artisan migrate
php artisan composer update
React Setup :
npm install
npm run dev
The button can be seen in landing, login, register page
What is expected?
Button must be expected to be like in the document. But it is not. It can be seen on the image

What is actually happening?
I checked the css classes, i couldn't find bg-tremor-brand. Seems like something is conflicting with the tremor config. But i don't know what exactly is happening
What browsers are you seeing the problem on?
Chrome
Any additional comments?
No response

same issue here with the datepicker!

had the same issue but is fixed by adding the tremor modules to content in the tailwind config like this:
module.exports = {
  content: [
     {...}
    './node_modules/@tremor/**/*.{js,ts,jsx,tsx}'
  ],

Easy miss when (like me) you skip directly to theming and don't read the installation docs

Hi @galih56, I see you have to separate tailwind.config.{js,ts} files. This should unified. Please follow the advice posted by @casualzach, then everything should be working as expected.
@casualzach Thank you for jumping in.

@casualzach Thank you sir
My bad, At first, I already have headlessui installed in my project. And then i installed tremor with CLI without reading on the document deeply. It generated talwind.config in TS file, meanwhile my existing tailwind.config is written in JS file


What is the recommended way of using effects with the UMD bundle?

We are trying to leverage the UMD bundle for our applications, but we have users who are unable to import redux-saga/effects because currently we map redux-saga to the UMD bundle. I've been skimming the docs and I don't see a concrete way of how to use effects with the UMD bundle. It may be that I'm missing something, but if someone could point me in the right direction that would be great.
If effects is not suppose to be used with the UMD bundle, is there a way an effects.umd.js could be published so we could map redux-saga/effects to it?

UMD has slightly different module shape - defined here.
You should be able to access effects like this:
const { effects } = ReduxSaga

// ...
yield effects.put({ type: 'FOO' })

While developing locally webpack will pick up the modules bundle, but since it's marked as an external this means the module paths we are referencing will be broken when using the final UMD bundle in the browser.

To clarify @spentacular point, we work in a microfrontend architecture (similar to https://single-spa.js.org). So when developers bundle, the import path may not resolve to anything since we mark it as externals on Webpack.

Hm, could you prepare a simple repository with your setup demonstrated? I'm not sure how do you author your source, what comes out of it, on what stage do you map (?) your imports to UMD bundles, and how exactly vendors are shared at runtime. I maybe could propose a solution for you then, but without this it's hard for me to imagine how exactly all of this ties together (even though I'm experiences with webpack, module system and all of that, havent been working with micro frontends though).

Hey @Andarist here's a tiny reproduction: https://github.com/spentacular/reduxsaga-example
The portion that's causing the problem is here
We don't use the UMD bundle for development, just the regular module package. But for the final production build redux-saga is on the window using the UMD package, which creates the error shown when running yarn start.

Your demo doesn't fail on effects entry though, but on the redux-saga itself:
Uncaught TypeError: redux_saga__WEBPACK_IMPORTED_MODULE_2___default(...) is not a function
    at Module../index.js (index.js:21)
    at __webpack_require__ (bootstrap:19)
    at bootstrap:83
    at bootstrap:83
    at webpackUniversalModuleDefinition (universalModuleDefinition:7)
    at universalModuleDefinition:10

Could you include in the demo any other package which works for you like this?

I updated to also have a different external. I also fixed it so that the redux-saga/effects portion was the only one failing the lookup.
redux-saga.umd.min.js:1 TypeError: Cannot read property 'takeEvery' of undefined
    at mySaga$ (index.js:18)
    at tryCatch (runtime.js:45)
    at Generator.invoke [as _invoke] (runtime.js:271)
    at Generator.prototype.<computed> [as next] (runtime.js:97)
    at d (redux-saga.umd.min.js:1)
    at ot (redux-saga.umd.min.js:1)
    at redux-saga.umd.min.js:1
    at cn (redux-saga.umd.min.js:1)
    at ct (redux-saga.umd.min.js:1)
    at Function.i.run (redux-saga.umd.min.js:1)

I haven't found a way to reference the effects on both sides without the production one failing, since it's an internal reference to something AMD has already defined.
If effects had its own UMD bundle, even with something like ReduxSagaEffects, this would allow webpack to easily externalize it without UMD bundles needs to use a different reference.

I've published a new version which has dedicated UMD bundle for effects available i.e. here -<EMAIL_ADDRESS>Effects code is duplicated in main UMD bundle (didnt want to make a breaking change), but those both bundles should work together just fine. Let me know if this resolves your issue.

@Andarist that works great! Thanks for helping out.

No problem 😄


GD Shader Language -> material as new Datatype

Hi all,
after testing the shader language quite a bit I have an idea for a feature that can be usefull.
Would it be possible to add Material as a separate Datatype that can be imported?
Usage would be something like this:
uniform material new_mat;
This variable will then be exposed to the ui where a new material can be set. Now I can access a complete material not only textures or something like this. This way one can create a new material that consists of more materials and can be mixed! From the material datatype the diffuse and other attributes need to be accessible of course.

Is this issue still valid in the current master branch? Some work has been done recently on the shader language IIRC.

Ping :)

Last ping before departure :)

@akien-mga No way to expose material uniforms yet, AFAIK

I guess we aren't supposed to support recursive materials, right? :smile:

Closing as inactive, though it sounded cool.... feel free to comment or open a new one.


add gitlab source to contrib

Proposed Changes
Add gitlab source to contrib/
Add new crd: GitLabSource and related Controller

/ok-to-test

/assign  @evankanderson
/assign  @n3wscott

/assign @evankanderson

/assign @n3wscott

/cc @sebgoa
@sebgoa are you interested in reviewing this, since you've written a GitLab source in the past?

Hi @vincent-pli! I'm sorry this hasn't been approved yet. :disappointed: We've been busy with Kubecon prep, but once that's done (this week) we should be back to normal.

So indeed there is already a gitlabsource at gitlab.com:
https://gitlab.com/triggermesh/gitlabsource
It is listed in the table at:
https://github.com/knative/docs/tree/master/docs/eventing/sources
I thought the plan was not to push all sources to this repo, otherwise I would have moved the source a long time ago.

@vincent-pli did you know about the GitLab source @sebgoa mentioned before you started work in this PR? I'm curious because if you didn't that sounds like a bug in our docs.

@sebgoa @grantr
Thanks a lot for the comments.
Actually I test and read the project: https://gitlab.com/triggermesh/gitlabsource, wonderful project @sebgoa 😄 .
The reason why I try to move it is that, with our experience in China, most enterprise user adopter Gitlab rather than Github and they do not want to install overmuch projects.
That's why we need an all-in-one package.
If it's conflict with the strategy, I could persuade our customers, thanks.

So I propose we move https://gitlab.com/triggermesh/gitlabsource in this knative repo and we all start to work on the same codebase.
It seems a waste to duplicate efforts.

@vincent-pli Thanks for working on that! :purple_heart:
GitLab backend engineer working mostly on GitLab Serverless here.
Let me spend some time reviewing this pull request, it looks really interesting! We would like to understand better how can we combine https://gitlab.com/triggermesh/gitlabsource with this and the work we are doing at GitLab to make most of what Knative offers!

@sebgoa What is your take on moving forward with this? Code here looks nice, it seems to be a little better unit tested and maybe is a little more complete than https://gitlab.com/triggermesh/gitlabsource (eg. see reconciler, fake client etc). Is there anything we could add here to make it better / more complete? Are we missing something that is available in https://gitlab.com/triggermesh/gitlabsource  but is not available here? :thinking:

@grzesiek
Thanks you for comments, they are valuable.
As I mentioned before, the motivation of this PR is for an all-in-one package.
So we just satisfied our cases. many valuable cases, like support more events, JWT s , group-level are not in our original scope.
We plan add them case by case later 😅

@vincent-pli Our goal here is to make it possible to use this from the GitLab itself, please see https://gitlab.com/gitlab-org/gitlab-ce/issues/62522. I'm really curious what you think about this idea. @sebgoa I'm curious about your opinion too.

what's the state here, compared to https://github.com/knative/eventing-contrib/pull/450 ?

Should we close this in favor of https://gitlab.com/triggermesh/gitlabsource ?


Python 3.6

Good morning,
When i launch npm install, i get that :
✖ Error: Command failed: /bin/sh -c pipenv install --skip-lock Warning: Python 3.6 was not found on your system... You can specify specific versions of Python with:   $ pipenv --python path/to/python
I am on raspberry 1, raspbian 10

When you just type "python" in terminal what's the version ?
Check if it's not 2.7 or other
Also Leon might not work on RP.

So i can't use it on raspberry ? :(
I'm on python 2.7, but i can install python 3 but i have python 3.7.

Please follow these instructions

Already made

change python alias for python3.
But for RP I'm not sure it's work :/

I have python 3.7. I try ?
Le jeu. 5 sept. 2019 à 00:19, gnouf1<EMAIL_ADDRESS>a écrit :

change python alias for python3.
But for RP I'm not sure it's work :/
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/leon-ai/leon/issues/138?email_source=notifications&email_token=ALAM7ZTPBDYLTS5SN65QKGTQIAX6JA5CNFSM4ITRHOU2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD55FWNI#issuecomment-528112437,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALAM7ZSNVUTEIOGK6X5A4CDQIAX6JANCNFSM4ITRHOUQ
.

Yup

I'm running into the same problem. Did anyone find a way to get past this?

Was able to resolve it. Pyenv worked out for me

Pyenv Solved

https://github.com/leon-ai/leon/issues/37 ; https://github.com/leon-ai/leon/issues/28

Someone know why python 3.6 and not 3.7 ?
In readme only python >=3 is written.
I'm currently on Kali for personal reasons and all packages 3.6 have been removed :) --'

I also met this problem and I solved it successfully by modifying three files, bridges/python/Pipfile bridges/python/Pipfile.lock scripts/check.js.

bridges/python/Pipfile: find "python_version", replace 3.6 with 3.7

bridges/python/Pipfile.lock: find "python_version", replace 3.6 with 3.7

scripts/check.js: find "pythonRequiredVersion", replace 3.6 with 3.7

I am on Win10 and my python version is 3.7.

Thanks for your answer I will test it :)

Thanks for your report!
Could you please try with the latest version of the develop branch ?
Also there is now Gitpod, so you can easily start Leon directly in your browser, it is worth taking a look: https://gitpod.io/#https://github.com/leon-ai/leon


feat(robot-server): allow /commands to receive module commands

Overview
This PR builds on the addition of the POST /commands endpoint in #9696 and the new GET /modules response in #9758. It allow the payloads of POST /commands to accept module IDs from GET /modules and closes #9617.
Changelog

feat(robot-server): allow /commands to receive module commands

Review requests

GET /modules and grab the ID of a module
POST /commands { "data": { "commandType": "...", "params": { "moduleId": "...", ... } } }

Please note that only the following commands are implemented. As commands are added to the backend, they will become available for the client with no extra work on the client side.

magneticModule/engageMagnet
magneticModule/disengageMagnet

The following heater shaker commands will become available when #9747 is merged:

heaterShakerModule/setTargetTemperature
heaterShakerModule/setTargetShakeSpeed
heaterShakerModule/deactivateHeater
heaterShakerModule/stopShake
heaterShakerModule/openLatch
heaterShakerModule/closeLatch

Risk assessment
Pretty low I think. Good unit test coverage. Will require end-to-end tests, but #9751 makes testing these look pretty straightforward

Tested on an OT-2 with a connected magnetic module, and both magneticModule/engageMagnet and mageneticModule/disengageMagnet executed properly

Will work on tests first thing 3.28.2022


text and label updates

Please check if the PR fulfills these requirements:

[x] After these changes, the app was run and still works as expected
[ ] Unit tests for these changes were added (if applicable)
[x] All existing unit tests were run and still pass

Please specify the type of change this PR introduces (Bug fix, feature addition, content update, chore, etc.):
content update
Additional Notes:
Includes changes from neha's comment on the JIRA ticket

Took some shots below on large and medium (ignore continue bar, that is just from taking a full page screenshot in chrome):
Large

Medium


Add GHC 9.4

You need to modify the GitHub actions config to add the new ghc

Configure failure

LGTM

To declutter any nix invocations you can use this:
      - uses: cachix/install-nix-action@v16
        with:
          extra_nix_config: |
            access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
            experimental-features = nix-command flakes ca-derivations
            substituters = https://cache.nixos.org/ https://hydra.iohk.io
            trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
            require-sigs = true
            sandbox = true
            system-features = nixos-test benchmark big-parallel kvm

i usually always pass -L to nix build (nix build -L) in CI because i always want to see the full output. Though it looks like you may need different hlint versions for each ghc version. i would probably make an attrset
{
  ghc8107 = "whatever version";
  ghc902 = "another version";
  # etc
}

and then the devshell code adding hlint can just reference this map.


Customize JSON parsing errors

I've been using Lotus::Router (with Lotus::Controller) in building an API, and I find the ability to specify JSON parsing via Lotus::Router.new parsers: [:json] very convenient. However, the router responds with a very verbose message and stacktrace when a parsing error is encountered:
HTTP/1.1 500 Internal Server Error
Content-Length: 2372
Content-Type: text/plain

JSON::ParserError: 757: unexpected token at '{
  "fruit": "Apple"
  "vegetable": "Cabbage"
}
'
	/Users/Erol/.gem/ruby/2.2.0/gems/json-1.8.2/lib/json/common.rb:155:in `parse'
	/Users/Erol/.gem/ruby/2.2.0/gems/json-1.8.2/lib/json/common.rb:155:in `parse'
	/Users/Erol/.gem/ruby/2.2.0/gems/lotus-router-0.2.1/lib/lotus/routing/parsing/json_parser.rb:12:in `parse'
	/Users/Erol/.gem/ruby/2.2.0/gems/lotus-router-0.2.1/lib/lotus/routing/parsers.rb:52:in `block in _redefine_call'
	/Users/Erol/.gem/ruby/2.2.0/gems/lotus-router-0.2.1/lib/lotus/routing/http_router.rb:112:in `raw_call'
	/Users/Erol/.gem/ruby/2.2.0/gems/http_router-0.11.1/lib/http_router.rb:142:in `call'
	/Users/Erol/.gem/ruby/2.2.0/gems/lotus-router-0.2.1/lib/lotus/router.rb:879:in `call'
	/Users/Erol/.gem/ruby/2.2.0/gems/rack-1.6.0/lib/rack/session/abstract/id.rb:225:in `context'
	/Users/Erol/.gem/ruby/2.2.0/gems/rack-1.6.0/lib/rack/session/abstract/id.rb:220:in `call'
	/Users/Erol/.gem/ruby/2.2.0/gems/rack-1.6.0/lib/rack/lint.rb:49:in `_call'
	/Users/Erol/.gem/ruby/2.2.0/gems/rack-1.6.0/lib/rack/lint.rb:37:in `call'
	/Users/Erol/.gem/ruby/2.2.0/gems/rack-1.6.0/lib/rack/showexceptions.rb:24:in `call'
	/Users/Erol/.gem/ruby/2.2.0/gems/puma-2.11.0/lib/puma/rack_patch.rb:13:in `call'
	/Users/Erol/.gem/ruby/2.2.0/gems/shotgun-0.9.1/lib/shotgun/loader.rb:86:in `proceed_as_child'
	/Users/Erol/.gem/ruby/2.2.0/gems/shotgun-0.9.1/lib/shotgun/loader.rb:31:in `call!'
	/Users/Erol/.gem/ruby/2.2.0/gems/shotgun-0.9.1/lib/shotgun/loader.rb:18:in `call'
	/Users/Erol/.gem/ruby/2.2.0/gems/shotgun-0.9.1/lib/shotgun/favicon.rb:12:in `call'
	/Users/Erol/.gem/ruby/2.2.0/gems/rack-1.6.0/lib/rack/urlmap.rb:66:in `block in call'
	/Users/Erol/.gem/ruby/2.2.0/gems/rack-1.6.0/lib/rack/urlmap.rb:50:in `each'
	/Users/Erol/.gem/ruby/2.2.0/gems/rack-1.6.0/lib/rack/urlmap.rb:50:in `call'
	/Users/Erol/.gem/ruby/2.2.0/gems/rack-1.6.0/lib/rack/builder.rb:153:in `call'
	/Users/Erol/.gem/ruby/2.2.0/gems/puma-2.11.0/lib/puma/server.rb:507:in `handle_request'
	/Users/Erol/.gem/ruby/2.2.0/gems/puma-2.11.0/lib/puma/server.rb:375:in `process_client'
	/Users/Erol/.gem/ruby/2.2.0/gems/puma-2.11.0/lib/puma/server.rb:262:in `block in run'
	/Users/Erol/.gem/ruby/2.2.0/gems/puma-2.11.0/lib/puma/thread_pool.rb:104:in `call'
	/Users/Erol/.gem/ruby/2.2.0/gems/puma-2.11.0/lib/puma/thread_pool.rb:104:in `block in spawn_thread'

Is there a way to silence or customize the error response when running on production? I'm willing to submit a PR if there is no facility yet to do this and if you feel this is a worthy feature. :)

@Erol Thanks for reporting this problem. I'd love to leave Router as it is: a Rack middleware which isn't aware of error handling. The reason is that, for full stack Lotus apps, lotusrb handle errors, while other custom scenario like yours may use ad-hoc Rack middleware and/or solutions.
Ready solution
rack-errors (if still maintained) is a good candidate.
Custom Rack middleware
class ExceptionHandler
  def initialize(app)
    @app = app
  end

  def call(env)
    @app.call(env)
  rescue => e
     # handle exception
  end
end

# config.ru
use ExceptionHandler
run Lotus::Router.new {
  get '/books'
}

Wrap inside an application
class ApiApp
  def initialize
    @router = Lotus::Router.new do
      # ...
    end
  end

  def call(env)
    @router.call(env)
  rescue => e
    # handle exception
  end
end

# config.ru
run ApiApp.new

Oh yeah, I haven't considered writing/using a middleware to handle exceptions. I'll go with that approach. Thanks!

Hi @jodosha. First of all. Thanks for working on Lotus! We begun using it at work for a few months now and it has been a joy so far.
I have a question related to this issue:
Your suggestion of rescuing JSON::ParseError, either in a middleware or in the Lotus application seemed ok at first though. Whenever a JSON::ParseError was raised we could rescue it and halt the request with a 400 Bad Request.
Then I begun thinking; what happens if some poorly written application code, or some poorly written gem, leaks a JSON::ParseError (after body parsing completed successfully)? Then it would be returned as a 400 Bad Request to the client, when it in fact should be something else.
So maybe it justifies raising a specific body parse error, or is there any other way I haven't though of yet which will ensure that no 400 Bad Request is returned to the client unjustified.
(In a perfect world, all parse errors should be handled within the application/gem, but I'm guessing that is hard to guarantee to always be true)

@thhermansen Hey, my suggestion was related to standalone usage of lotus-router, which doesn't support for rescuing exceptions and translate them into HTTP status codes. This is a feature of lotus-controller and, so of lotusrb.
For this use case (standalone usage), you have to manually catch the exception and return the appropriate code.

Then I begun thinking; what happens if some poorly written application code, or some poorly written gem, leaks a JSON::ParseError (after body parsing completed successfully)?

I see what you mean. The problem is that, if we raise a Lotus::Router::ParamsParseError for our JsonParser, then we should force the same protocol to custom parsers who should take care of it. For instance a "home made" XmlParser should take care of raise Lotus::Router::ParamsParseError in case the XML parsing would fail.
So, I'm not keen to add defensive code for an eventual bug into other gems. Does it makes sense?

Thanks for your answer. I'm not 100% sure if I'm totally convinced. We did solve in in our application locally by raising an specific parse-error, thus getting the behaviour we wanted.

@thhermansen Code or din't happen :wink:
Do you have a concrete code example to share with the rest of us. Thank you very much. :smile:

A simple and very JSON specific implementation can be seen here. The BodyParseError can be handled in a middleware. I guess if something like this was to be pulled in to the framework the error the parser raised had to be well defined and as you wrote, every well written body parser should confirm to raise such an error.

@thhermansen Thank you, do you also have a stacktrace of the exception (without the rescue clause)? Thank you!

Sure, here you go:
     JSON::ParserError:
       776: unexpected token at '{ bad json!'
     # ./.bundle/gems/ruby/2.2.0/gems/lotus-router-0.4.3/lib/lotus/routing/parsing/json_parser.rb:12:in `parse'
     # ./.bundle/gems/ruby/2.2.0/gems/lotus-router-0.4.3/lib/lotus/routing/parsers.rb:52:in `block in _redefine_call'
     # ./.bundle/gems/ruby/2.2.0/gems/lotus-router-0.4.3/lib/lotus/routing/http_router.rb:123:in `raw_call'
     # ./.bundle/gems/ruby/2.2.0/gems/http_router-0.11.2/lib/http_router.rb:142:in `call'
     # ./.bundle/gems/ruby/2.2.0/gems/lotus-router-0.4.3/lib/lotus/router.rb:878:in `call'
     # ./.bundle/gems/ruby/2.2.0/gems/rack-1.6.4/lib/rack/methodoverride.rb:22:in `call'
     # ./.bundle/gems/ruby/2.2.0/gems/rack-1.6.4/lib/rack/builder.rb:153:in `call'
     # ./.bundle/gems/ruby/2.2.0/gems/lotusrb-0.5.0/lib/lotus/middleware.rb:52:in `call'
     # ./.bundle/gems/ruby/2.2.0/gems/lotusrb-0.5.0/lib/lotus/application.rb:217:in `call'
     # ./apps/api/application.rb:62:in `call'
     # ./.bundle/gems/ruby/2.2.0/gems/http_router-0.11.2/lib/http_router.rb:193:in `process_destination_path'
     # (eval):18:in `call'
     # ./.bundle/gems/ruby/2.2.0/gems/http_router-0.11.2/lib/http_router.rb:288:in `raw_call'
     # ./.bundle/gems/ruby/2.2.0/gems/lotus-router-0.4.3/lib/lotus/routing/http_router.rb:123:in `raw_call'
     # ./.bundle/gems/ruby/2.2.0/gems/http_router-0.11.2/lib/http_router.rb:142:in `call'
     # ./.bundle/gems/ruby/2.2.0/gems/lotus-router-0.4.3/lib/lotus/router.rb:878:in `call'
     # ./.bundle/gems/ruby/2.2.0/gems/lotusrb-0.5.0/lib/lotus/container.rb:36:in `call'
     # ./.bundle/gems/ruby/2.2.0/gems/rack-test-0.6.3/lib/rack/mock_session.rb:30:in `request'
     # ./.bundle/gems/ruby/2.2.0/gems/rack-test-0.6.3/lib/rack/test.rb:244:in `process_request'
     # ./.bundle/gems/ruby/2.2.0/gems/rack-test-0.6.3/lib/rack/test.rb:67:in `post'
     # ./spec/api/requests/invalid_json_spec.rb:8:in `block (2 levels) in <top (required)>'


Update refined, refined-scalacheck, ... to 0.9.19

Updates

eu.timepit:refined
eu.timepit:refined-scalacheck
eu.timepit:refined-shapeless

from 0.9.15 to 0.9.19.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "eu.timepit" } ]

labels: library-update, semver-patch

Superseded by #61.

Superseded by #61.


Getting Scope Waring

Hello,
I follow the steps given on github page to create app , Credetials, Api key etc.. and also add external use to test app.
and successfully run demo code click on sign In. after sign in success face below issue.
"Please add scopes to have ability to manage your youtube videos."

Hello
Please read my instruction in the Introduction section. Especially the point which starts "add tree scopes..."

Hello,
Yes i already added that scope. all 3 scope as describe and cross check to verify setup

I have the same issue. Also added
static let scope4 = "https://www.googleapis.com/auth/youtube.upload"
in the signininteractor but still but still same error.