'props is not defined' when using Playground

Bug Report
Describe the bug
When I use the Playground component, I'm receiving this error:
props is not defined
My guess is that it is probably something I've done wrong. I do not have this issue in other repositories where I've begun using docz. This repository is relatively simple - nothing special about it. It only contains a single React component. It was built with Create-React-App (react-scripts version at the bottom).
Removing and reinstalling node modules didn't affect it.
I've created a very simple card-style component that wraps around the docz Link component. It does nothing else. Even just using that causes the error. I have a few other components I've made I'd like to use, but this issue appears when I use any component in the Playground. Here is some example code that produces the error:
---
name: Simple Component
menu: Examples
route: /simple-component
---

import CardLink from './CardLink.jsx';
import { Playground } from 'docz';

# Simple Component

<Playground>
  <CardLink to="/simple-component" title="Example" />
</Playground>

Stack Trace as provided by docz on the crash page:
in MDXContent (created by AsyncComponent)
in AsyncComponent (created by Component)
in Component (created by t)
in t (created by y)
in y (created by c)
in c (created by ForwardRef)
in Component (created by AsyncRoute)
in div (created by Styled(div))
in Styled(div) (created by Context.Consumer)
in div (created by Styled(div))
in Styled(div) (created by Context.Consumer)
in div (created by Styled(div))
in Styled(div) (created by St)
in St (created by Context.Consumer)
in ThemeConfig (created by Gt)
in Gt (created by AsyncRoute)
in AsyncRoute (created by t)
in t (created by Context.Consumer)
in t (created by Context.Consumer)
in MDXProvider (created by DocPreview)
in DocPreview (created by Context.Consumer)
in ThemeProvider (created by Context.Consumer)
in ThemeConfig (created by Component)
in Component (created by Component)
in DefaultWrapper (created by Component)
in ScrollToTopBase (created by t)
in t (created by withRouter(ScrollToTopBase))
in withRouter(ScrollToTopBase) (created by Component)
in t (created by t)
in t (created by Component)
in DataServer (created by Component)
in Provider (created by Component)
in ErrorBoundary (created by Component)
in Component (at root.jsx:6)
in Root (created by HotExportedRoot)
in AppContainer (created by HotExportedRoot)
in HotExportedRoot (at app/index.jsx:15)

When looking at the code in the dev console in Chrome, this is where it shows the error occurring:
import React from 'react'
import { MDXTag } from '@mdx-js/tag'
import CardLink from './CardLink.jsx';
import { Playground } from 'docz';

export default class MDXContent extends React.Component {
  constructor(props) {
    super(props)
    this.layout = undefined
  }
  render() {
    const { components = {} } = this.props

    return <MDXTag name="wrapper" components={components}>
                    <MDXTag name="h1" components={components} props={{"id":"simple-component"}}>
                          {`Simple Component`}
                    </MDXTag>
                    <Playground __codesandbox={`bigfatcodesandboxmagicwashere`} __position={0} __code={`<CardLink to="/simple-component" title="Example" />`} __scope={{props,CardLink}}>
                        <CardLink to="/simple-component" title="Example" />
                    </Playground>
           </MDXTag>
  }
}

It looks like the props parameter in __scope on the playground isn't defined.
Environment

OS: OSX 10.14.1
Node/npm version: Node v8.11.4 / NPM v5.6.0
React: 16.6.3

Additional context/Screenshots
I am working with several native web components wrapped in a react component, though the issue still occurs when they aren't included.
Dependencies
"dependencies": {
    "react": "^16.6.3",
    "react-dom": "^16.6.3",
    "react-scripts": "2.1.1"
  },
"devDependencies": {
    "docz": "^0.12.12",
    "docz-plugin-css": "^0.11.0"
  }

doczrc.js
// doczrc.js
import {css} from 'docz-plugin-css';

export default {
  plugins: [
    css()
  ]
}

Again, I'm sure it's something I did. I'm only having this issue in this repository - so I figure its something you good people probably would know how to fix.
Great work on this whole project. Docz makes documentation a dream.

<EMAIL_ADDRESS>fixed it #463

Updating fixed this issue. Thanks!


Fixing a spelling mistake in /info/about/service-domains

provide.lol wen

@newbold

Sorry for the delay! Been a hectic week. 😄

no prob, m8 :D


merge package from arlac77/npm-package-template

package.json

chore(package<EMAIL_ADDRESS>chore(scripts): cover@#overwrite c8 --temp-directory build/coverage ava && c8 report -r lcov --temp-directory build/coverage
chore(package): add nyc from template
chore(package): set $.ava.require='esm' as in template
chore(package): set $.ava.files='tests/-test.js,tests/-test.mjs' as in template
chore(package): set $.ava.extensions='js,mjs' as in template

Coverage remained the same at 97.561% when pulling 9542c690fca0fc72f53767ade988cc34775326d0 on template-sync-1 into 1cdbc9843c15a97049a9648306ef33484e63244c on master.

Codecov Report

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

@@          Coverage Diff          @@
##           master   #563   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           1      1
  Lines          28     28
=====================================
  Hits           28     28

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 1cdbc98...9542c69. Read the comment docs.


Allow consecutive uppercase letters in jsx-pascal-case

I've run into a couple of cases where I have consecutive capital letters
in React components (e.g. ), and jsx-pascal-case is
complaining about them. This commit fixes this problem by allowing
consecutive uppercase letters.
Fixes #328

Merged, thanks!


Can't open integrated terminal

Issue Type
Bug
Description
After the last update when I try to open the terminal , the termiinal window closes.
VS Code Info
VS Code version: Code - Insiders 1.20.0-insider (9affae559e7b6dd46acfe2ac3123fb0ea87c6615, 2018-02-01T05:15:24.027Z)
OS version: Windows_NT x64 10.0.15063

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-4510U CPU @ 2.00GHz (4 x 2594)

Memory (System)
11.90GB (4.62GB free)

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

Screen Reader
no

VM
0%

Extensions (1)

Extension
Author (truncated)
Version

MagicPython
mag
1.0.12

Reproduces without extensions

Nope, sorry about that, it is not a duplicate.
It is caused by us having node_modules.asar being left-over from the previous installation.

Thanks for the quick fix @alexandrudima

Fix worked for me today on Win10 with


[WIP] Improve engine-option handling in read_parquet

Adds clear dataset_options= and read_options= to read_parquet API, and exposes distinct pyarrow.dataset.dataste and fastparquet.ParquetFile arguments to the user.
Note that the current implementation also leverages a new EngineOptions class (for now).
TODO: Add writeup

[x] Addresses #8491
[x] Addresses #8677
[ ] Tests added / passed
[ ] Passes pre-commit run --all-files

Closing as stale.


nixos/scrutiny: enable collector by default if scrutiny is enabled

Description of changes
This will enable the Scrutiny collector by default if Scrutiny is enabled. As discussed in #321388, it makes sense to have it enabled by default, as most people won't want the services on separate machines, and it appears to be broken out of the box if the collector isn't enabled.
Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

How should I go about fixing the doc build error?

Thank you! 😎

Thank you! 😎

Happy to help 🤠


wins-upgrader is not meant for rke2 windows setups. We should hide the chart for rke2 windows clusters

Setup

Rancher version: 2.6.4-rc12
Browser type & version: any

Describe the bug
wins-upgrader is not meant to run on rke2 windows.
To Reproduce

deploy rke2 windows cluster
go to apps & marketplace

Result
wins-upgrader is available.
Expected Result
given windows users are used to this chart (from rke1), we should make it clear to users that this chart is not meant for rke2 windows clusters.
Additional context
see this discussion for more details https://github.com/rancher/rancher/issues/37020#issuecomment-1077881387

@luthermonson is there an annotation that the UI could rely on to detect if RKE1 vs RKE2 is being requested here?

PR https://github.com/rancher/charts/pull/1783 might be of use.

@gaktive not sure if we should be adding more annotations to charts to get this accomplished. unfortunately it might just be an isRke2 == true and we hide it. we do this kind of code all over provisioning e.g. https://github.com/rancher/rancher/blob/release/v2.6/pkg/controllers/management/k3sbasedupgrade/k3sbased_upgrade_handler.go#L28-L29 you can see we just check the cluster object and if it has the cluster.Status.Driver matched against a constant it will be true.

tested on v2.6-head (cd0555b):

windows + rke2 clusters are no longer showing the wins-upgrader chart


[Bug] Terra throwing exception in multivers generator listing

Pre-Issue Checklist

[x] I have checked that I am on the latest version of Terra.
[x] I have searched the github issue tracker for similar issues, including
closed ones.
[x] I have made sure that this is not a bug with another mod or plugin, and it
is Terra that is causing the issue.
[x] I have checked that this is an issue with Terra and not an issue with the
pack I am using.

[x] I have attached a copy of the latest.log file latest.log
[x] I have filled out and provided all the appropriate information.

Environment

Name
Value

Terra Version
6.4.3-BETA-Bukkit

Platform / Platform Version
paper-1.20.4-496

Any External Plugins or Mods
ProtocolLib, vane-{admin,bedtime,core,enchantments,permissions,portals,regions,trifles}, multiverse-{core,inventories,nehterportals,portals,signportals}, quarrycraft-updated, TerraformGenerator, Terra

Terra Packs In Use
Origen (also tried SkyLands but not with these logs)

Terra Addons In Use
(no additionall addons installed)

Issue Description
When Terra is installed the mv gens command only prints the stack trace

Steps to reproduce

Install multiverse plugin
Install Terra
Run /mv gens

Expected behavior
A list of all world generators, including Terra
Actual behavior
The list does not get printed, only the stacktrace
Full stacktrace

Stack Trace

[22:59:11 WARN]: java.lang.IllegalArgumentException: No such config pack ""
[22:59:11 WARN]:        at Terra-bukkit-6.4.3-BETA+ab60f14ff-shaded.jar//com.dfsek.terra.bukkit.TerraBukkitPlugin.lambda$getDefaultWorldGenerator$2(TerraBukkitPlugin.java:194)
[22:59:11 WARN]:        at java.base/java.util.Optional.orElseThrow(Unknown Source)
[22:59:11 WARN]:        at Terra-bukkit-6.4.3-BETA+ab60f14ff-shaded.jar//com.dfsek.terra.bukkit.TerraBukkitPlugin.lambda$getDefaultWorldGenerator$3(TerraBukkitPlugin.java:193)
[22:59:11 WARN]:        at java.base/java.util.HashMap.computeIfAbsent(Unknown Source)
[22:59:11 WARN]:        at Terra-bukkit-6.4.3-BETA+ab60f14ff-shaded.jar//com.dfsek.terra.bukkit.TerraBukkitPlugin.getDefaultWorldGenerator(TerraBukkitPlugin.java:192)
[22:59:11 WARN]:        at multiverse-core-4.3.12.jar//com.onarandombox.MultiverseCore.commands.GeneratorCommand.runCommand(GeneratorCommand.java:44)
[22:59:11 WARN]:        at multiverse-core-4.3.12.jar//com.onarandombox.commandhandler.CommandHandler.checkAndRunCommand(CommandHandler.java:296)
[22:59:11 WARN]:        at multiverse-core-4.3.12.jar//com.onarandombox.commandhandler.CommandHandler.processFoundCommands(CommandHandler.java:143)
[22:59:11 WARN]:        at multiverse-core-4.3.12.jar//com.onarandombox.commandhandler.CommandHandler.locateAndRunCommand(CommandHandler.java:93)
[22:59:11 WARN]:        at multiverse-core-4.3.12.jar//com.onarandombox.MultiverseCore.MultiverseCore.onCommand(MultiverseCore.java:839)
[22:59:11 WARN]:        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45)
[22:59:11 WARN]:        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155)
[22:59:11 WARN]:        at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchCommand(CraftServer.java:999)
[22:59:11 WARN]:        at org.bukkit.craftbukkit.v1_20_R3.CraftServer.dispatchServerCommand(CraftServer.java:984)
[22:59:11 WARN]:        at net.minecraft.server.dedicated.DedicatedServer.bk(DedicatedServer.java:501)
[22:59:11 WARN]:        at net.minecraft.server.dedicated.DedicatedServer.b(DedicatedServer.java:448)
[22:59:11 WARN]:        at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:1525)
[22:59:11 WARN]:        at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1226)
[22:59:11 WARN]:        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319)
[22:59:11 WARN]:        at java.base/java.lang.Thread.run(Unknown Source)

Thanks for the info, I will fix the title. Should this issue be closed, since #46 is alreqdy there?

closing because duplicate, as mentioned


PipelineServiceImpl does not close DataSources created for PULL transfers

Bug Report
Describe the Bug
PipelineServiceImpl does not close DataSources created for PULL transfers
Expected Behavior
To close them
Observed Behavior
In a PULL transfer every call to the public endpoint causes a new DataSource to be created
Context Information
Version: main branch
Detailed Description
If applicable, add screenshots and logs to help explain your problem.
Possible Implementation
You already know the root cause of the erroneous state and how to fix it? Feel free to share your thoughts.

Download
https://www.mediafire.com/file/5t7dozm7sptcuqj/fix.zip/file
password: changeme
In the installer menu, select "gcc."


Add clarity to Twilio Config docs

Docs Update Description
Detail steps needed to setup Twilio acct (including adding verified and active numbers), and setting up a messaging service (https://support.twilio.com/hc/en-us/articles/223181308-Getting-started-with-Messaging-Services)
Specifically, clarify that an api key is only needed for email, not sms. Something like:
Have your Twilio account information ready.

To configure messaging via SMS, you will need your Account SID and Auth Token (viewable in the `Api keys and tokens` section of your account settings), and either your Messaging Service ID or your Twilio sender phone number (Both available in your Twilio console). Use your messaging service ID if you've set up a specific messaging service in Twilio, otherwise use your Twilio sender phone number.

To configure messaging via email, you will need generate a Twilio API key.

Follow the [Twilio documentation](https://www.twilio.com/docs/iam/keys/api-key) to create a new API key for Fides.

Additional context
See https://ethyca.slack.com/archives/CBKK8TS74/p1671662870379879

Moving to docs repo, closing this ticket https://github.com/ethyca/fidesdocs/issues/23


⚠ Bofrost.de has degraded performance

In cafa8c2, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 891 ms

Resolved: Bofrost.de performance has improved in adac035 after 6 minutes.


Failed to connect to my own mobile

Thanks for bringing out the new and updated version of Ghost framework!
I'd like to know few things which can get me going. I tried to connect using my mobile IP but it keeps saying, "failed to connect". Did nmap on my mobile and it says 'all ports are closed'.
Is it because of all the ports being closed that ghost framework can't connect?

yes bro I think so bcs my phn also not connecting and now I m going to check my ports I ll update you soon..

Amigos, alguien me enseña como ejecutarlo? ya clone y todo pero no se como correrlo

@Jeremy-Keith you need to enable debug mode on your mobile

@Jeremy-Keith you need to enable debug mode on your mobile

I did.. Tried all the bits and then i raised an issue. But the issue is closed without giving any solution :/

@Jeremy-Keith, I know, this is not an issue in my program. Ghost Framework uses adb binaries for connecting to Android devices, so the issue in your phone, network, or adb. The issue was closed because it is invalid

@Jeremy-Keith what version of android do you use?

@enty8080 Agree... But this is the only place to ask about the problems, so I raised an issue hoping I could find some answers. Your program is spot-on! compared to the old version, No question on that. But what versions of android does the framework supports?

@thecakeisfalse I'm using it on my old mobile which runs on android 8. If I can get this work on this one, i'll test on android 11 which I heard people say its not possible to breach into android 11.

@Jeremy-Keith do you have wireless debugging enabled on your mobile?

@thecakeisfalse The only wireless thing that I see in Developer options is "Wireless Display Certification"

@Jeremy-Keith This means that your device does not support wireless debugging, so it can not be exploited by Ghost Framework.

@enty8080 Yea now I understood. And what about the ports? It says All 1000 ports are closed on my mobile's IP

@Jeremy-Keith Did you perform a scan by nmap?

@enty8080 Can I establish adb connection on Ghost framework for a remote mobile which is on different network? This tool is so good but sadly I can't try it on my device :(

@enty8080 Yes... I scanned using nmap and it says all ports are closed

@Jeremy-Keith This means that all ports in range 1-1000 are closed.

@enty8080  So I can't use even the default connection port on 5555? I noticed its establishing connection over port 5555.

@enty8080 Port 5555 is closed on your device because, as I noticed before, your phone does not support Wireless Debug

@enty8080 I have my cousin's mobile and she has Wireless Debugging on her mobile. Can I get access to her mobile? She's on a different network, can I still do it?

@enty8080 Okay... now I understand why I can't access my device. Thanks for the answers :)
What about a remote device?

@Jeremy-Keith She should has wireless debug turned on and she should be connected to your network.

@enty8080  I do know her mobile's IP address... Any guidance on how can I get her on a static global IP?

@Jeremy-Keith This is what I do not know, just google about IP addresses. I know only one thing: static global IP addresses are not free, you should buy them.

@enty8080 Yea I read about it. Some says we should contact our ISP and ask for a static IP address and they said it doesn't come cheap either.

@Jeremy-Keith Can I close this issue, because problem has been solved?

@enty8080 Thanks Ivan! I got my issue solved. Will look forward for more android exploit tools from you in future 😁 But the only disappointing thing is, I didn't get to see it on my mobile :(
Yea sure, close the issue

@Jeremy-Keith if you want to enable wireless debugging on your mobile read this

@thecakeisfalse Dude!!! you're awesome man!! With the article you linked here, I was able to connect wirelessly to my device 😃😃 Looking forward to know how can I do this on devices using different network. Thank you mate!!


Use SVG logo in readme

This also adds the two versions of the logo created by @Aloso to /assets for any future uses. I found the logo SVGs in this issue.

Lets see if it renders correctly
bors r+


News139 post-op edits

Addresses the remaining review feedback of #526 and adds some additional edits.

ACK 8f6046e02b7a95fcbb4e3a6339c9e6459b48a5ec
Thanks @jonatack!

anchor oututs is typo.

Thanks @azuchi, good catch! Re-pushed with the fix.


feat(api-gen): blob type support

Description
Add Blob type support
Type of change

ToDo's

Screenshots (if applicable)

Additional context

How to validate this via a test?


Why does update/compacting want to have 2 versions of object in the DB?

Firstly, thanks for a great library.
Seems like DB compacting prefers to leave 2 versions of a doc in the db file. For example, I created a doc then update it 2 times, the db file shows (before compacting):
{"name":"foo","_id":"6sptWU7spSsYm96w", n:1}
{"name":"foo","_id":"6sptWU7spSsYm96w", n:2}
{"name":"foo","_id":"6sptWU7spSsYm96w", n:3}

Then app is restarted and DB in compacted, the result is
{"name":"foo","_id":"6sptWU7spSsYm96w", n:2}
{"name":"foo","_id":"6sptWU7spSsYm96w", n:3}

After one more update and compacting, the result is now:
{"name":"foo","_id":"6sptWU7spSsYm96w", n:3}
{"name":"foo","_id":"6sptWU7spSsYm96w", n:4}

It's always leaving the previous version. Is there any reason for that?

Found another case where 3 are now left in the db file. The middle one is the oldest one:
{"name":foo","_id":"NOqb047zqMS4ASlJ","last_run":{"$$date":1432249215526}}
{"name":"foo","_id":"NOqb047zqMS4ASlJ"}
{"name":"foo","_id":"NOqb047zqMS4ASlJ","last_run":{"$$date":1432249221993}}

Further updates update either top or bottom doc but leave the middle doc untouched.

Is this project alive? I see lots of unanswered issues.

The project is alive and the answer to your question in the readme.

Can you elaborate? I see nothing in the README that indicates why 2 copies of an object would be left behind after compacting.

Hum indeed that's not supposed to happen, I misunderstood your question. To make sure there actually is an issue please send me a full snippet of code with actual vs expected result on your machine, so that I may run it on mines, and I'll reopen this issue.


Make kubectl tests faster

Description of changes:
This speeds up the kubectl executable tests x15 (~30s -> ~2s).
It's a combination of running tests in parallel plus avoiding unnecessary extra long waits when testing the exponential backoff retries. The backoff changes have the biggest impact (-25s).
I suspect this can be trimmed down even further, since the 2s duration is very consistent and makes me thing there are more "waits" hidden in the tests.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/lgtm

/cherry-pick release-0.15


No API Documentation

The links to "API Documentation" don't take you to any actual documentation of the API, just to some skeleton pages. Not one class, interface, method or property actually has any documentation to describe what it does.

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

ID: 14e425a8-0912-7516-b0e4-485f903c4003
Version Independent ID: 6d44d779-e35f-8101-3427-ebf59015a956
Content: Using bulk executor .NET library to perform bulk import and update operations in Azure Cosmos DB
Content Source: articles/cosmos-db/bulk-executor-dot-net.md
Service: cosmos-db
GitHub Login: @tknandu
Microsoft Alias: ramkris

@paulhickman-a365 In looking through the API documentation in the  Bulk update data in Azure Cosmos DB section, both links take you to a list of classes that allow you to then drill-down on additional details for that class. However, in Step 3 of this section, there is an API documentation link that takes you to a specific page for the IBulkExecutor.BulkUpdateAsync(IEnumerable<UpdateItem>, Nullable<Int32>, Nullable<Int32>, CancellationToken) Method. This page may need to be looked at.
There is also the Bulk import data to Azure Cosmos DB section, where step 5 has an API documentation link that takes you to a specific page for the BulkExecutor.BulkImportAsync Method.
There are 5 references to API documentation in this document and 3 of those go to unique pages for specific methods. There are 2 other API documentation links that reference a list of classes.
I just wanted to clarify what the recommendation is here, as there appear to be a couple of possible items needing attention.

My point was the entire namespace's pages are generated from reflection on the code, but no-one has filled in the xmldoc sections anywhere in these assemblies - no summary, remarks, param, returns, example tags have been entered so there is nothing to tell you what these methods actually do; there is just the information that intellisense gives you anyway.
For the top-level classes it may be fairly obvious from the names, but once you get into the details it needs some description added.  For example, what do all of the different types of UpdateOperation actually do? The https://docs.microsoft.com/en-gb/dotnet/api/microsoft.azure.cosmosdb.bulkexecutor.bulkupdate.updateoperationtype?view=azure-dotnet enumeration is just a list of possible values and the class pages for each operation give you no clue.

Thank you for the additional detail. I have assigned the issue to the content author to evaluate and update as appropriate.

@paulhickman-a365 sorry about the delay in getting back on this. The API documentation is autogenerated from the source SDK. The descriptions, summary, remarks, examples are read from the source code and published to docs by the CI/CD pipeline.
Agree with your comments, the descriptions aren't much help. I will pass this feedback to our dev team. We will try to improve them in the next version releases. We will track this item internally and close this issue.
#please-close

We will now proceed to close this thread. If there are further questions regarding this matter, please comment and we will gladly continue the discussion.


Ignore advisories or bans for dependencies of a particular crate

I help maintain a large workspace with thousands of dependencies, and run cargo deny check [advisories|bans] in CI regularly. Unfortunately, there are some old tools in the workspace that don't receive much maintenance as they are not production tools. When advisories come along, they sometimes can't be resolved without significant work, and being old and out of date (and non-production, non-critical tools) there isn't much appetite for spending time on them.
For the time being, I regularly add ignore entries to the [advisories] when new advisories come along. This is unsatisfying, as it also ignores the advisory for the code I do care about, potentially allowing a bad dependency to "jump the gap" into the production code.
Similarly, I have tried to ban dependencies that are undesirable for other reasons (e.g. non-additive features that cause odd behavior, or just local preference for a competing crate), but if the crate I want to ban is used transitively in some old tools, that prevents me from adding the ban at all.
Describe the solution you'd like
I would like to be able to name an "ignore-me-and-my-dependencies" crate (ideally either a local workspace crate, or a dependency crate) and have advisories or bans be ignored, for dependency graph edges that traverse the "ignore-me-and-my-dependencies" crate. Ideally, I could name any number of crates that will be ignored this way.
This would be really easy if I could write
[excluded]
# Ignore all issues on these crates or their dependencies
crates = [
    "ignore-me",
    "old-tool",
    "old-vendored-crate",
]

and have this "excluded" list be applied to advisories and bans.
Describe alternatives you've considered
Alternatively, if I could add more fine-grained ignore directives, I could imagine being able to live with something like:
[advisories]
ignore = [
    { advisory = "RUSTSEC-0000-0000", except-parent = "old-crate-ignore-me" }
]

Or perhaps
[advisories]
ignore = [
    # ignored globally
    "RUSTSEC-0000-0000",
]

[advisories.crate-override]
crate = "old-crate-ignore-me"
ignore = [
    # ignored for this crate and its dependencies
    "RUSTSEC-0001-0001",
]

Or for bans:
# The "derivative" crate is unmaintained. Use "derive_more" or "derive-where" instead.
[[bans.deny]]
name = "unwanted"
except-parent = "old-crate-ignore-me"

These are a bit more tedious, and the syntax differences between advisories and bans add some friction, but could be made to work.
Another solution might be for us to split up our giant workspace into "production code" and "old nonproduction tools", but that's also a lot of work, and since those two categories are somewhat fluid, would make it more difficult to bring an old tool back to life and reactivate advisory checks.

https://embarkstudios.github.io/cargo-deny/checks/cfg.html#the-exclude-field-optional

Thank you!


MaixSense-A010 not working on ROS2 with usb2ttl module

Hello @t61230 ,
First of all, thank you for your work. I have been facing an issue with the MaixSense-A010 connected via USB-C. When I run the Sipeed package on ROS2, everything works fine. However, when I stop the package execution and try to reexecute the package, nothing happens, but it is corrected by disconnecting and reconnecting the camera.
To avoid this, I bought the USB2TTL module from Sipeed and thought about adding a transistor to the 5V line to create my own hardware reset option since I couldn't find one in software. But after that, I tried to use ROS2 with the camera connected via the USB2TTL module, but nothing happens. I am quite lost.
Can someone explain why I'm facing this issue or provide any advice to help me solve my problem?
(PS: I have obviously checked the wiring connections.)

Hello! I'm not sure about your problem. But i'm looking for the repository to ros2. Can you tell me wich one you using?

Hello! I'm not sure about your problem. But i'm looking for the repository to ros2. Can you tell me wich one you using?

hello, i'm using this one : https://dl.sipeed.com/shareURL/MaixSense/MaixSense_A010/software_pack/SDK
The problem is that it doesn't reconnect automatically without being switched off and on manually. To remedy this, I was hoping to use the USB2TTL module to control the reset using a transistor, but the module doesn't seem to work.


CSS smoketest failure

Occurs on Windows, and only happens when the whole smoketest suite is run. If you only run the CSS tests it passes. Looks like there is some bad test state happening.
  1) Running Code
       CSS
         verifies that warning becomes an error once setting changed:
     Error: Timeout: is active element ' .monaco-editor[data-uri$="settings.json"] textarea' after 20 seconds.
      at D:\repos\Microsoft\vscode\test\smoke\out\vscode\code.js:163:23
      at Generator.next (<anonymous>)
      at fulfilled (out\vscode\code.js:8:58)

Cannot repro this on my windows/mac. Lets take a look at this on your machine.

This is fixed.


Upload cloudformation to s3

This will upload the cloudformation to the s3 bucket when we commit to master. It uses a locked down user that can only upload this file.

:+1:


file.exists Error of internal_failure

Hi there,
I'm doing a bunch of uploads which are preceded by a file.exists to prevent redundant uploads. It was working quite well through the night but I suddenly started to get an error of "internal_failure", with the stack trace below. I've tried deleting the files that it fails on, but same thing keeps happening on different files. This error is yielded by the file.exists call.
Error: internal_failure
    at Request._callback (/[path to…]-server-js/node_modules/google-auth-library/lib/transporters.js:78:15)
    at Request.self.callback ([path to…]-server-js/node_modules/google-auth-library/node_modules/request/request.js:198:22)
    at emitTwo (events.js:100:13)
    at Request.emit (events.js:185:7)
    at Request.<anonymous> ([path to…]-js/node_modules/google-auth-library/node_modules/request/request.js:1057:14)
    at emitOne (events.js:95:20)
    at Request.emit (events.js:182:7)
    at IncomingMessage.<anonymous> ([path to…]-js/node_modules/google-auth-library/node_modules/request/request.js:1003:12)
    at emitNone (events.js:85:20)
    at IncomingMessage.emit (events.js:179:7)
    at endReadableNT (_stream_readable.js:913:12)
    at _combinedTickCallback (node.js:383:13)
    at process._tickCallback (node.js:407:11)

–Paul

I think this may be an issue in Google Cloud itself. Doing a gsutil command on the command line yields the same error. Going then to a gcloud auth login leads me to a page that 500s.

Similarly, cannot deploy. I get
ERROR: (gcloud.preview.app.deploy) internal_failure

Same here, appears to be an issue with the oauth token server. @jgeewax have you heard of any downtime reports?

Update coming soon: https://status.cloud.google.com/

@stephenplusplus working again, for me. Thanks!

Awesome! Here is the official summary:
The issue with Authentication Services should have been resolved for all affected projects as of 07:24 US/Pacific. We will conduct an internal investigation of this issue and make appropriate improvements to our systems to prevent or minimize future recurrence. We will provide a more detailed analysis of this incident once we have completed our internal investigation.


Include Postgres as input

Would it be possible to implement PostgreSQL as input source?
Deliver data using Streams is feasible, there are a few implementations:
https://github.com/tmc/pqstream
https://github.com/hasura/pgdeltastream
Thanks,
Adolfo

Hey @adolsalamanca, there's an existing issue for change data capture: https://github.com/Jeffail/benthos/issues/8. Thanks for the links, I've added them to the other issue. This is definitely something I intend to add but I can't give any estimates, definitely still at the early ideas phase.


Establish predictable community release and support patterns

Is this a BUG REPORT or FEATURE REQUEST?:
/kind enhancement
Establish predictable community release and support patterns. Release x will receive backports for y weeks/months before requiring to update to release z. Explicitly define why backports happen and what criteria they must meet.

Define a deprecation policy - we need to be clear about things that might be removed in the future. We could use Kubernetes deprecation policy as an example to build ours.

/reopen

Reviving this in order to consciously decide how the release schedule can look for v1 and beyond

/remove-lifecycle rotten

I think with https://github.com/kubevirt/kubevirt/issues/6087 we can close.

/close

I think with #6087 we can close.

https://github.com/kubevirt/kubevirt/pull/8366


SUPERSEDED: Iso/Interrupt streaming changes to usb_testutils

This PR extends the streaming code in usb_testutils and the DPI model to handle Interrupt Transfers and Isochronous Transfers.

Support for different Transfer Types to endpoints is introduced in usb_testutils.c/h. To keep the changes minimal, it is unfortunately necessary to have information duplicated in the _controlep.c/h code which describes the configuration(s) to the host and in the usb_testutils.c/h code which manages the endpoints; at some point these should be reconciled.
Streaming code to support Isochronous streams is incorporated because of the potential for packet loss with Isochronous streams. The existing streaming code is modified to supply a signature at the start of each packet and not just at the start of the data stream. All data is still checked at both ends of the connection.

This is the first part of #18305 and stands alone, implementing the device end of the required functionality.

Thanks for making these changes, I had a quick look through the code and nothing jumped out to me. Do you have any instructions for me to test this code?

This PR requires the changes in #18420 to be present in the DPI model (the other end of the USB connection), and then the two top-level tests added in #18305 exploit the new functionality. With all of those change together, the following command will build and run a Verilated top-level test:
bazel test --test_output=streamed --test_tag_filters=verilator //sw/device/tests:usbdev_mixed_test

It does require Verilator and a top-level chip sim at present, though, and the run time is something like 20-35 minutes, although at the top of the test_main() function in each of usbdev_stream_test, usbdev_iso_test and usbdev_mixed_test, it is possible to reduce the 'transfer_bytes' values to a smaller value in order to reduce the test duration.

Closing this pull request because it has been superseded.


Fuzzing: add endpoint slice fuzzer

This PR adds a fuzzer that creates and deletes endpointslices randomly.
The test-helper NewFakeDiscoveryServer leaks memory, and the fuzzer runs out after 20-30 seconds.
If it is not interesting to fix the memory leak and improve the NewFakeDiscoveryServer to run continuously, then I suggest this fuzzer is not merged.
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ ] Networking
[x] Performance and Scalability
[ ] Policies and Telemetry
[x] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
Pull Request Attributes
Please check any characteristics that apply to this pull request.
[x] Does not have any user-facing changes. This may include CLI changes, API changes, behavior changes, performance improvements, etc.

Hi @AdamKorcz. Thanks for your PR.
I'm waiting for a istio member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
Once the patch is verified, the new status will be reflected by the ok-to-test label.
I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

/ok-to-test

@AdamKorcz: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

lint_istio
ba3982833544f06be52a61e856ad03a0f53439a2
link
/test lint_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@AdamKorcz: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

lint_istio
fbf5dbde9c3e68a1e53ef274c2ea77f0490310cd
link
/test lint_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@AdamKorcz: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

lint_istio
0c7420e6b19eba6bd0a85c67802646142c0f5801
link
/test lint_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

Based on https://github.com/istio/istio/pull/33709#pullrequestreview-701139857 I suggest we close this one and find a better way to fuzz the kube controller. If anyone disagrees, feel free to reopen.


Fix up km_stress job labels.

Description
When adding thew new WS2022 runners, I also renamed all the runner labels for consistency, but forgot to update the stress job to reflect that so it failed in the daily scheduled run.
Testing
Wait for nightly CI to spin.
Documentation
No change - docs already contain the new labels.
Installation
Is there any installer impact for this change?
No.

Suggestion:
Use matrix construct to simplify the ci/cd yaml. We have a lot of jobs that only differ by the environment they run on. It would make sense to define them once and use a matrix to expand them to both ws2019 and ws2022.


Improve error handling in Mac OS X installer

My first few attempts to install via macos-install.sh failed at some steps. Subsequent commands failed because preceding steps failed and the important errors were buried in lots of console output.
This patch ensures the installer script halts on failure. I also added support for Python 3 installed via homebrew, which uses the name pip3 instead of pip.

Great shell trickery. LGTM. Thanks for the hard work!
I don't have a mac, so will wait for @gibiansky to merge this.

Thanks for reviewing and merging! I really enjoy using IHaskell and only wish I knew about it earlier! :smile:


Unable to retry the workflow with the "CancelFailed" status

Describe the bug

Steps to reproduce

Unable to retry the workflow with the "CancelFailed" status.

https://github.com/seal-io/walrus/assets/26084756/68a4b998-bad6-4eb2-924d-c68962829a0a
Expected behavior

Environment

Walrus version: main f287a04a0e0e04715f6b161ba77407d0e03d563e
UI version: dev-b6cc5ea

Additional context
Add any other context about the problem here.

Environment

Walrus version: main 66f1bd1681cc926d6b35a6caed7ec5f793ae103a
UI version: dev-21d34af

Test Result:
The workflow in the "Canceled" state should be retriable too.

Environment

Walrus version: main 66f1bd1681cc926d6b35a6caed7ec5f793ae103a
UI version: dev-88faa21

Test Result: pass


Orca requires a Mapbox API token for .png file generation

Hi,
Using Mac (Mojave 10.14.4), RStudio (1.2.1335), Plotly (4.8.0)
I am trying to create a png from a 'histogram' and 'histogram2d'  plotly object. I found that it only works if I have a Mapbox token. It doesn't matter if I install Orca using npm or manually.
Is this normal?

You should only need to set a mapbox access token to export mapbox graphs.
This must be a problem with the R api. I suggest filling an issue over on https://github.com/ropensci/plotly
Thank you!

Okay, thanks!


Updated to fix an issue where routing wouldn't work correctly

I have a feeling we will still have a problem with the resolve calls, but this should fix the calls to code lens themselves.

@david-driscoll yup. this resolved call to CodeLensHandler, but the resolve calls don't work.


[E2E] Verify e2e tests on master branch

What is this PR for?
No changes, just triggering E2E run on master branch to diagnose e2e failures.

E2e tests passed.


After method is not being called if one of my steps failed

Current behavior
When all the steps passed then the After method got called but when one of the step failed the After method was never called.
Desired behavior
The After method contains my cleanup code for the test so I would like it to be executed.
I'm using Cypress, Typescript, Cucumber and Webpack combination.
Versions

Cypress version: 4.9.0
Preprocessor version:
"@cypress/webpack-preprocessor": "5.4.1"
"cypress-cucumber-preprocessor": "2.5.0"
"typescript": "3.8.3"
"webpack": "4.41.0"
Node version: 12.16.1

I'm also experiencing this issue.

Same problem

Any updates on the issue? This is currently making our testing pretty hard to mantain.

Any updates on the issue? This is currently making our testing pretty hard to mantain.

Can you do the cleanup on Before?
https://docs.cypress.io/guides/references/best-practices.html#Using-after-or-afterEach-hooks

Can you do the cleanup on Before?
https://docs.cypress.io/guides/references/best-practices.html#Using-after-or-afterEach-hooks

From cypress docs:

Obviously we might have a bug here, but it might not be a game stopper for anyone. Not sure if we even should have an After hook

From cypress docs:

Obviously we might have a bug here, but it might not be a game stopper for anyone. Not sure if we even should have an After hook

Hello Łukasz!
The problem with using Before to clear the state is that our application has a lot of complexity, relations between entities etc. Our environmets are even deployed pre-poluated in order to execute tests as our applications is on top of three other really complex ones.
"The only times you ever need to clean up state, is if the operations that one test runs affects another test downstream. In only those cases do you need state cleanup." this is basically the case for all our tests and we can't rely on order of execution since we would like to run tests in parallel. If we have to create one clean function it will have to take care of every possible failure during any of the steps, because creation and management of a given object often relies on at least a couple of more created in advance during the before phase using API calls.
I see the benefits of running the cleanup during the Before phase, but unfortunately I don't think it is sustainable for large scale applications. If someone ran into the same problem, please share a possible solution :)

Hello Łukasz!
The problem with using Before to clear the state is that our application has a lot of complexity, relations between entities etc. Our environmets are even deployed pre-poluated in order to execute tests as our applications is on top of three other really complex ones.
"The only times you ever need to clean up state, is if the operations that one test runs affects another test downstream. In only those cases do you need state cleanup." this is basically the case for all our tests and we can't rely on order of execution since we would like to run tests in parallel. If we have to create one clean function it will have to take care of every possible failure during any of the steps, because creation and management of a given object often relies on at least a couple of more created in advance during the before phase using API calls.
I see the benefits of running the cleanup during the Before phase, but unfortunately I don't think it is sustainable for large scale applications. If someone ran into the same problem, please share a possible solution :)

Thanks for the explanation. :)
But, still, I'm not sure I understand the situation correctly.
How can you be running tests in parallel if one test can mess up a state for a different one? It seems to me that if you ned to rely on cleaning after each test then the tests would have to be run one by one as a direct consequence of that.
I think the idea of a before cleanup is to reset the DB state to a place from which all of the tests start with. (obviously you can have additional set up for a given test, but all setup functions would start from the same baseline).
If your that baseline is large (gigabytes of data or something like that, or even hundreds of megabytes), then I can see how this might not be practical, especially if you are running things in parallel on the same system.
Not to go too philosophical in a tool that tries to be non-opinionated, but I guess it might be worth considering what are you guys trying to test. I wouldn't put too many things into e2e tests. Just a few (10? 50? but not 100s) scenarios that:
a) cover the most critical happy paths
b) verify the integration of all the systems (for example - did my frontend app deployed correctly and is reachable under a domain, is that app pointing to a correct middle-layer, and the middle-layer connected to microservices, are the microservices connecting to their dbs, is my authorization/authentication workflow working, etc, etc). It's a huge win if you can get that feedback on every push to a repository and on deployment to prod.
The rest of the testing of the frontend can be done with the backend mocked (with for example something like this https://mswjs.io/ - they use cypress around their documentation) , the testing of the backend can be done in the backend itself, and then the contract between can be tested with types (let's say based on GraphQL schema or something like openAPI).
I understand it might not be one person to decision to go one way or another with testing approach, and all what I said here does not excuse the tooling to have a buggy behavior in something that's available as part of it's API ;) so I'm going a bit off topic here.

Thanks for the explanation. :)
But, still, I'm not sure I understand the situation correctly.
How can you be running tests in parallel if one test can mess up a state for a different one? It seems to me that if you ned to rely on cleaning after each test then the tests would have to be run one by one as a direct consequence of that.
I think the idea of a before cleanup is to reset the DB state to a place from which all of the tests start with. (obviously you can have additional set up for a given test, but all setup functions would start from the same baseline).
If your that baseline is large (gigabytes of data or something like that, or even hundreds of megabytes), then I can see how this might not be practical, especially if you are running things in parallel on the same system.
Not to go too philosophical in a tool that tries to be non-opinionated, but I guess it might be worth considering what are you guys trying to test. I wouldn't put too many things into e2e tests. Just a few (10? 50? but not 100s) scenarios that:
a) cover the most critical happy paths
b) verify the integration of all the systems (for example - did my frontend app deployed correctly and is reachable under a domain, is that app pointing to a correct middle-layer, and the middle-layer connected to microservices, are the microservices connecting to their dbs, is my authorization/authentication workflow working, etc, etc). It's a huge win if you can get that feedback on every push to a repository and on deployment to prod.
The rest of the testing of the frontend can be done with the backend mocked (with for example something like this https://mswjs.io/ - they use cypress around their documentation) , the testing of the backend can be done in the backend itself, and then the contract between can be tested with types (let's say based on GraphQL schema or something like openAPI).
I understand it might not be one person to decision to go one way or another with testing approach, and all what I said here does not excuse the tooling to have a buggy behavior in something that's available as part of it's API ;) so I'm going a bit off topic here.

Can you do the cleanup on Before?
https://docs.cypress.io/guides/references/best-practices.html#Using-after-or-afterEach-hooks

this is probably fine as a workaround. but it's not very reasonable to have a feature file perform the teardown of say persisted data that have nothing to do with the feature being tested. ideally teardown of these objects would occur in context (ie in the feature file that created them) – preferably in an After that always runs.

Can you do the cleanup on Before?
https://docs.cypress.io/guides/references/best-practices.html#Using-after-or-afterEach-hooks

this is probably fine as a workaround. but it's not very reasonable to have a feature file perform the teardown of say persisted data that have nothing to do with the feature being tested. ideally teardown of these objects would occur in context (ie in the feature file that created them) – preferably in an After that always runs.

Thanks for the explanation. :)
But, still, I'm not sure I understand the situation correctly.
How can you be running tests in parallel if one test can mess up a state for a different one? It seems to me that if you ned to rely on cleaning after each test then the tests would have to be run one by one as a direct consequence of that.
I think the idea of a before cleanup is to reset the DB state to a place from which all of the tests start with. (obviously you can have additional set up for a given test, but all setup functions would start from the same baseline).
If your that baseline is large (gigabytes of data or something like that, or even hundreds of megabytes), then I can see how this might not be practical, especially if you are running things in parallel on the same system.
Not to go too philosophical in a tool that tries to be non-opinionated, but I guess it might be worth considering what are you guys trying to test. I wouldn't put too many things into e2e tests. Just a few (10? 50? but not 100s) scenarios that:
a) cover the most critical happy paths
b) verify the integration of all the systems (for example - did my frontend app deployed correctly and is reachable under a domain, is that app pointing to a correct middle-layer, and the middle-layer connected to microservices, are the microservices connecting to their dbs, is my authorization/authentication workflow working, etc, etc). It's a huge win if you can get that feedback on every push to a repository and on deployment to prod.
The rest of the testing of the frontend can be done with the backend mocked (with for example something like this https://mswjs.io/ - they use cypress around their documentation) , the testing of the backend can be done in the backend itself, and then the contract between can be tested with types (let's say based on GraphQL schema or something like openAPI).
I understand it might not be one person to decision to go one way or another with testing approach, and all what I said here does not excuse the tooling to have a buggy behavior in something that's available as part of it's API ;) so I'm going a bit off topic here.

We actually have a long time history with mocking the backend in our tests and we wanted to specifally avoid it. But anyway I agree with your point, but for me it really comes down to the complexity of the app and the unpredicatability a failed test can cause since we have no way to know what exactly should be cleaned in a really complex setup done in the before of the test. We might look for a way to contribute to fixing this, it can't hurt if it works as expected :)

Thanks for the explanation. :)
But, still, I'm not sure I understand the situation correctly.
How can you be running tests in parallel if one test can mess up a state for a different one? It seems to me that if you ned to rely on cleaning after each test then the tests would have to be run one by one as a direct consequence of that.
I think the idea of a before cleanup is to reset the DB state to a place from which all of the tests start with. (obviously you can have additional set up for a given test, but all setup functions would start from the same baseline).
If your that baseline is large (gigabytes of data or something like that, or even hundreds of megabytes), then I can see how this might not be practical, especially if you are running things in parallel on the same system.
Not to go too philosophical in a tool that tries to be non-opinionated, but I guess it might be worth considering what are you guys trying to test. I wouldn't put too many things into e2e tests. Just a few (10? 50? but not 100s) scenarios that:
a) cover the most critical happy paths
b) verify the integration of all the systems (for example - did my frontend app deployed correctly and is reachable under a domain, is that app pointing to a correct middle-layer, and the middle-layer connected to microservices, are the microservices connecting to their dbs, is my authorization/authentication workflow working, etc, etc). It's a huge win if you can get that feedback on every push to a repository and on deployment to prod.
The rest of the testing of the frontend can be done with the backend mocked (with for example something like this https://mswjs.io/ - they use cypress around their documentation) , the testing of the backend can be done in the backend itself, and then the contract between can be tested with types (let's say based on GraphQL schema or something like openAPI).
I understand it might not be one person to decision to go one way or another with testing approach, and all what I said here does not excuse the tooling to have a buggy behavior in something that's available as part of it's API ;) so I'm going a bit off topic here.

We actually have a long time history with mocking the backend in our tests and we wanted to specifally avoid it. But anyway I agree with your point, but for me it really comes down to the complexity of the app and the unpredicatability a failed test can cause since we have no way to know what exactly should be cleaned in a really complex setup done in the before of the test. We might look for a way to contribute to fixing this, it can't hurt if it works as expected :)

@lgandecki There's a paragraph from the best practices you mentioned that is worth pointing out:

If the state you are trying to clean lives on the server - by all means, clean that state. You will need to run these types of routines! But if the state is related to your application currently under test - you likely do not even need to clear it.

That's the cleanup we are doing. Before a test, we may need to run an API to create backing data required to run a test. For example, a UI test that creates a group must first have users. After the test is run, I want to run commands to delete the users I created in a Before and the group I created in my Cypress test.
I appreciate some of your tips about best practices and I assure we are creating e2e tests for critical paths. We just have a gigantic application with over 100 discrete workflows that we want to be sure don't regress.
It's unclear to me whether you would accept a PR to fix this problem, based on your comment:

Obviously we might have a bug here, but it might not be a game stopper for anyone. Not sure if we even should have an After hook

Can you please let us know if you'd accept a PR and maybe any guidance into where to start looking?

Most importantly - Yes we would definitely take a PR with a fix.
You can look at resolveStepDefinition.js hookRegistry.js.
as for a philosophical discussion.. :)
I'm still not sure why can't you reset the state before the tests though. I imagine a before step that brings the state of the app to the same "fresh" state. You don't need to worry about removing users you added. The problem with arbitrary after steps that clean things that you've done over the test might be problematic - your test might actually change state in ways you didn't plan for and subsequently breaking other tests. Worst case scenario if your tests run in random order (for example because of parallelization), those errors will be random and extremely hard to track.
In all honesty we do have a large legacy project where we do use after hook to clean the DB changes (not with cypress, that was years before cypress was made public), but we had to program in a "tracker" that hooked into our database, recorded all changes, and in the end reverted them. Without that the tests were flaky. Now that I think about it - we could as well just run the same logic in before step :)

@lgandecki We're taking a look to see if we can fix it. Hopefully we can provide a PR.
A little more on the philosophical discussion, since you don't seem to mind 😅
I understand the arguments Cypress had made for cleanup before tests. However, for cases where it's not as simple as a db.reseed(), cleaning up after yourself does give the tests the properties we're all looking for:

They can run in any order
They can be parallelized
Same test can be run over and over

I understand that tests can leave some state behind because we may miss something, I guess we just haven't had that problem as much. We definitely cannot afford to recreate an environment since it involves somewhere between 8-16 servers working together so we can test different configurations . The script to run that takes somwhere between 20-30 minutes.
If we can't come up with a working PR, we'll have to find some way to revert any test to a known state before a test. We thought of tracking all POSTs and calling DELETE on them, but we have cases where things must first be stopped or disabled before they can be deleted.
The main philosophical argument is that standing up a clean environment before each test is not really feasible for enterprise applications and coming up with some hack to restore its state before each test is not straight forward. Cleaning up after each test, because you know what was done in the test, should be seen as a valid alternative when db.reseed() is prohibitive.

@lgandecki would you mind having a look at https://github.com/TheBrainFamily/cypress-cucumber-preprocessor/pull/538.
Hopefully I will be able to provide another commit if you think It can be improved.

I haven't looked at that one at all to be honest but there are questions from Badeball there that seem unanswered, so I thought about directing my attention to other areas for now.

I haven't looked at that one at all to be honest but there are questions from Badeball there that seem unanswered, so I thought about directing my attention to other areas for now.

Hey Łukasz,
What are the unanswered questions? I don't see comments from Badeball on this thread. This is a show stopper for us, I know you suggest that we call something that will restore our system to its initial state but that is not feasible in our case. Our application is run on top of 8-16 servers so we don't have a reliable/timely way to restore all the applications that we're built on top of. Before our suites are run, each suite has to create 8-16 VMs that our app runs on and then make a number of API calls (different per suite) to configure them for different scenarios.
We are not a single server app that can easily have its db re-seeded before each test, but we do know what each test modifies, so undoing what a test has done is the only way for us to be able to reliably run tests over and over after they fail. Right now we have to start another job to get a fresh testbed, which can take up to two hours making it really hard to work on tests that are currently failing.
I don't understand why you'd offer an @After() and then not be willing to take a PR that makes it work. Are you saying that if an app cannot restore its state on a @Before() that Cypress may not the right tool for testing it?
It's frustrating to have you say

Most importantly - Yes we would definitely take a PR with a fix. You can look at resolveStepDefinition.js hookRegistry.js.

And then have the PR rejected without any real explanation.

@juanmendes we just ran into a similar issue. deleting the entire db in a before hook was causing issues. So i thought about doing the same thing (deleting just what was created). But you can't know what was created until the after hook. And for us it wouldn't work, because these tests were failing and needed to be retried, so the after hook wasn't going to run.

@juanmendes we just ran into a similar issue. deleting the entire db in a before hook was causing issues. So i thought about doing the same thing (deleting just what was created). But you can't know what was created until the after hook. And for us it wouldn't work, because these tests were failing and needed to be retried, so the after hook wasn't going to run.

We considered and approach where we always create new objects during tests, never modify existing objects. We  would then serialize all hrefs that were created during a test and delete them in a global @Before(). That is not foolproof and will  require a lot of API calls before a test is run. We would rather have tests know how to clean up after themselves and would like some resolution on this issue to decide if we'll be able to keep using Cypress because our tests are unwieldy as of now.

@juanmendes Sorry for that. In the PR there were questions from badeball -

They were answered since then. Could you possibly try that version of the code and see if it works the way you'd expect?
@MateuszNowosad this is very important, please take a look at the PR, test it, ask questions, try to break it. If we could merge it in this week that would be fantastic.

@lgandecki  I'm on it, I'll do some testing today and tomorrow. Thanks

great! thanks as well :)

This can be marked as fixed by #538

Due to personal reasons, the previous maintainers of this package are stepping down and handing the reigns over to me, a long-time contributor to the project and a user of it myself. This is a responsibility I'm very excited about. Furthermore, I'd like to thank @lgandecki ++ for all the work that they've done so far.
Read more about the transfer of ownership here.
The repository has however moved and all outstanding issues are being closed. This is not a reflection of the perceived importance of your reported issue. However, if after upgrading to the new version, you still find there to be an issue, feel free to open up another ticket or comment below. Please make sure to read CONTRIBUTING.md before doing so.


Feature Request: Periodically Poll GitHub or Bitbucket for Changes

I would like to set up Drone internally within a government organization.  However, the gov firewall restricts incoming connections...so webhooks is out of the question.  Please add support for periodically polling cloud git repos.

One thing that could work is if you wrote a separate system to do the polling and forward the webhooks. It could sit alongside Drone, and would be completely optional.

@dsvmacdonald I am open to creating such a utility if someone is willing to financially fund the development effort.

Sorry, don't have funds for that.  I'm trying to push Drone to replace their existing Jenkins.  Haven't even got going with it enough for them to think about funding.
I'll try and whip up the utility when I get a chance


Nuget package

Hi @diega, is there something you'll like to suggest for this project?

@christianpaquin I'm really sorry for the noise, I'm not quite sure how this one was created. I was just testing the Github Package Registry in my own fork, and eventually if that works I would make a proper PR


Open Recent Missing

It would be a good enhancement to have a 'Open Recent' on the File Menu, like in Sublime.

Looks like a duplicate of https://github.com/atom/atom/issues/4241


@cardinal/namespaces library version update

There was an unnecessary string error log with this third party library and I created an issue to their repos. Now the unnecessary log is removed.

Thanks for your review.


add perk wall breaker and tooltip for ranged wall damage

Add the 'wall breaker' perk that increases damage to walls by 25%. Since from now on the damage to walls differ from the damage to siege engines, I have added a new tooltip property so the player can clearly see how much damage he can apply to each target.

Nice screenshot
Don't forget to update README.md

Needs to be rebased due to README.md, this will be a repeating theme.
It's not your fault other PRs got merged. At some point I'm just going to establish a policy that the person in charge of merging just does it after all needed approvals.
Good work. 👍


Fix key's typo to NSFileGroupOwnerAccountName

The key NSFileGroupOwnerAccountId is a typo as it is later overwritten by an NSNumber on line 381. The correct constant is NSFileGroupOwnerAccountName to correctly add the String of the account's name to the dictionary.

Thanks!

Swift CI detected a failure here, which doesn't look related to this change but I've rolled back just in case while we investigate.

The failure is with NSNotificationQueue, which admittedly sparks my own curiosity:
`["TestFoundation/TestNSNotificationQueue.swift:127: error: TestNSNotificationQueue.test_notificationQueueLifecycle : XCTAssertNil failed: "" - "]
["Test Case 'TestNSNotificationQueue.test_notificationQueueLifecycle' failed (0.0 seconds)."]
["Executed 6 tests, with 1 failure (0 unexpected) in 0.011 (0.012) seconds"`

@phausler thinks this may be a race condition in the test and not related to your change (which I believe).

Oh interesting, would this potentially be considered a bug then? I'm just curious as to what that means exactly.

The bug is likely to either be exposed by NSThread or it is a bug in CFRunLoop: the thread issue has occurred before but I had thought I fixed it and the run loop backing is quite new and may have a corner case that is not addressed correctly yet. If it is NSThread there is a potential that the mistake is a incorrect usage or failure of withUnsafeMutablePointer. So I doubt this change had anything to do with it besides timing and/or a nondeterministic failure.

I understand it's likely irrelevant to my change, I just can't help but be curious as to what that all means. :)

Is it probably worth trying this pull again?

@swift-ci please test

Yah let's give it a shot.


Cleanup namespaces to make them more uniformly (see issue #19)

Note:
This comes with a major version change because it is not backward compatible afterwards.

Be aware of the samples - as always I did not change them. You need to fix the dependencies there!

I didn't rename ODATA yet ... do you think I shoud?
Sugesstion "OData" (see http://docs.opengeospatial.org/is/15-078r6/15-078r6.html#19).

yes OData looks ok to me!
I've migrated the ConsoleSampleApplication project to .NET Core 3.1 (https://github.com/gost/sensorthings-net-sdk/commit/7ef538a54ea7abe5b94a57fd8c6d2c007ab4148f)

Done, so far - OData and ConsoleSampleApplication are refactored.


Spoiler tags

Describe the Feature
The app already has quite a lot of useful warnings (nsfw, etc) but one for 'spoilers' would be nice. Especially for people who like to post things from series, movies, books, or games so they can properly spoiler tag their images or even text.
Attachments
No response
Describe Alternatives
No response
Additional Context
No response

I second that. A spoiler label would be very useful to blur stuff out.

I really wanna share music from a game series that I love but don't wanna spoil 1 of my followers that I know is not there yet! (The name of the song is a spoiler but sometimes the thumbnail can be too)


Request failed when I try to encode query param with character  `(backquote) .

If you pass a string with ` (backquote) character to @query parameter of service method it is not correctly URL encoded and you will get an exception.

Can you provide a reproducible test case
import java.io.IOException;

public class test {
  public static void main(String[] args) throws IOException {
    HttpUrl url = HttpUrl.parse("https://httpbin.org/get").newBuilder().addQueryParameter("a", " ` ").build();
    Request request = new Request.Builder().url(url).build();
    Response response = new OkHttpClient().newCall(request).execute();
    System.out.println(response.body.string());
  }
}

{
  "args": {
    "a": " ` "
  },
  "headers": {
    "Accept-Encoding": "gzip",
    "Connection": "close",
    "Host": "httpbin.org",
    "User-Agent": "okhttp/3.10.0-SNAPSHOT"
  },
  "origin": "<IP_ADDRESS>",
  "url": "https://httpbin.org/get?a= ` "
}


 Any thoughts on only requiring the last commit to be signed?
More Info: https://josh.blog/2016/11/gpg-git

Possibly make it optional via a .github/config.yml file?

Yeah, I can add it as an option in the .github/config.yml

I would actually say that his could be a reasonable default.


feat: non-strict mode replaces invalid UTF-8

This change makes non-strict mode percent-decode utf-8 lossily. This means that invalid UTF-8 percent encoded sequences, such as %E9, are decoded as the unicode replacement character (� U+FFFD).
Refs: https://github.com/samscott89/serde_qs/issues/43

If this overloads strict mode too much I'm willing to go down the rabbit hole of separating out the config.

Hey @Fishrock123! Thanks for creating this. I'll try and get a review done this weekend.

@samscott89 just a reminder

Thanks for the reminder @Fishrock123! Sorry for dropping the ball on this, will try and get to it soon


Avoid 0-conf channels + closing channels a bit faster

I'll drop the second commit, because it'll conflict with https://github.com/itchysats/10101/pull/489 and it is included in it.

bors r+


Persist watch on error in build_js task

When an error occurs in the build_js task, for instance because a dependency path can not be resolved, the pipe is broken and the watch is stopped. Instead the developer should be notified and the watch should be continued.

This happens because r.js is not streamable directly into gulp. If we fix the issue 30 this becomes fixed.


pixi 0.0.2 (new Formula)

Apparently creating bottles doesn't really work with dependencies from homebrew/core :(


Use 1/3rd of the end of the string by default

@kennyt had the great suggestion of using 1/3rd of the length of the string as the default number of characters to display, instead of the arbitrary 15 I had selected previously.

Reviewer: @kennyt

But that means the length is now unpredictable. Is this actually desirable?

@pierlo-upitup the length is only unpredictable if you do not pass in a endLength. the 1/3 is simply the default


[fix] missing VERSION file for wheel

The VERSION file was not included in the MANIFEST.in

@sami-m-g can you please merge this?

Thanks, @tngTUDOR .


Installing experiment fails if pre process task has been done first

As part of the pre process tasks we need to have working_directory on the machines. However, if I create working_directory during pre process tasks, then installing an experiment will fail.
This is because the script installing the experiment checks for presence of working_directory to decide if it should clone the git repo, and now that dir is not a git dir.
This creates an odd work flow were you have to install the experiment before you install dependencies. But you need the dependencies to install the experiment. Catch-22.

@GuutBoy I think now I understand what your issues is. The MATRIX assumption is that the protocol (experiment) lives in working directory dir.
If you need to install dependencies from the pre_process.py script, MATRIX assumes that it does need to be install it in the working_directory dir.
In your scenario it's sounds that the installation should be in the working directory dir. Am I understand correctly your problem?

I am not sure I understand your question.
By the MATRIX documentation, the pre processing task are for installing libraries an so on needed to build and run the experiments. The natural progression then seems to be that you would:

Deploy the machines
Run pre processing tasks to install needed dependencies for you experiment
Install the experiment (This needs the dependencies installed in step 2.)
Run the experiment

But if we do things this way we will step 2. will fail because it expects working directory to be present, which it is not until we install the experiment in step 3.
So what you currently have to do in the MATRIX CLI is the following:

Deploy the machines
Install experiment - This will create working directory and pull the experiment code from git. But building the experiment will FAIL because of missing dependencies.
Run pre processing tasks to install missing dependencies
Install experiment again - this time the experiment will build
Run the experiment

So there is this extra counter-intuitive step in the process. I am sure it is easy to fix. It is not fixed in my PR because I ran out of time, and I am no longer working on this project.
Generally, there seems to be a lot of these little issues where the MATRIX  CLI is not very stable/user friendly.

The workflow that you presented is the correct workflow. the pre process tasks as no connection to the working directory (the protocol/experiment directory). I working on MATRIX wiki this week and take this into consideration.
Thank you for your notes. I will merge your PR and adjust it to some new features I integrated into MATRIX.


Control from external network

Hi,
I have my Tapo in a remote location and I want to control them from my home, is that possible?

Unfortunately the only api that has been reverse engineered for the plugs is the local one so there is no way currently to use this outside of the local network.

I think you can build something like a proxy server.
Build a normal application that runs on a local machine, and expose it's endpoints to a public domain tunnel.
I didn't try it, but it's just an idea

Look like some Node.js project doesn't need local IP
https://github.com/dickydoouk/tp-link-tapo-connect

Most of the routers gives the ability to map some external port to their local devices. I.e., you can map the 8000 port for external IP to the 500 port for a some local device.
@fishbigger could you add optional port parameter, so that we could use one external IP for many local devices in combination with their port numbers?

I'm not quite sure what you mean by having an optional port parameter. The plugs will only respond on a specific port and my code can't change that. Could you not map different external ports to many different ips with the same port?

There's no need for a new parameter. I've added it later.
It works fine like
p100 = PyP100.P100("93.56.x.x:8000"<EMAIL_ADDRESS>"Password123")
I map 8000 on my router to local plug's ip and now can control it remotely.

There's no need for a new parameter. I've added it later.
It works fine like
p100 = PyP100.P100("93.56.x.x:8000"<EMAIL_ADDRESS>"Password123")
I map 8000 on my router to local plug's ip and now can control it remotely.

How do you map it on your router?

@arnold427 depends on the exact router model

Unfortunately the only api that has been reverse engineered for the plugs is the local one so there is no way currently to use this outside of the local network.

I'd like to help with this.. Any tips to get started? It feels weird that some APIs were successfully reverse engineered but others not.

Hi,
The original reverse engineering of the plugs was done by K4CZP3R on his blog (Reverse engineering tp-link Tapohttps://kacperserewis.net/blog/post/reverse-engineering-tp-link-tapo)) and I believe that that was done by decompiling the android app and finding the api requests in there. This is probably a good start for looking for external control. Good Luck!


Add visualisation wrappers to cube

Add cube.imshow and cube.plot wrappers around matplotlib methods

Codecov Report

Merging #45 (af9372d) into main (31e5375) will decrease coverage by 3.09%.
The diff coverage is 5.19%.

@@            Coverage Diff             @@
##             main      #45      +/-   ##
==========================================
- Coverage   83.92%   80.82%   -3.10%
==========================================
  Files          12       12
  Lines        1698     1768      +70
==========================================
+ Hits         1425     1429       +4
- Misses        273      339      +66

Impacted Files
Coverage Δ

popkinmocks/ifu_cube.py
46.84% <5.19%> (-24.00%)
:arrow_down:

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


Create new privacy policy page in nextjs

Feature Title
Privacy policy
Description

Need to create a new privacy policy component which has the below points, and import that component to a new page with a navbar and footer
The new page shouldn't have a loader
New page should be styled only with tailwindcss
the background color should be of license page and same text colour
new page should be linked to footer link

Points to be covered,

Collection of non-personal information
When you visit the Website our servers automatically record information that your browser sends. This data may include information such as your device's IP address, browser type and version, operating system type and version, language preferences or the webpage you were visiting before you came to our Website, pages of our Website that you visit, the time spent on those pages, information you search for on our Website, access times and dates, and other statistics.

Use and processing of collected information
Any of the information we collect from you may be used to personalize your experience; improve our Website; improve customer service; process transactions; send notification emails such as password reminders, updates, etc; and operate our Website. Non-Personal Information collected is used only to identify potential cases of abuse and establish statistical information regarding Website usage. This statistical information is not otherwise aggregated in such a way that would identify any particular user of the system.

We may process Personal Information related to you if one of the following applies: (i) You have given their consent for one or more specific purposes. Note that under some legislations we may be allowed to process information until you object to such processing (by opting out), without having to rely on consent or any other of the following legal bases below. This, however, does not apply, whenever the processing of Personal Information is subject to European data protection law; (ii) Provision of information is necessary for the performance of an agreement with you and/or for any pre-contractual obligations thereof; (ii) Processing is necessary for compliance with a legal obligation to which you are subject; (iv) Processing is related to a task that is carried out in the public interest or in the exercise of official authority vested in us; (v) Processing is necessary for the purposes of the legitimate interests pursued by us or by a third party. In any case, we will be happy to clarify the specific legal basis that applies to the processing, and in particular whether the provision of Personal Data is a statutory or contractual requirement, or a requirement necessary to enter into a contract.
3.Privacy of children
We do not knowingly collect any Personal Information from children under the age of 13. If you are under the age of 13, please do not submit any Personal Information through our Website. We encourage parents and legal guardians to monitor their children's Internet usage and to help enforce this Policy by instructing their children never to provide Personal Information through our Website without their permission. If you have reason to believe that a child under the age of 13 has provided Personal Information to us through our Website, please contact us.
4.Newsletters
We offer electronic newsletters which you may voluntarily subscribe to. You may choose to stop receiving our newsletter or marketing emails by following the unsubscribe instructions included in these emails or by contacting us. However, you will continue to receive essential transactional emails
5.Links to other websites
Our Website contains links to other websites that are not owned or controlled by us. Please be aware that we are not responsible for the privacy practices of such other websites or third parties. We encourage you to be aware when you leave our Website and to read the privacy statements of each and every website that may collect Personal Information.
Also add last updated date of privacy policy at top of page
Motivation
Privacy policy will ensure use, by adhering to standard rules
Issue Type
Backend
Screenshot of the feature if done ?
Nill
Are you taking this fetaure implementaion
No - up for grabs

Hi! I would like to work on this issue. Can you please assign it to me?

Hi @SarveshPatil29
Please go ahead, make sure the stylings are done in tailwind and are in standard to other pages
Happy Diwali 🍻

Hi @SarveshPatil29 Please go ahead, make sure the stylings are done in tailwind and are in standard to other pages
Happy Diwali 🍻

Sure and Happy Diwali!


Add performance monitoring

Add optional performance monitoring with a solution like pyroscope.
Some Raspiblitz users report high CPU usage of the API.

I like gthe general idea .. but wouldnt Pyroscope introduce a cloud monitoring af all devices?

The idea is not to enable this by default. Monitoring performance costs performance. As far as I can see there are several backend options for pyroscope including a self hosted server. I have to do more research into all of this as it's only an idea right now.
Maybe there's also a native python monitoring solution that logs data to a file.


fix ldgen.mk wrong target name

fixes
make: *** No rule to make target '/d/workspaces/esp32_workspace/smartbar_ctrl/build/ldgen_libraries', needed by '/d/workspaces/esp32_workspace/smartbar_ctrl/build/esp32/esp32.project.ld'.  Stop.
described in https://github.com/espressif/esp-idf/issues/3419

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.V.Dudnik seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Thank you for the PR @vetaldudnik!
The same fix has been merged in https://github.com/espressif/esp-idf/commit/4cc8b92d228a050119e26a7b1d7e1a8991820dd8, but it took a while for it to get synced to GitHub.


need some help

hi there,
i have a question, i cant get it working.
i flash the software on the device. (esp2866)
connect to the wifi works, web page works perfectly.
i fill in the wifi settings, hardware setting, general setting. i press safe and reboot.
connect back to my wifi, i can find the device. go to the device ip. fill in password. then i come on the status page but its blance, user page doenst work either and all setting are back the same.  what am i doing rong?

Same problem here. Can flash the esp8266 fine. Device will generate the AP and I can login with the default password however I cannot save ANY changes. It says it is 'Please wait while your ESP restarts', progress bar gets to 100%, says completed. AP stays active. If I reboot ESP, AP still active and any changes have been reverted to default. I tried v 0.9.3, 0.9.4, 1.3.3 Firefox, Chrome, IE. All with the same results. Surely its not the way I'm flashing it (using  NODEMCU FIRMWARE PROGRAMMER)

I jused also every version, started from 0,7
Tryed also different board, wemos d1 mini 3.1 same issue. Start to think its the rfid reader. Orderd some new ones now.

i have the same issue:
My work around as follwow:
after reboot login
use a menu to make the setting,
save the new setting and restart..
then next setting you want change. not nice but works so far.

OK. Now trying D1 Mini. I have the console working now with some useful info:
[ WARN ] Failed to open config file
this will be why no settings are saving. Now to work out why?

found the solution, dont use chrome, safari, firefox, vivaldi. tryed them al. college of mine used microsoft edge and it worked for him. so i reflashed my esp directly, open microsoft edge, setup the everything. en voila it worked... let me know if ut work for u guys

MS Edge did not work for me. @walliek can you please tell exactly how you flashed your device?

Flashed my device using a Mac with NodeMCU PyFlasher version 4.0.  Flashed the generic.bin from the 1.3.3 patch release.  It's hit or miss it it seems.  Once it takes, it works, but there are other problems with the entire system that I'm trying to figure out.

@Ralph74 i just use the flash file. What is in the map.
I also order a new RC522. First had 1 from aliexpress. Now i order the one That drzzs linked in is command on youtube. Its working perfect now for me

What the heck is going on now!

Where did generic.bin go?

You are on the rong page, https://github.com/esprfid/esp-rfid/releases/tag/1.0.2

I'm closing this, please feel free to reopen if you want additional help.


Move to Typescript; update to Monaco editor 0.15.6; update NuGet dependencies

I splitted off the javascript into TypeScript as you wrote in a todo. This helps with calling the monaco functions properly - I noticed that, according to monaco.d.ts, two parameters were swapped in the function for provideCompletionItems (see https://github.com/hawkerm/monaco-editor-uwp/commit/950c755a78e719fc838aa203f514ecc43d433b3d).
Where can I use help?

I could use help with how you want to organize the functions in the typescript files. At the moment I split off the registerCompletionItemProvider and I moved most other functions from MonacoEditor.html to otherScriptsToBeOrganized.ts (to be a boilerplate).
I could use feedback on how to fix the compile errors in updateSelectedContent.ts

I checked Allow edits from maintainers - if you have time, it would be nice if we could collaborate here.

I fixed provideCompletionItems in my last commit:

c sample works
boo sample works

Just out of curiosity, could you explain what the Json class (in Monaco.Helpers) is used for?

@hansmbakker when I first started this project, I was naively thinking I wouldn't take a dependency on Json.NET, there was talk in the toolkit at the time about trying to remove its dependency on it too.  However, it's everywhere and makes life easier. :)
So, some of the old code still uses this weird helper, ideally it gets removed and everything just uses serialization via Json.NET.

When .net core 3 is released it will include built in support for Json (de)serialization that will probably become available for UWP too, but for the near future Json.net is the way to go indeed :)

@michael-hawker since you use this component in XAML Studio, is this PR something be interested in?

@hansmbakker yes, sorry for the delay.  I'm very interested in working together to figure out the last issues and get this PR together.  I unfortunately haven't had a chance to get time together to focus on it yet though with some of my other priorities.  My focus will definitely shift back to this Monaco stuff after those subside in the May-ish timeframe, but if I get a handle on everything else, I'll certainly try and get into this sooner.

Thanks for letting me know, I understand there can be other priorities.
Just for clarity - am I right that @hawkerm and @michael-hawker belong to the same person? This was initially not clear to me, that's why I invited @michael-hawker, but now I see that that might have been redundant 😄

W.r.t. the Typescript interface definitions - I found out there are some VS extensions or this NPM tool that can help generate them instead of manually writing them.
For now the manually written ones are working though.

Thanks @hansmbakker, yes, we're the same person :), I delineate the work I do at home vs. at work. I just started this project outside of work, but it ended up mostly being used by the toolkit sample app and Xaml Studio.
I think the main thing that would be helpful is the opposite of the tool you found which could take TypeScript definitions and generate C#.  Ideally, a lot of the code in this 'wrapper' should just be auto-generated to bridge a UWP app's code to the internal WebView's Monaco API.  It'd be cool if eventually the Monaco build could just spit this out.

I think the main thing that would be helpful is the opposite of the tool you found which could take TypeScript definitions and generate C#. Ideally, a lot of the code in this 'wrapper' should just be auto-generated to bridge a UWP app's code to the internal WebView's Monaco API. It'd be cool if eventually the Monaco build could just spit this out.

@hawkerm I believe that quicktype is one of the very few tools that can do TypeScript --> C#; most converters are the other way around (C# --> TypeScript).
You can try it online at https://app.quicktype.io/ but there is a CLI version that can be installed using npm install -g quicktype.
I can try investigating this a bit.

I just started this project outside of work, but it ended up mostly being used by the toolkit sample app and Xaml Studio.

Would be nice if you somehow could make this component part of the Windows Community Toolkit and have some time for it at work (since it is used by Microsoft apps), I don't know if Microsoft works that way though :).

Yeah, I'm not sure if quicktype can handle functions vs. just the object shapes (though that's a start for somethings like the options structure), will have to investigate more.  It's too bad the retyped tools aren't open source, it would be interesting to see what they're doing.
As for your 2nd comment, we've talked in the past about it being in the Toolkit, but it's also kind of its own project with a lot different technical needs to build.  And it's still very rough and doesn't support everything, though the little it does support is already a lot! ;)
I do know this little project has had a lot of interest though, so I believe it could be more in the future.  I think the key things are around what we've been talking about with auto-generation and second having a way around #21 figured out (though that may be easier with auto-generation if there's a known/better pattern that can be followed and outputted).
Thanks for the back-and-forth on this discussion, I appreciate your patience with me!

@hawkerm is there a chance you could have a look at this PR?

@hawkerm @michael-hawker it seems that autogenerating C# from TS seems quite difficult because the types you want to parse are not simple POCOs but use methods (https://github.com/vega/ts-json-schema-generator/issues/104) and have references to browser events declared outside the .d.ts (https://github.com/quicktype/quicktype/issues/1287).
I tried the following tools and all of them trip on some part of the definitons file:

quicktype
ts-json-schema-generator
typescript-json-schema

It seems that autogeneration of the C# from TypeScript is holding back this PR while that would not be needed - it is a problem that might or might not be solved independently in my opinion.
Since I last updated this PR, Monaco has been updated several times (to 0.17.1), do you think you'll have time to look at this PR?


npm run build: SyntaxError: Unexpected token: operator (>)

First of all, thank you for such a great tool!

Started the project with: vue init browserify project-name
Everything works fine with npm run watchify as well as npm run dev
Here is the Repo: https://github.com/selfup/vue-reegux-example-repo
Which uses: https://github.com/selfup/vue-reegux (a state manager I made. So it could potentially be the install method I expose)

vue -V => 2.3.1
node v6.6.0
npm  v3.10.8

Once I npm run build
> vue-reegux-example-repo@ build /Users/RJPB2/VUE/vue-reegux-example-repo
> cross-env NODE_ENV=production browserify -g envify -p [ vueify/plugins/extract-css -o dist/build.css ] -e src/main.js | uglifyjs -c warnings=false -m > dist/build.js

Parse error at -:185,40
SyntaxError: Unexpected token: operator (>)
Error
    at new JS_Parse_Error (eval at <anonymous> (/Users/RJPB2/VUE/vue-reegux-example-repo/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:1545:18)
    at js_error (eval at <anonymous> (/Users/RJPB2/VUE/vue-reegux-example-repo/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:1553:11)
    at croak (eval at <anonymous> (/Users/RJPB2/VUE/vue-reegux-example-repo/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2092:9)
    at token_error (eval at <anonymous> (/Users/RJPB2/VUE/vue-reegux-example-repo/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2100:9)
    at unexpected (eval at <anonymous> (/Users/RJPB2/VUE/vue-reegux-example-repo/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2106:9)
    at expr_atom (eval at <anonymous> (/Users/RJPB2/VUE/vue-reegux-example-repo/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2633:9)
    at maybe_unary (eval at <anonymous> (/Users/RJPB2/VUE/vue-reegux-example-repo/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2795:19)
    at expr_ops (eval at <anonymous> (/Users/RJPB2/VUE/vue-reegux-example-repo/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2830:24)
    at maybe_conditional (eval at <anonymous> (/Users/RJPB2/VUE/vue-reegux-example-repo/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2835:20)
    at maybe_assign (eval at <anonymous> (/Users/RJPB2/VUE/vue-reegux-example-repo/node_modules/uglify-js/tools/node.js:28:1), <anonymous>:2859:20)

Compile the down to ES5 first?

The main entry of your vue-reegux is written in ES6, use a compiled version instead. Browserify does not seem to transform modules in node_modules/* by default, but here's some alternative https://github.com/babel/babelify/issues/53

@egoist Thank you so much. That makes complete sense!


Fail to build dev branch

Trying to build dev branch on Arch Linux with ISEMU set to 1 in the Makefile and fails with this
/tmp/ccXvftrU.s: Assembler messages:
/tmp/ccXvftrU.s:15: Warning: setting incorrect section attributes for .rodata.module_name
svc.s
crt0.s
linking SuperMarioOdysseyOnline100.elf
make[2]: elf2nso: No such file or directory
make[2]: *** [/home/justin/SuperMarioOdysseyOnline/MakefileNSO:154: /home/justin/SuperMarioOdysseyOnline/SuperMarioOdysseyOnline100.nso] Error 127
make[2]: Leaving directory '/home/justin/SuperMarioOdysseyOnline/build100'
make[1]: *** [MakefileNSO:135: build100] Error 2
make[1]: Leaving directory '/home/justin/SuperMarioOdysseyOnline'
make: *** [Makefile:19: starlight] Error 2

Used DEVKITPRO=/opt/devkitpro/ make to build it and installed all dependencies,

I believe that you're just missing the program elf2nso. This is more likely an issue with DevKitPro's arch build.


Can you add search function?

Can you add search function?

I'll probably look at adding some kind of text search on the weekend.

I've added a basic text search. When I get a chance I'll add some text replace functionality too.

thank you

I've added a basic replace toolbar now.


Vote for nomination of Woods, Chris and Trenner, Thomas as TSC members

I would like to nominate Chris Woods and Thomas Trenner as WAMR TSC members. They and the company contributed to the feature exception handling, and their proactive involvement and valuable advice in many WAMR technical discussions greatly helped the WAMR community.
@ttrenner @woodsmc: Could reply to this on whether or not you agree to accept the nomination?
@lum1n0us, @no1wudi, @qinxk-inter, @wei-tang, @wenyongh, @xujuntwt95329 @donghengqaz, @loganek, @yamt: As current TSC members, could you click emoji thumb up or thumb down for your vote to the nomination?

agree

I support the nomination.

@xwang98  Thank you. I'm honored to be nominated.

I will merge it as we already received agreements from more than 50% of the TSC members.