Implement digital signatures for all CDN artifacts

All CDN artifacts should be digitally signed by their owners.
This also implies checking the digital signature in addition to the checksum to confirm authenticity.
Issue moved from https://github.com/subutai-io/subos/issues/492

Singing of artifacts should be processed using owner private key. Only user have this key. If we are planning sing artifacts, it should be implemented on user side. After that user should upload file and signature to gorjun.
Another option is sing all artifact using gorjun node key. It will just allow to validate that file was downloaded from gorjun CDN and it's valid.

@tzununbekov @akarasulu @Dilshat

Ask user to sign artifacts before upload is extremely unfriendly way I think, meanwhile signing file with our own key allow us to validate only file integrity but not the ownership and using signatures is overkill for this purpose
In my point of view, we should think about two things:

using browser plugin for signing artifacts
need to figure out how those artifacts will be created and, if possible, add signing mechanism to generation step. Since for deb and raw files signatures are useless, we need to think how user will create custom template before uploading

Need to thoroughly discuss this topic all together

@soffokl The second option is not sufficient to authenticate the artifact. It just verifies that the artifact was transferred without tampering from the CDN->User. The first option handles the full path Owner->CDN->User. @tzununbekov has the right idea here to use the e2e plugin. More thoughts below ...
We can implement the first option easily. The signatures are applied to the file's checksum right? So before uploading an artifact, the application (SS, Hub) should require the owner/uploader to sign the checksum. I think this can be delegated to the e2e plugin to handle in both UI's. It's being done now already for signing various documents. It would be very easy to do this.
SS and the Hub should support automated via e2e plugin and manual mechanisms to produce and upload the signature into the CDN.
Subos will need to simply pull down the artifact and it's signature then verify the signature against the public key of the owner to authenticate the artifact.
Does this clarify?

@akarasulu yes, this clarifies lots of questions
In described workflow we should include @Dilshat and @samsonbek to assist with e2e integration from SS and Hub sides
As I see it now, we'll need to add one additional step for both - upload and import operations: signing hash during upload from Hub and checking signature while importing to SS
I'll review kurjun and subos source code to recall current algorithm and to prepare changes

Merged in production


feat: support syntax feature by user config

support syntaxFeatures for user config
Resolve #369

Codecov Report

:exclamation: No coverage uploaded for pull request base (release-next@7737ea1). Click here to learn what that means.
The diff coverage is n/a.

@@               Coverage Diff               @@
##             release-next     #376   +/-   ##
===============================================
  Coverage                ?   80.00%
===============================================
  Files                   ?       79
  Lines                   ?     6775
  Branches                ?      795
===============================================
  Hits                    ?     5420
  Misses                  ?     1349
  Partials                ?        6

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 7737ea1...32805ba. Read the comment docs.


Don't generate tables for abstract class derivatives of Table

I have common table schemas used across many tables (and other purposes) - hence I would like to use the following pattern:
abstract class MyCommonTable extends Table
{
}

class MyConcreteTable extends MyCommonTable
{
}

This would work fine - however, when the build_runner executes, drift says "Due to includes added to the database, the following Dart tables which have not been added to tables or views will be included in this database: MyCommonTable" - even though I have marked it as abstract.
Can we please have drift exclude abstract classes from code-gen, but of course, allow concrete implementations to inherit their properties (i.e, the generator should generate all fields defined in MyCommonTable, for any concrete derivative).
Thank you!

This would be breaking, but I'm in favor of a build option disabling abstract tables to be considered as standalone tables.
However, you also mentioned that some of your tables are defined as mixins? It seems a bit odd to not consider abstract classes while also supporting mixins as standalone table classes (or are they also just used to contain shared column definitions)?

Hi @simolus3
Thanks for taking a look at this.
Agreed - official support of mixins would be great. I'm already using mixins, and when I first wrote the db layer, I do recall having to jump through many hoops to get it to work, and still suffering many warnings. I had to explicitly reorder the sequence in which the generators would run to make sure everything worked.
I have another issue open which would be related #3162.
My actual use-case is this:

build script downloads swagger file
I have classes which extend from Table, are annotated with a custom annotation (i.e  "GenerateTableFromSwagger('nameOfSwaggerEntityContract')", and "mixin" a class which doesn't exist yet (generated next)
My custom generator will find these classes, correlate them with an entity definition in swagger json, then generate the necessary mixin for each with all the properties.
The drift generator runs, and does what it does best

I've hit some issues with the mixin approach which I tried to solve using an abstract base class instead (hence this ticket).
But, if mixins were fully supported, that would be awesome too
Thank you!

In my project, I have several tables with at least two common primary keys (PKs). These tables extend a simple abstract table class (lets call it AT) containing these columns.
In my DAOs, I consistently implement a set of specific, similar methods across these tables. To streamline this, I created a base class with a generic type T that extends that abstract table (AT).
However, only the specific classes generated by build_runner are accepted to work inside DAOs. These classes include a TableInfo mixin wich has a type variable for the generated table and the working type.
To ensure compatibility, I specify that T extends TableInfo<T, dynamic>. Additionally, T must extend my abstract class to include the common columns.
My workaround involves creating another abstract class with the dependencies correctly arranged. However, every time I use build_runner, I must manually add the implements keyword to all generated classes that meet these constraints.
I also asked for help in the Community Discord, and someone (julemand101) suggested creating my own mixin that meets these constraints. However, I can't do this because TableInfo already uses the on keyword and therefore cannot be added in another mixin class. In any case, I would also need to replace it at the generated code.
So what I'm asking here is for both to not generate table for abstract Table classes and if possible to have an underlying type for us to know that a table is generated and extends those base classes.

To be more concrete, what I'm doing is something like:
abstract class DAO<T extends ATIdentifier>{
  T get table;

  // Methods

}

Today I have two type constraints for that:
abstract class DAO<T extends AT, ConcreteTable extends TableInfo<T, dynamic>>{
  ConcreteTable get table;

  // Methods

}

Now inside some base methods I already have those fields to work with no matter what. I simply need my DAO to extend this class and to set like late final table = myTable;


Add envoy to build-tooling

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Looks good to me, I'll wait for the fixes to Jackson's comments.

/approve


[RFC]Support Builtin functions with Datafusion

The easiest way to support builtin functions seems to be by using ScalarUDF or AggregateUDF.
Changes
To support this the following changes would have to be made
lightjit::builtins
We have to convert the functions into type datafusion::ScalarUDF.
Also, add a get_udf() function that matches a string to the function.
Should we still have these located here or maybe move them into a different crate?
lang::parse
add a new function parse_builtins(p). This would be similar to the current parse_tables(p) function but look for any builtins and return a HashSet of the ones found.
engine::run()
add let builtins = parse::parse_builtins(p)?;. We would have to also add this field to datafusion::run the same as tabs or cols.
    let (tabs, cols) = parse::parse_tables(p)?;
    let builtins = parse::parse_tables(p)?; // <--- New
    log::debug!("projections - tabs: {:?}, cols: {:?}", tabs, cols);
    datafusions::run(ms, ps, current_db, raw_query, query_id, tabs, cols, builtins, qs) // <- also pass builtins

engine::datafusion::run()
Before running we can check the sql if any builtins are used. If used all we need is to cxt.register_udf(builtin).
Sudo code
let mut ctx = ExecutionContext::new();
...
if !builtins.is_empty() {
    for f in builtins.drain() {
        let udf = get_udf(f)?;
        ctx.register_udf();
    }
}
let df = ctx.sql(raw_query)?;
...

@DallasC This is a great reading for current UDF additions. I promote this issue to RFC.  DataFusion in fact, has lots of builtins, but which are not same to those of ClickHouse in naming.
Could you add some alias builtins to allow ClickHouse to work without changes according to your proposed this RFC?

Before running we can check the sql if any builtins are used.
In the future, we may change this behaviors. Because the runtime cost for register UDF makes no much sense. It is ideal to enable preloading mechanism although this may need to change to DataFusion.

Yeah adding aliases would be easy I think. Datafusion currently just has some math and string functions so for things like dates and intervals we would have to use UDFs
All the functions are located at arrow-datafusion/datafusion/src/physical_plan/functions.rs. We just have to find out what ones differ from the clickhouse functions.

I agree the extra runtime cost isn't ideal. I looked a little more but from what I can tell there isn't a way to preload  UDFs in DF currently.  I'm not sure how difficult this would be to add.
Adding the builtins directly to DF could be a short-term alternative without any performance drawbacks just to get Tpch fully running. It's pretty easy to do but a little verbose.
After we finish up tpch fully, I can revisit this and get preloading working.

We now use a hooking way to provide Base customized builtins in Datafusion introduced with #154. The method is a little intrusive but simpler and faster. I close this issue. If there are more problem, we track them in other issues.  Finally, thanks @DallasC for such great RFC!


HDR frame rate question on D455

Required Info

Camera Model
D400

Firmware Version
<IP_ADDRESS>

Operating System & Version
Win 10 &  Linux Ubuntu 20.04

Kernel Version (Linux Only)
(e.g. 4.14.13)

Platform
Windows PC & NVIDIA Jetson AGX Orin

SDK Version
{ <IP_ADDRESS>85 }

Language
{C++ }

Segment
{Robot/Smartphone/VR/AR/others }

Issue Description
I am just trying to think this through as I investigate the feasibility of adding HDR into my existing application.  When using HDR (I am using a modification of the example from github.com/IntelRealSense/librealsense/tree/master/examples/hdr), what happens if the camera frame rate is faster than the rate at which the application code asks for a new frame?  As I understand HDR from the literature, the merge process is done on the host (not in the camera itself) by using two consecutive frames, one from each of 2 different exposure rates.  Lets say that my application code asks for a frame and gets one from the first HDR sequence ID (#1), then runs some other function which takes longer than one frame update period.  In turn it misses the consecutive frame with ID#=2 so that when it later asks again for a frame it gets another frame with ID = 1 instead.  What happens in the HDR merge algorithm if there isn't a frame with sequence ID = 2?  It seems like for this to work as desired I need to make sure I am getting every available frame, alternating between ID #1 and ID #2 so that they can be merged.  That may seem like a trivial requirement except that in addition to getting the frames I need to perform several other calculations and I can't really afford to just sit and wait for another frame.  Yet if I want to use HDR as supported, then it seems like I would have to ensure I never miss any of the available frames.  Is that correct? If so, then I would need to instead poll for frames via a periodic interrupt/event that occurs at least 2 times the camera frame rate, correct?
Thank you.

Hi @jpfsaunders   Yes, the merge process will be performed on the host and not on the camera hardware, using two consecutive frames.
It is recommendable to use wait_for_frames() in HDR scripting instead of poll_for_frames, as demonstrated in the official scripting example in Intel's HDR white-paper guide.
https://dev.intelrealsense.com/docs/high-dynamic-range-with-stereoscopic-depth-cameras#32-controlling-hdr-programmatically
There have not been past reports of problems regarding HDR that resemble your described concern about missing a frame.  wait_for_frames() blocks until a complete frame is received instead of permitting incomplete frames to be received.
If there is a hiccup in the stream such as a dropped frame when using wait_for_frames() then the SDK should automatically return to the last known good frame and then continue onward from that recovery point.  My recommendation would therefore be to trust that HDR has consecutive frames to work with even if a frame drop occurs.

Hi @MartyG-RealSense ,
Thank you for your quick response.
We elected to change our app from using wait_for_frames() to poll_for_frames() because, if the camera connection goes bad or gets disconnected, the app gets stuck and hangs.  Using poll_for_frames() instead lets us apply a maximum amount of time to wait before we generate a fault condition in a nicer way.
That said, I started with the HDR example on github and purposely added extra delay to  artificially create the issue about which I have concern.  Without the delay, the merged depth frame looks different and better than either of the individual depth frames (ID#1 & ID#2) used to make it, so I am sure that the merge operation is working as desired.  However, with the artificial delay added so that the camera frame rate is > 2 times the frame request rate, I do not see the same good result in the merged frame ... it often looks a lot like one of the two individual frames, rather than a merging of the two.  I am testing this without any motion of the camera, but in our real application there may be motion so that I would expect this reduction in performance to be worse.
At this point I am pretty sure that if we want to use HDR we will need to ensure we see every consecutive frame.

Thanks very much for the update.  I would add that if you use poll_for_frames() then it is recommended that you manually control when to put the CPU to sleep and for how long, as described by a RealSense team member at https://github.com/IntelRealSense/librealsense/issues/2422#issuecomment-423254709


Switch from parcel to esbuild

Pro: Improved cross platform compatibility - in particular, freebsd. (Also has a wasm package, but you must load it specifically, and it's around 5 times slower)
Pro: Extremely fast
Con: Doesn't process html files

→ css import is moved to the js file and we copy the html file to the output directory on our own

Con: Esbuild's built-in development server doesn't do hot reloading

→ wrote something based on https://www.npmjs.com/package/esbuild-serve

Note: Has similar behavior to parcel that if the page crashes due to compile errors, live reloads are lost and you need to manually reload. (I think? I hadn't played with parcel's server much, preferring my usual http server.)
Note: esbuild uses polling instead of watching (probably more cross platform)

Loses the parcel feature that shows nice error message overlays - js compile errors are printed to the terminal
Seems to reload multiple times when e.g. vim renames your file to a backup file and writes the file anew, which is less than ideal, although parcel does this too.
Not immediately obvious to me, but it's how they both work, the build target as written is simply "americana.js" but this produces both "americana.js" and "americana.css" by virtue of the codebase importing css somewhere.
It would probably be possible to write a development server that writes a live-reloading index.html but delegates to esbuild's server for everything else. Might be better? We're writing temporary files to dist/ instead of serving them live, e.g.
Verify that the output is comparable in terms of bundle size e.g.
  dist/americana.js       801.3kb
  dist/americana.css       68.0kb
  dist/americana.js.map     1.4mb
  dist/americana.css.map   71.7kb

⚡ Done in 1082ms

seems like it is.
To verify:

[ ] Developer experience aligns well enough
[ ] Hacked together dev server is functional enough
[x] Output bundle is comparable in size
[ ] process.argv / import.meta.url hack is cross platform enough
[ ] Slightly altered build changes are correct wrt css import, html main, etc

Is the error message shown in some other place, or is it lose entirely?

Compile errors appear in the terminal.

First thing I noticed is that my web browser didn't auto-launch after an npm start, though it did start the server.

Found that https://www.npmjs.com/package/open is popular and straightforward.

The browser open seems to work!  Though it does this one really weird thing.  Before running it, the console looks like this:

After running npm start it changes my console font to:

Now, I can change the console back to the standard font (Consolas 16) but that's kind of weird that it does that.

🧑💻🤸🌋


CSS-Modules + Ant-design

Hi Nathan,
I just started playing with CSS Modules, and was wondering if it's possible to use it along with ant-design (https://ant.design/). Ant is written in less, so not sure if this an issue... Below I copied my package.json, when I try to run my app using both CSS-Modules and ant design, it gets stuck at 'Processing fields with nathantried:css...' Any thoughts?
Thanks for your time and hard work :)
Here is my package.json
{
  "name": "fulbacho",
  "private": true,
  "scripts": {
    "start": "meteor run",
    "lint": "eslint .",
    "pretest": "npm run lint --silent"
  },
  "dependencies": {
    "antd": "^2.6.0",
    "babel-runtime": "^6.20.0",
    "bcrypt": "^0.8.7",
    "classnames": "^2.2.5",
    "immutability-helper": "^2.0.0",
    "less": "^2.7.2",
    "meteor-node-stubs": "^0.2.3",
    "moment": "^2.17.0",
    "normalize.css": "^4.1.1",
    "react": "^15.3.2",
    "react-addons-css-transition-group": "^15.3.2",
    "react-addons-pure-render-mixin": "^15.3.2",
    "react-dom": "^15.3.2",
    "react-mounter": "^1.2.0",
    "react-redux": "^5.0.2",
    "react-router": "^3.0.1",
    "react-spinjs": "^3.0.0",
    "react-tap-event-plugin": "^2.0.1",
    "react-toolbox": "^1.3.4",
    "react-waypoint": "^4.1.0",
    "redux": "^3.6.0",
    "redux-logger": "^2.7.4",
    "redux-thunk": "^2.2.0",
    "underscore": "^1.8.3"
  },
  "eslintConfig": {
    "plugins": [
      "meteor"
    ],
    "extends": [
      "airbnb",
      "plugin:meteor/recommended"
    ],
    "rules": {
      "max-len": 0,
      "import/no-unresolved": 0,
      "no-underscore-dangle": [
        "error",
        {
          "allow": [
            "_id",
            "_ensureIndex",
            "_verifyEmailToken",
            "_resetPasswordToken",
            "_name"
          ]
        }
      ]
    }
  },
  "devDependencies": {
    "autoprefixer": "^6.3.5",
    "babel-eslint": "^7.0.0",
    "babel-plugin-import": "^1.1.0",
    "babel-preset-stage-1": "^6.16.0",
    "deep-freeze": "0.0.1",
    "eslint": "^2.10.2",
    "eslint-config-airbnb": "^9.0.1",
    "eslint-plugin-import": "^1.8.0",
    "eslint-plugin-jsx-a11y": "^1.2.0",
    "eslint-plugin-meteor": "^3.5.2",
    "eslint-plugin-react": "^5.1.1",
    "expect": "^1.20.2",
    "node-sass": "^3.4.2",
    "postcss-reporter": "^1.3.3",
    "redux-devtools": "^3.3.2",
    "redux-devtools-dock-monitor": "^1.1.1",
    "redux-devtools-log-monitor": "^1.2.0",
    "stylelint": "^5.2.1"
  },
  "postcss": {
    "plugins": {
      "autoprefixer": {},
      "stylelint": {
        "rules": {
          "selector-class-pattern": "[a-z]+"
        }
      },
      "postcss-reporter": {
        "clearMessages": true
      }
    }
  },
  "cssModules": {
    "extensions": [
      "scss",
      "less",
      "css"
    ],
    "enableSassCompilation": ["scss"],
    "enableLessCompilation": ["less"],
    "passthroughPaths": [
      "node_modules/antd"
    ],
    "globalVariables": [],
    "ignorePaths": [
      "node_modules/node-sass/test",
      "node_modules/doiuse/test",
      "node_modules/css-tokenize/test",
      "node_modules/convert-source-map/test",
      "node_modules/less/test"
    ]
  }
}

I think it should work (I don't see why not)... can you post a reproduction repo so I can take a look using your set up?

Hey @nathantreid many thanks for your quick reply :)
Here is the repo: https://github.com/fede-rodes/css-modules-ant-design
you'll need to run: 'meteor --settings settings-dev.json' after installing the NPM dependencies. In my case, it get stuck processing fields :(

I haven't yet looked into what exactly is causing the failures, but I was able to get the app running with the following ignore paths:
"ignorePaths": [
  "node_modules/.*/(examples|docs|test|tests)/",
  "node_modules/antd/lib/.*\\.less"
]

The first path expression deals with issues caused by a few of the react- packages including their docs, examples, tests, etc in the npm package. This has caused a lot of failures for a lot of people, so I'm considering making it a default setting; in this case it causes Meteor to crash (but you never got that far because the antd/lib folder caused my plugin to get stuck processing files. Note that if you use this expression you can remove the other ignore path expressions that you currently have.
I'll have to look into why the antd .less files are causing the endless processing.

Awesome! I can go from there :)
I'll let you know if I get some improvements.
Thanks

BTW: it's probably a good idea to ignore node modules by default, because it's pretty disconcerting when you get those error on the console. I remember that I tried the package 3 or 4 times before getting it to work due to those errors. So, I think that would be of great help for the package to be more widely used :)


Filtering modules can impact world gen availability on create game screen

It seems a bit inconsistent exactly how to make it trigger, but the most obvious way I can provoke it is opening the "Modules" menu off "Create Game" then entering gibberish in the filter box, resulting in no listed modules. Then going back to "Create Game" suddenly shows no world generators available (regardless of what modules you actually have enabled)
I suspect whatever module context is being used for the filtering manages to slip back to the active module context being considered on the create game screen. Something needs to be reset or encapsulated better. Probably an easy fix.

Maybe slightly related: #2074 - as it attempted to change how stuff preloads for preview and such.

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/34886775-filtering-modules-can-impact-world-gen-availability-on-create-game-screen?utm_campaign=plugin&utm_content=tracker%2F5279&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F5279&utm_medium=issues&utm_source=github).

I can try working on it. Although how should I reproduce the bug?

Hey @kartikey0303 - I suggest downloading the latest Omega zip so you have a copy of all the stable modules:
http://jenkins.terasology.org/job/DistroOmega/lastSuccessfulBuild/artifact/distros/omega/build/distributions/TerasologyOmega.zip
You can both confirm it by playing the game that way and then copy all the modules (the jars under /modules from the zip) into your source workspace under /modules, excluding any modules you have in source form (BuilderSampleGameplay, Core, and CoreSampleGameplay at least)
That way you can run the game from source with all the modules present, giving you enough stuff to filter modules and replicate plus fix the issue :-)

Removing the line moduleConfig.clear(); around line 539 in SelectModulesScreen.java seems to fix the issue. Someone please confirm.

Thanks for the note, will try it soon :-)
As a reminder to myself, after this we may want to add a button (a little x inside the textbox?) to clear the filtered text. Additionally we could use a checkbox that'll filter between local only and local + remote modules.

I can confirm commenting that line out fixes the filtered world generators - however, it does seem to be needed, as otherwise you then can't de-select modules :-)
If you enable a bunch of modules, close the screen, then re-open it the modules from earlier are still enabled.

@kartikey0303 are you working on this or can I take it up?

The method I mentioned seemed to work. Cervator told me that he will look into it. Removing that line actually fixed everything..

Oh, right, let me clarify.
Removing moduleConfig.clear(); did correct the issue stated, but it then introduces a different bug: modules can no longer be de-selected (they never get cleared)
We need to figure out and maybe split apart some module-holding collection(s) of some sort. So you can filter in that textbox, but without having its state affect what the main create game screen thinks is available for world generation.
Probably the same collection is being used for the filtering and the world gen scanning. So by filtering you clear out the stuff you need back on the main create game screen. Something like that.

I am still having this issue. I don't know what causes this situation. It's very annoying and forces me to clone source code. Sometimes I see this issue even with a fresh copy.

@RootG This can happen if the project and/or some module have not been built properly. Usually, this can be fixed (when run from source) by creating the project files again (gradlew idea), forcing to compile and build the game, or by force-rebuilding the project from within IntelliJ (or your favorite IDE). The available generators should show up after a restart of the game.

@skaldarnar I get ClassNotFoundException when I try to run game from IntelliJ. "git status" says that it's up-to-date. "gradle", "gradle clean", "gradle idea", "gradle game" any of this commands did not solved the problem. I even tried to remove compiled files/jars that "gradle clean" does not remove.
Exception in thread "main" java.lang.ClassNotFoundException: org.terasology.engine.Terasology
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:264)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:123)

@RootG What worked for me when I faced this issue was running gradlew idea jar and then rebuilding the project from Intellij if gradlew idea jar alone doesn't work. Try and see if it works for you.

Hi @RootG - yep that is a different issue where the workspace goes "stale" in some fashion, or hasn't fully built in the first place. We need to find a better solution for the dependency tree to force all modules to build properly in a source workspace.
Inside IntelliJ you can also force the building of specific modules if you're suspicious of their current state by right clicking their directory (under /modules) then triggering "Recompile module [x]"

@iojw Rebuilding the project from IntelliJ solved the problem. Thank you.


BUG: The Contributing.md has a broken Link

In the Contributing document there is a broken link to the Code-of-Conduct document. This is related to issue #20

This is my miss I will work this.

I was already in and working on that file...  I've got it  👍


Could not retrieve Global Service Principal ID Error: Error: {}

Target SharePoint environment
SharePoint Online
What SharePoint development model, framework, SDK or API is this about?
💥 SharePoint Framework
Developer environment
None
What browser(s) / client(s) have you tested

[ ] 💥 Internet Explorer
[X] 💥 Microsoft Edge
[ ] 💥 Google Chrome
[ ] 💥 FireFox
[ ] 💥 Safari
[ ] mobile (iOS/iPadOS)
[ ] mobile (Android)
[ ] not applicable
[ ] other (enter in the "Additional environment details" area below)

Additional environment details
No response
Describe the bug / error
I uploaded the PnP Search Webpart V4 to my SharePoint App catalog. When attempting to navigate to the API access page I ran into the following error:  Could not retrieve Global Service Principal ID Error: Error: {}

Steps to reproduce

Download PnP Search Webpart v4 zip file
Upload zip file into SharePoint app catalog
Approve request to enable app to be deployed on all sites.

Expected behavior
Should be able to go into the API Access page and either approve or deny requests.

@Rhapsodist777 - is that the first time on the tenant when you're approving permissions?
Are you using Global Admin (not SharePoint Admin) for the operation?
If you go to Azure AD -> Enterprise Applications and remove Application Type as a filter - are you able to find these 2 apps:

SharePoint Online Client Extensibility Web Application Principal
SharePoint Online Client Extensibility Web Application Principal Helper


The changelog is now in 'keep a changelog' format

Mainly because it means we get an unreleased section.his will save maintainers time when releasing lowering the barrier to cut a release which in turn helps out users waiting for fixes/new features. I decided not to change the old entries to the keepachangelog format, simply because it is a lot of work and I do not see an advantage.
I would like to also automate checking if the changelog was edited. Since this would further lower the workload on maintainers. The responsibility of editing the changelog will then squarly fall on the Contributor of the PR. That should give maintainers more time to review PR's.

I'm gonna go ahead and merge this, we can always revert it.


Switch aggregated data on top of the list

Switch aggregated data on top of the list
As the number of operators grow quickly, the aggregated data should be on top of the page to not have to scroll 100 lines to get it

Part of #45


health tracking app: graphic glitch in the widgets bar

I just started the HRM (3 min) and the app shows a loooong bar nevertheless there's no data yet.

After returning to the menu the top of the bar remains in the widgets bar:

Android 11, latest stable firmware, all apps are up to date.

I took a look at the code - Would it make sense to remove the drawWidgets before drawing the bar chart?
https://github.com/espruino/BangleApps/blob/2c9e164a060d92fc751c551922bf34b01f1a5b4d/apps/health/app.js#L104
I'd like to try to make the change:

remove the drawWidgets() calls
update the code to go fullscreen (steps charts also)

What do you think @gfwilliams? :-)

It's a bit harder than just removing the drawWidgets call I'm afraid since even if you clear the screen any event that'd cause a widget to redraw (eg battery going down slightly) would put it back on the screen.
Looks like the graph drawing just needs fixing to not draw past the top of the screen - Maybe it should use Bangle.appRect to get the area it can draw in

Do you just want the bar not to be drawn at all because there is no data or do you want it to draw a long bar in the middle, but not drawing into the widget area?

I have made a pull request for this.

Do you just want the bar not to be drawn at all because there is no data or do you want it to draw a long bar in the middle, but not drawing into the widget area?

Two things:

If there is no data for a day/hour then the app should draw nothing for that day/hour
The app should not draw into the widget area

Thank you :)


updates freecad to 1.0.0

Relates to #14457

[x] I have read the Contributing Guide.

Fixed by #14456.


multiple file upload one by one not working

I am trying to send two images with a single form submit along with other user input. I tried every possible solution that i cloud find and nothing works. It don't work in your Sample provided on the Usage page.

I am sorry for opening the issue. My mistake was that i didn't add the 'ngf-keep' attribute. Everything works perfect now. Thank you for your great work.


Please merge revision #2839653161d6a05e1c27c9b36fcdbbcf05ad2294 into dev channel

@ricowind @whesse @kasperl
This fixes "build mode" of the analyzer CLI so that it can do analysis correctly.  This was inadvertently broken by 1b10de1a86a7869e2177c3e98b5e061d7913b181, which is included in 1.20.0-dev.6.0.
Revision to be merged:<PHONE_NUMBER>d6a05e1c27c9b36fcdbbcf05ad2294
This merged cleanly.

This commit is included in 1.20.0-dev.7.0, a full push to dev.


Suggestion: Option to deboost Fandom in search results

I would like an option to deboost Fandom search results rather than hide them completely. This could maybe be implemented by moving all Fandom results a few pages down. Though, I don't know whether this would be possible client-side in every search engine currently supported.

@PencilVoid Thanks for the suggestion! It's an interesting idea, but it's unfortunately not very practical for this extension to do. It'll be exceedingly difficult to maintain the feature across 7 search engines, especially since some search engines change their presentation by browser/mobile/desktop. Even just hiding results has required periodic fixes and adjustments to work consistently.

This is now sort-of done. IWB, by default, now moves independent wikis above Fandom ones in Google search results (with support for almost all other supported search engines coming soon).


AWS CloudBuild for CI

https://github.com/gkrizek/codebuild-ci-sample

@yifeim can you elaborate what you would like us to do with the CICD pipeline?

I want to run all the python/ipynb scripts once per submit. This simplifies two things:

Since e2e training requires a lot of patience, CICD allows submissions of almost-correct notebooks and let CICD to do the verification.
It should be able to log and detect any regressions in the public demos.
The challenge as I see it is to connect CICD to an aws account where we can bill the costs correctly. @sethiv Where should this be set up? Thanks.


Emotion/Stylis plugins don't work with style props

🐛 Bug Report
When a custom cache is used with xstyled/emotion, the stylisPlugins provided doesn't work with style props, however, it works with the styled(Component)``  format.
To Reproduce
Check this example:
https://codesandbox.io/s/unruffled-darkness-su5js?file=/src/App.js

Notice the first header with an mr prop applies a margin right to the element, while the margin-right style applied to the H component is transformed to margin-left on the rendered element.
Expected behavior
Both style props and styled(Component)``  should use the supplied stylisPlugins; in case of the example provided it should flip the margin right to margin left.

Thanks for reporting it!

Thanks for reporting it!

Fixed in https://github.com/styled-components/stylis-plugin-rtl/releases/tag/2.0.2


CSS not bundling correctly in next.js version 6.0.0-canary.2 like it was in version 5.0.1-canary.17.

[x] I have searched the issues of this repository and believe that this is not a duplicate.

Expected Behavior

We upgraded from version 5.0.1-canary.17 to version 6.0.0-canary.2. This was to fix a problem with pressing the back button whilst using the Safari browser. This problem was fixed but we created another issue with the stylesheets. The stylesheets were previously being bundled together and served correctly, now they're not.
Current Behavior

We initially had this setup in our _document.js page. However, the 'fs' module errored and we found the latest solution here: https://github.com/zeit/next.js/pull/4119
import React from 'react';
import Document, { Head, Main, NextScript } from 'next/document';
import { readFileSync } from 'fs';

const dev = process.env.NODE_ENV !== 'production';

function getStyles() {
  return readFileSync(`${process.cwd()}/src/.next/static/style.css`, {
    encoding: 'utf8',
  });
}

export default class extends Document {
  render() {
    return (
      <html lang="en">
        <Head>
          {dev && (
            <link
              rel="stylesheet"
              href={`/_next/static/style.css?v=${Math.random().toString(32)}`}
            />
          )}
          {!dev && <style dangerouslySetInnerHTML={{ __html: getStyles() }} />}
        </Head>
        <body>
          <Main />
          <NextScript />
        </body>
      </html>
    );
  }
}

We thus changed to the below noted, and removed the fs module causing that error.
import React from 'react';
import Document, { Head, Main, NextScript } from 'next/document';
const dev = process.env.NODE_ENV !== 'production';

export default class extends Document {
  render() {
    const { buildManifest } = this.props;
    const { css } = buildManifest;
    console.log('buildManifest', buildManifest);
    console.log('css', css);

    return (
      <html lang="en">
        <Head>
          {css.map(file => (
            <link rel="stylesheet" href={`/_next/${file}?version=${ Math.random().toString(32)}`} key={file} />
          ))}
        </Head>
        <body>
          <Main />
          <NextScript />
        </body>
      </html>
    );
  }
}

However, we now have a new problem as only some of our styling is being ported over. the log of the css array pulled out of the buildManifest has two CSS paths, we suspect that one is overwriting the other perhaps instead of being bundled together.
 css: [ 'static/style.css', 'static/style.css' ],
  'main.js': [ 'static/commons/main.js' ],
  'bundles/pages/_document.js': [ 'bundles/pages/_document.js' ],
  'bundles/pages/_error.js': [ 'bundles/pages/_error.js' ],
  'bundles/pages/_app.js': [ 'bundles/pages/_app.js' ],
  'manifest.js': [ 'static/commons/manifest.js' ],
  'bundles/pages/cm/templates/homepage.js': [ 'bundles/pages/cm/templates/homepage.js' ],
  'bundles/pages/cm/templates/news.js': [ 'bundles/pages/cm/templates/news.js' ] }

Steps to Reproduce (for bugs)

To reproduce the issue, I've set up a very simple example at this repo: https://github.com/Rusticman/test-next

Pull in code
run npm install
run npm run dev
available at localhost:3000
There are only two paths; / (root url)  & /news. They should have the same styling. homepage styling pulls through initially, but then fails to bundle on subsequent navigation to and from homepage.

If you run npm run build & npm run start the homepage styling never appears.
Context

This issue has stopped us from adopting the latest version of next.
Your Environment

Tech
Version

next
6.0.0-canary.2

node
9.5.0

OS
MacOS Sierra 10.12.6

browser
Google Chrome   v65

etc

Hello, we're facing a very similar issue here.
To inject some styles inside the generated pages :

we provide our own _document.js
we import fs
we readFileSync the css file
we inject the string in a

Looks like an issue with ExtractTextPlugin.

Try hacking the filename config in node_modules/@zeit/next-plugins/next-{css,sass}/index.js:
filename: 'static/[content-hash].css',

i have similar issue, after bundling, css gone. it's normal when developing. forcing me to downgrade to 5.1 which can't take benefit of _app.js. can everybody give out solution of this.


How to check which test case passed and which got failed?

I am having several test cases in a dart file, when I run the tests,

I just get this, is it possible to show the names of test that passed or failed?

Like which 3 case passed and which one got failed.

Hi @Gaurav-CareMonitor,
Unfortunately, this is not possible currently, but we're aware of the problem. Can't give you any exact dates though.


allow for tuning of the number of worker threads

I'd probably have it fail if threads aren't specified vs having a default. I see no case where we'd want it to simply just kick off 30 processes and indeed the more likely case is we're gonna run it with >= 90 workers as part of end of semester archival. The other alternative which might make sense is for it to base the default on the number of cpus reported from the system. For example (number of cpus - 4) with a minimum value of 1. So like we only have 2 cpus now, so it'd default to 1. If we had 8, it might default to 4, and if we had 96 it'd default to 92. However, the most straightforward and easy thing to do IMO is just require an integer > 0 to be specified and fail with help text printed to stderr if it isn't. :P

how about i have the default be 1...  i don't see the need really for it to fail if it's not defined.


CHANGES.md not updated & minimal release notes despite breaking changes

The 2.1.0 release renamed TransactionApi to TransactionsAPI (making it plural) but there are zero notices about this. That class's charge() method also removed the first argument. This seems like the most important method in the entire SDK, but the Releases entry is blank.
Please, please, at the very least update CHANGES.md with at least breaking changes, even if they're due to changes in the endpoint (as this breaking change was), or delete the file if it isn't going to be maintained.

Exactly! Based on Semantic Versioning, there should be no backwards incompatible changes in a minor version.

MAJOR version when you make incompatible API changes,
MINOR version when you add functionality in a backwards-compatible manner, and
PATCH version when you make backwards-compatible bug fixes.

We use the API version for the MAJOR version. Because our latest API is Connect V2, so we use 2 for MAJOR version.
2.1.0 release was exception, the API grouping was updated on the API side, so the generated SDK was also updated with new namespaces. But we totally understand this is a breaking change, and it won't happen in future without explicit early announcement.


remove legacy  tm domain  features from contigs

advanced search
protein feature: transmembrane domain vs number of tm domains
949  tm_domain_count(1..30)
464  transmembrane_helix (SO:0001812)

Since there are only 7 additional annotations from the legacy manual curation, and it is not clear if these are correct
I think we should just remove these annotation from the contigs:
FT                   /controlled_curation="term=sequence feature, transmembrane
FT                   helices; cv=sequence_feature; date=19700101"

I think we should just remove these annotation from the contigs:
FT /controlled_curation="term=sequence feature, transmembrane
FT helices; cv=sequence_feature; date=19700101"

So all "transmembrane helices" or just the ones with that date?

all "transmembrane helices" , they are covered

I think we should just remove these annotation from the contigs:

That's done now.


Make sure there is no system-wide uv.h in Travis during the headers test

...to ensure that #include <uv.h> succeeds only if the uv.h installed by Luv is visible.

This error confirms there is no system-wide uv.h.

This error confirms there is no system-wide uv.h.


Add ADR for using GOV.UK Organisation API

What
Document the decision to use the GOV.UK organisation API. See ADR018 and ticket https://trello.com/c/kKEiA0Bq for details.
How to review

Semantic: Do you agree with the changes?
Syntactic: Spelling, grammar, etc.

Who can review

Product manager
Tech architect
Developers
Content designer
Tech writer

I can see the benefit of this in that we keep the organisations to some official list. I can see that also presenting a limitation in  how services might be able to use Forms which may or may not be a problem. On Pay for example, we had multiple accounts from the same government service/council to represent how they saw things internally. I believe our authorisation is based upon Org (and the users role). So if multiple teams within say HMRC (for which there is one org listed but is a very large organisation) wanted to maintain separate forms/permissions based upon the internal structure of HMRC can that be done e.g. "HMRC team 1" and "HMRC team 2" or do we not see that as a user need?

I can see the benefit of this in that we keep the organisations to some official list. I can see that also presenting a limitation in how services might be able to use Forms which may or may not be a problem. On Pay for example, we had multiple accounts from the same government service/council to represent how they saw things internally. I believe our authorisation is based upon Org (and the users role). So if multiple teams within say HMRC (for which there is one org listed but is a very large organisation) wanted to maintain separate forms/permissions based upon the internal structure of HMRC can that be done e.g. "HMRC team 1" and "HMRC team 2" or do we not see that as a user need?

Great point. We've discussed this with product peeps, we're currently thinking that having teams that are at sub-organisation level will be further down the line, maybe after public beta. It would definitely need a lot more work.
My main thinking from a technical point of view are that the approach in this ADR doesn't necessarily stop us from having organisations that aren't in the GOV.UK list in the database, or even in the same table; as long as we're making sure to keep the content ID reserved for organisations that are known to GOV.UK, and have some method for avoiding clashes with slugs. There will obviously be a great deal many other considerations for our models about how users are assigned to teams, how the hierarchy is expressed, etc., but as we don't support those things currently anyway I feel like it's fine to leave those considerations for later.

Looks very clear and great to me. The only bit I have a comment in is this:

When users come to us asking for their organisation name to be changed, we will have to liaise with publishers who have access to Whitehall Admin.

I think for government organisations, we ought to be asking them to go through their GOV.UK publishing team and GOV.UK content team to do this as normal - without our involvement. And then we would respond to the change in the relevant way once it's been made in the API? I think this is good as it means the API remains the source of truth and we don't interfere with the process for maintaining and updating it.

Looks good to me, thanks!

Looks very clear and great to me. The only bit I have a comment in is this:

When users come to us asking for their organisation name to be changed, we will have to liaise with publishers who have access to Whitehall Admin.

I think for government organisations, we ought to be asking them to go through their GOV.UK publishing team and GOV.UK content team to do this as normal - without our involvement. And then we would respond to the change in the relevant way once it's been made in the API? I think this is good as it means the API remains the source of truth and we don't interfere with the process for maintaining and updating it.

Makes sense @hannahkc. If I update that line to read

When users come to us asking for their organisation name to be changed, we will have to tell them to talk to publishers in their organisation who have access to Whitehall Admin or to the GOV.UK content team.

does that better express what you'd expect?


ssl_mutual_auth_ Error : MQTT_EVENT_DISCONNECTED (IDFGH-1327)

Hi
I am trying the example ssl_mutual_auth under esp-idf.
I followed the redme file for creating certificate and key. It is compiled without any error and i flashed.
After i am checking the serial monitor and it is giving the following error.
esp-tls: mbedtls_ssl_handshake returned -0x7280
esp-tls: Failed to open new connection
TRANS_SSL: Failed to open a new connection
MQTT_CLIENT: Error transport connect
MQTTS_EXAMPLE: MQTT_EVENT_DISCONNECTED
Here is my complete Log :
ets Jun  8 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371
ets Jun  8 2016 00:22:57
rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:6316
load:0x40078000,len:11304
load:0x40080400,len:6700
entry 0x40080764
I (29) boot: ESP-IDF v4.0-dev-621-g81ca1c013-dirty 2nd stage bootloader
I (29) boot: compile time 13:31:48
I (30) boot: Enabling RNG early entropy source...
I (36) boot: SPI Speed      : 40MHz
I (40) boot: SPI Mode       : DIO
I (44) boot: SPI Flash Size : 4MB
I (48) boot: Partition Table:
I (51) boot: ## Label            Usage          Type ST Offset   Length
I (59) boot:  0 nvs              WiFi data        01 02 00009000 00006000
I (66) boot:  1 phy_init         RF data          01 01 0000f000 00001000
I (74) boot:  2 factory          factory app      00 00 00010000 00100000
I (81) boot: End of partition table
I (85) esp_image: segment 0: paddr=0x00010020 vaddr=0x3f400020 size=0x1fba0 (129952) map
I (140) esp_image: segment 1: paddr=0x0002fbc8 vaddr=0x3ffb0000 size=0x00448 (  1096) load
I (140) esp_image: segment 2: paddr=0x00030018 vaddr=0x400d0018 size=0x87b10 (555792) map
I (341) esp_image: segment 3: paddr=0x000b7b30 vaddr=0x3ffb0448 size=0x02c0c ( 11276) load
I (346) esp_image: segment 4: paddr=0x000ba744 vaddr=0x40080000 size=0x00400 (  1024) load
I (348) esp_image: segment 5: paddr=0x000bab4c vaddr=0x40080400 size=0x0f8e4 ( 63716) load
I (392) boot: Loaded app from partition at offset 0x10000
I (393) boot: Disabling RNG early entropy source...
I (393) cpu_start: Pro cpu up.
I (397) cpu_start: Application information:
I (401) cpu_start: Project name:     mqtt_ssl_mutual_auth
I (408) cpu_start: App version:      v4.0-dev-621-g81ca1c013-dirty
I (414) cpu_start: Compile time:     Jun 11 2019 13:31:58
I (420) cpu_start: ELF file SHA256:  37f330ba8e2ef8e0...
I (426) cpu_start: ESP-IDF:          v4.0-dev-621-g81ca1c013-dirty
I (433) cpu_start: Starting app cpu, entry point is 0x40081058
I (0) cpu_start: App cpu up.
I (444) heap_init: Initializing. RAM available for dynamic allocation:
I (451) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
I (457) heap_init: At 3FFB9168 len 00026E98 (155 KiB): DRAM
I (463) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (469) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (476) heap_init: At 4008FCE4 len 0001031C (64 KiB): IRAM
I (482) cpu_start: Pro cpu start user code
I (164) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
I (166) MQTTS_EXAMPLE: [APP] Startup..
I (166) MQTTS_EXAMPLE: [APP] Free memory: 273184 bytes
I (166) MQTTS_EXAMPLE: [APP] IDF version: v4.0-dev-621-g81ca1c013-dirty
I (216) wifi: wifi driver task: 3ffc0be4, prio:23, stack:3584, core=0
I (216) wifi: wifi firmware version: a13dcc4
I (216) wifi: config NVS flash: enabled
I (216) wifi: config nano formating: disabled
I (216) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE
I (226) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE
I (256) wifi: Init dynamic tx buffer num: 32
I (256) wifi: Init data frame dynamic rx buffer num: 32
I (256) wifi: Init management frame dynamic rx buffer num: 32
I (266) wifi: Init management short buffer num: 32
I (266) wifi: Init static rx buffer size: 1600
I (266) wifi: Init static rx buffer num: 10
I (276) wifi: Init dynamic rx buffer num: 32
I (276) example_connect: Connecting to Uchi_Babu...
I (366) phy: phy_version: 4100, 2a5dd04, Jan 23 2019, 21:00:07, 0, 0
I (366) wifi: mode : sta (30:ae:a4:10:91:24)
I (496) wifi: new:<1,0>, old:<1,0>, ap:<255,255>, sta:<1,0>, prof:1
I (1476) wifi: state: init -> auth (b0)
I (1476) wifi: state: auth -> assoc (0)
I (1486) wifi: state: assoc -> run (10)
I (1526) wifi: connected with Uchi_Babu, channel 1, bssid = b0:4e:26:03:37:1f
I (1526) wifi: pm start, type: 1
I (3706) tcpip_adapter: sta ip: <IP_ADDRESS>, mask: <IP_ADDRESS>, gw: <IP_ADDRESS>
I (3706) example_connect: Connected to Uchi_Babu
I (3706) example_connect: IPv4 address: <IP_ADDRESS>
I (3716) example_connect: IPv6 address: fe80:0000:0000:0000:32ae:a4ff:fe10:9124
I (3726) MQTTS_EXAMPLE: [APP] Free memory: 236736 bytes
I (3726) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE
I (3736) MQTTS_EXAMPLE: Other event id:7
E (4106) esp-tls: mbedtls_ssl_handshake returned -0x7280
E (4116) esp-tls: Failed to open new connection
E (4116) TRANS_SSL: Failed to open a new connection
E (4116) MQTT_CLIENT: Error transport connect
I (4116) MQTTS_EXAMPLE: MQTT_EVENT_DISCONNECTED

Hi @Yuvaraj4041
I noticed you've already close the issue, so I assume connection to the public broker has started working.  Let me just reference another issue https://github.com/espressif/esp-idf/issues/3120#issuecomment-472180191, where explaining about setting up a local broker and configuring for client verification -- as this should work independently on test.eclipse.org

Hi @david-cermak
Thanks for your suggestion.
I am able to connect with broker. My problem is when i am downloading certificate file from mosquitto it is saving ".txt" format not ".cert" format. After solving (Converting to .cert format) this issue it is working fine.


[az] Azerbaijani locale added

Do I need to change something else for new locale?

@mastizada thank you!


Minor python packages updates

@todd-dembrey are these three packages used anywhere?

ConcurrentLogHandler
uwsgidecorators
Werkzeug

Werkzeug
Used for runserver_plus from django_extensions: https://django-extensions.readthedocs.io/en/latest/runserver_plus.html
Dev requirement if you want to keep it.
uwsgidecorartors
Can be removed
ConcurrentLogHandler
Can be removed

Latest version of factory_boy, 2.11.1, generates many errors:
TypeError: unroll_context() missing 1 required positional argument: ’self'

Reverting to version 2.9.2 make it work again.

@todd-dembrey How do you handel this?
The psycopg2 wheel package will be renamed from release 2.8; in order to keep installing from binary please use "pip install psycopg2-binary" instead. For details see: <http://initd.org/psycopg/docs/install.html#binary-install-from-pypi>.

Having issues updating to django-filter 2.x. The /submissions pages no longer works. Can't seem to find what changes are need to fix this.
https://django-filter.readthedocs.io/en/master/guide/migration.html#migrating-to-2-0

@frjo could the https://django-filter.readthedocs.io/en/master/guide/migration.html#filter-name-renamed-to-filter-field-name-792 change be the issue in [SubmissionFilter](https://github.com/OpenTechFund/opentech.fund/blob/master/opentech/apply/funds/tables.py#L130] ?

Good catch! Added it now.

Reverted the Django-tables2 2.x  update, too many issue for this PR.


Object.setter macro iterates over names twice

See the macro definition here. There seem to be two (nested) iterations over the names.
I guess there's no real purpose, or am I missing something? The getter/getter!/getter? macros don't do this.

I... I just wanted to be sure the generated setters were truly generated 😊
Thanks for the catch! This was probably a copy-paste bug.

Hehe, it happens :)


Oauth2 authorization header not passed with httpx==0.18.2

Describe the bug
httpx recently put out a new release which appears to break passing of the authorization header.
Error Stacks
When running on httpx==0.18.11 and inserting the following code into integrations/httpx_client/oauth2_client.py (link):
def log_request(request):
    print('Request header authorization:', request.headers.get('authorization'))
client_kwargs['event_hooks'] = {'request': [log_request]}

Running my code yields Request header authorization: Bearer XYZ
Meanwhile when upgrading to httpx==0.18.2, I get Request header authorization: None
When this request is passed to the API under test (in this case, the TDAmeritrade API), we see:
{
        "error":"The API key in request query param is either null or blank or invalid."
}

To Reproduce
Unfortunately, generating a self-contained test case against this API is somewhat tricky because it requires you to create a financially sensitive trading application, but on off chance that some readers here are users here is the code I used to make this happen within the tda-api library:
https://github.com/alexgolec/tda-api/blob/master/functional_tests.py
Expected behavior
Authorization headers are passed, request succeeds
Environment:

OS: Mac OS 11.2.2
Python Version: 3.9.2
Authlib Version: 0.15.4

Additional context
N/A

Note while my intuition tells me this is likely an authlib issue, I have to do additional digging to figure things out for sure. I've opened a discussion on the httpx side as well:
https://github.com/encode/httpx/discussions/1700

master code has already fixed this problem.

https://github.com/lepture/authlib/issues/357
https://github.com/lepture/authlib/commit/40276708374fcc7c0ee6b1ce4955dbe7db82f5ba

Nice, thanks for the quick response! Is there a timeline for when this fix will be release? I see there's a 1.0.0a prerelease candidate in flight, are you planning on releasing this with 1.0.0?

@lepture, any update on when this might be released? I'm running into this exact issue here

This is updated in the most recent version. Please upgrade to 1.3.5 and
tell me if it’s still happening. Note the  workaround is to force an
earlier version, so it’s not strictly speaking fixed.
On Tue, Jul 20 2021 at 8:54 PM, Nathan Spencer @.***>
wrote:

@lepture https://github.com/lepture, any update on when this might be
released? I'm running into this exact issue here
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/lepture/authlib/issues/358#issuecomment-883802996,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGSYSEMVONSFHDR62U4ETUTTYYLFJANCNFSM47ACY5EA
.

This is updated in the most recent version. Please upgrade to 1.3.5 and tell me if it’s still happening. Note the workaround is to force an earlier version, so it’s not strictly speaking fixed.
…
On Tue, Jul 20 2021 at 8:54 PM, Nathan Spencer @.***> wrote: @lepture https://github.com/lepture, any update on when this might be released? I'm running into this exact issue here — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub <#358 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AGSYSEMVONSFHDR62U4ETUTTYYLFJANCNFSM47ACY5EA .

I don't see a version 1.3.5
The other issue I'm having is that I've developed a package that uses Authlib for use with HomeAssistant that is pinned to httpx version 0.18.2. So until a release of Authlib with the fix, my dependency is broken.


HI,
i'm now using bake for a big site project and i'm very pleased with your plugin. I use it in a specific way that allow me to have real semantic html files as input (partial) and real semantic html files as output.
I've got component files that are included in module files that are included in layout files. Every files are semantic and can be viewed in a browser as real html files. I'm using the IF statement to remove <!doctype> when the files are included and to let the <!doctype> when the files are just baked.
 . It's not a good usage but it work and all my files, src, output, baked, include, are semantic files and can be view in a browser as standalone files or included in another semantic file
I'm thinking that a <!doctype> could be a great feature to add to your plugin.
With this, it would be the only htlm recursive builder that could take semantic html files as input and deliver real semantic htlm file as output, included or baked. The purpose is to have an html builder that use html file syntax.
I've tried to make this possible but i'm an html/css guy not a javascript one :).
I hope i've been understandable ;).
thanks again for your great work on bake :).

As I am reviewing some older issues. This has been open for a long time and not approved upon. I think I will close this feature task until it comes up again. I haven't heard of another person needing it.
Thanks everyone! If anyone is still in need for this, I am more than willing to revisit this.


Change mode parameter of NamedTemporaryFile from default 'w+b' to 'w' in _get_env_and_upload

Description
Running awsbsub with --env flag I obtain:
$ awsbsub --cluster my-cluster --env all -if my-script.sh
Error creating environment file. Failed with exception: a bytes-like object is required, not 'str'

I experience this error on a AL2 and a CentOs 7 instance. The error is not present on my Ubuntu 18.04 laptop.
Changing the default mode='w+b' to mode='w' solved the issue.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Overwriting codecov check. Unit tests will be added separately in the future by pcluster team


Update golangci-lint v1.35.2 -> v1.37.0

as title

@jolheiser see discord #maintainer chat ... - we have more and more issues in CI with golangci-lint and this looks like it fix it

I'd like pre install it in test-env also.

@a1012112796 think this is worth it's own pull ... merge this fast so CI passes more often again ...


Backport "Make eraseInfo work for classes with EmptyScopes" to LTS

Backports #19550 to the LTS branch.
PR submitted by the release tooling.
[skip ci]

No regressions detected in the community build up to lts-19605.
Reference


Failed to parse extern function without argument name

Hey! I'm trying to bind against xlib, and when I'm done cutting out all the macros and other irrelevant stuff, I get stuck on
[bindgen] Error:  Expected identifier but found *.
[bindgen] ... from  parse_type
[bindgen] ... at line  1376  within this context:
>      _Xconst char*	/* name */

Which comes from extern declarations like
extern XFontStruct *XLoadQueryFont(
    Display*		/* display */,
    _Xconst char*	/* name */
);

Seems like the bindings generator can't process function definition if only the type is defined? Am I doing something wrong?

Hey!
extern XFontStruct *XLoadQueryFont(
    Display*		/* display */,
    const char*	/* name */
);

is parsed fine. I guess it's because of the _Xconst you have there. As we don't understand macros, the _Xconst is believed to be a identifier.
I suggest you to run the preprocessor of gcc to resolve those beforehand.
cat xlib.h | grep -v "#include " | gcc -E - -o - | grep -v "# " > zlib-preprocessed.h

Oh you're right, I've been cutting down macros by hand to understand headers better, but for some reason this one went completely over my head. Thanks!


Added support for scsi commands with no data.

Currently there is only support for scsi commands that either send or receive data, but some commands do not send or receive any data. I added support for these "no data" commands. A common example is the "Test Unit Ready" scsi comand, which is 6 bytes of all 00. The result of this command is gotten from the sense data bytes.
https://docs.oracle.com/en/storage/tape-storage/sl4000/slksr/test-unit-ready-00h.html
I succesfully tested the windows version of these changes but did not test the linux version.
Since no data is sent I would expect to pass "None" for the "data" parameter in the SCSIDevice::issue_command() methods. So I added checks for None and create an empty data buffer inside the method. I wasn't sure if I should add "None" in the parameter specification here: "data: Union[ctypes.Array, ctypes.Structure],"

Looks good :+1: , changes work fine on Linux. I need to start putting together a manual test set for each platform and interface pair.


Add action to move caret by word

Would it be possible to add a keybinding option to move caret by word? i.e. Take the existing editor.action.moveCarret bindings and expand them to move by word like the cursorWord actions? It would be nice to be able to move selections left/right along a line more than one character at a time.

PR welcome

move selections up/down in editor.action.moveCarret  would be nice,too


MudDrawer: Fix issue where non-responsive drawers would be controlled by their breakpoint

Description
Not setting a breakpoint with a Temporary drawer as auto-open (_open being true on initial render) should still open on smaller devices. In a larger window this opens automatically, but when scaled down. It doesn't actually open, due to the immediate response from ViewportService.
Possible work-arounds:
Setting the breakpoint parameter on drawer to something like Breakpoint.Xs does give expected result but does feel like a weird problem since the breakpoint parameter is documented to only be related to resposive drawers.
Other solutions considered:
Setting breakpoint to Breakpoint.Always but then _open isnt respected (So having it NOT auto open doesnt work. It always opens). Another solution that might have been possible is Breakpoint.None, but then we are back at not respecting _open for auto-opening.
A short example with some notes in TryMudblazor (https://try.mudblazor.com/snippet/caGobEGTREtbcRBn)
How Has This Been Tested?
A new unit test has been added, which checks to make sure that for all the breakpoints returned from Viewport service, the initial state set in the drawer is kept, if the drawer is not response/mini.
Type of Changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation (fix or improvement to the website or code docs)

Checklist

[x] The PR is submitted to the correct branch (dev).
[x] My code follows the code style of this project.
[x] I've added relevant tests.

Actually not sure if this is a breaking change. This is how I would expect it to work when not responsive. But could be a change for someone that expects the Breakpoints to control their non-response drawer?

For me the docs about temporary drawers are unclear. It being above all other content is clear.

Temporary Drawers can be opened temporarily above all other content until a section is selected, or until the overlay is clicked if OverlayAutoClose is set to true.

Then later in the docs of other drawers the word temporarily is used to describe responsive behavior, meaning auto opening / closing based on breakpoint.
So I am not sure if it is correct to completely remove breakpoint update notification from temporary drawers. Or am I getting it all wrong?

Then later in the docs of other drawers the word temporarily is used to describe responsive behavior, meaning auto opening / closing based on breakpoint.
So I am not sure if it is correct to completely remove breakpoint update notification from temporary drawers. Or am I getting it all wrong?

Honestly, for clarification, we would need @tungi52, but I don't think we’ll get a reply. I refactored most of the drawer, but I never figured out how the Temporary drawer is actually supposed to work, so the logic for that part was left untouched. From what I can see in the issues, people do not expect Temporary and Persistent to depend on breakpoints at all, because otherwise, you will have poor control over it with the Open property.

I see. I guess we should then clarify this in the documentation. Merging this in v8 is perfect, we can clarify in the migration guide that the behavior of the Temporary Drawer has now been officially defined to be non-responsive.
@Nickztar can you update the documentation in this PR so it is perfectly clear? Then we can merge.

If anyone wants it to be responsive we can always add another parameter to MudDrawer, i.e. bool Responsive that enables or disables responsiveness according to breakpoint settings.

Sounds good. I will try to add some documentation to make it clearer to users what and what isn't responsive.
Adding a Responsive parameter would be very simple aswell since the check for using the breakpoints is the same method for initial rendering as it is for changes. 👍🏼

@henon Guess this clarifies it a bit. Let me know if you have any ideas on other parts where it can be clarified.

@Nickztar Check it out, I modified the text of all drawer variants.

Looks great. Much clearer how the other types work aswell!

LGTM, @henon feel free to merge.

Thanks @Nickztar!

Added to the v8 migration guide at https://github.com/MudBlazor/MudBlazor/issues/9953


DRILL-6512:Remove unnecessary processing overhead from RecordBatchSizer

Idea is to not computing everything by default. Do only the minimum work needed in the constructor and provide methods to get different metrics as needed.
@ilooner please review.

Thanks @ppadma ! These change eliminate quite a bit of useless computation. Is there any need/plan to allow concurrent access to the RecordBatchSizer in the future? With these changes, access to the RecordBatchSizer will have more synchronization points for concurrent access. Earlier, ouputRowCount was the only field that was mutated after creating a RecordBatch object. Now many more fields are being changed.  I just wanted to raise that one point. Otherwise, LGTM +1

@bitblender thanks Karthik. RecordBatchSizer is being created by each operator when they get a new batch. I don't see any need for concurrent access, atleast in the near future.


Transaction not showing in Checking account.

-I have upgraded staging app from 1.4.4(226) >1.4.5(227)> v1.4.5(228)>1.4.5(230).
-Also having upgarded live app from 1.4.4(226) to latest 1.4.5(230).
-Both the apps(staging and live) are connected to own node.
-I tried to send some sats to the another Hexa account.I have a confirmation that the sats was sent, but it still hasn’t recorded in my account.
-I also tried to send to the savings account (within the app).but again I got the confirmation but it did not appear in the txn list.
-The overall balance is also not decreasing.
-In between these upgrades I did a restore and I also tested the node settings myself.
-And now my sats are stuck.I can do a whole send procedure but it doesn't showing that txn in transaction list.

Seems to be connected w/ the following issue: https://github.com/bithyve/hexa/issues/2772

-Verified this issue on staging app v1.5.0(260)


Should we be using dotenvx or dotenv-vault?

Hi,
thanks for all the awesome work with dotenv!
I just recently started using dotenv-vault, as I saw it recommended on the dotenv npm package. But now I realized that there is also dotenvx, and it seems to me like it is supposed to be the newer, better solution, a succession to dotenv-vault? Is this correct, should I be using dotenvx instead?
I just started so I can easily switch, but will probably be putting quite few more projects on it + probably recommending it as a default method for https://wasp-lang.dev/, so I wouldn't want to go all in on dotenv-vault if it is deprecated.
Thanks!

wasp-lang looks great! (I'm a longtime user of Rails and it does a lot of things right, things still missing from the node community)
yes, switch to dotenvx.

it is replacing dotenv and works the same everywhere
it maintains all the initial benefits of dotenv-vault without requiring a 3rd party cloud service to be up and running. (it's just cli tooling to generate .env files and corresponding private/public key pairs)

Thanks, we are working hard on it, and quite excited about the future! Indeed, RoR has that unique DX that people love and is a big inspiration.
Awesome, we will switch to dotenvx. I guess you have probably thought of putting some kind of banner or notice on dotenv-vault webpage/repo to send people over to dotenvx, but didn't have time yet to get to it? I think it would help in my case, I was actively looking for such notice once I figure out there are two but couldn't find one which made me ask the question to clear the air.

putting some kind of banner or notice on dotenv-vault webpage/repo to send people over to dotenvx, but didn't have time yet to get to it

yes, mostly this.
i'm very aware the offering is confusing right now, but we're not quite there to providing a migration path. dotenvx is almost ready for 1.0.0 and then we'll go hard into providing a migration path from dotenv-vault to dotenvx.
with that, we have to build some opt-in team features. dotenv-vault has pretty good team features and dotenvx currently has none. until then, we're recommending you manage dotenvx private keys with 1password or something similar.

Got it! Yeah, team features are certainly valuable, it is in big part what I liked about dotenv-vault, that I just add team members on it, they can authenticate, and it all works.
Sounds good, looking forward to it, and thanks again for quick response!


Styled-components does not bundle with my library when I ship it to npm

Current Behavior

So I built a library and published it to npm using tsdx(react,typescript and storybook) + styled-components. After building the library I published it to npm via np and it was a success. But the issue is when I install that npm package which I published to npm(flashcardui) into another application I get this error
`ERROR in ./node_modules/flashcardui/dist/flashcardui.esm.js 2:0-54
Module not found: Error: Can't resolve 'styled-components' in 'C:\Users\user-name\my-application-name\node_modules\flashcardui\dist'`
Suggested solution(s)

I was able to solve this issue by
run "npm i styled-components" in my terminal and then "npm start" OR delete package-lock.json and node_modules, after that run "npm install"
But I think there's a better solution for this issue because you should not always install this package alongside styled-components. That's not the best
Additional context

Your environment
"devDependencies": {     "@babel/core": "^7.18.5",     "@mdx-js/react": "^2.1.2",     "@size-limit/preset-small-lib": "^7.0.8",     "@storybook/addon-a11y": "^6.5.9",     "@storybook/addon-essentials": "^6.5.9",     "@storybook/addon-info": "^5.3.21",     "@storybook/addon-links": "^6.5.9",     "@storybook/addons": "^6.5.9",     "@storybook/builder-webpack5": "^6.5.9",     "@storybook/manager-webpack5": "^6.5.9",     "@storybook/mdx2-csf": "^0.0.3",     "@storybook/react": "^6.5.9",     "@types/jest": "^28.1.3",     "@types/react": "^18.0.14",     "@types/react-dom": "^18.0.5",     "@types/styled-components": "^5.1.25",     "babel-loader": "^8.2.5",     "chromatic": "^6.6.4",     "husky": "^8.0.1",     "jest": "^28.1.1",     "react": "^18.2.0",     "react-dom": "^18.2.0",     "react-is": "^18.2.0",     "size-limit": "^7.0.8",     "storybook-dark-mode": "^1.1.0",     "styled-components": "^5.3.5",     "tsdx": "^0.14.1",     "tslib": "^2.4.0",     "typescript": "^4.7.4"   },
To be able to get this issue, run

npm install flashcardui
npm start

Found this on Styled-Components. I guess it answers my question :
https://styled-components.com/docs/faqs#i-am-a-library-author-should-i-bundle-styledcomponents-with-my-library


week editor error or smth

What is your question?
so i was trying to compile the engine and then this error showed up:
source/editors/WeekEditorState.hx:660: characters 51-59 : For optional function argument 'TransIn' source/editors/WeekEditorState.hx:667: characters 20-28 : Class<editors.WeekEditorState> has no field saveWeek source/editors/WeekEditorState.hx:791: characters 22-32 : Class<editors.WeekEditorState> has no field loadedWeek source/editors/WeekEditorState.hx:795: characters 75-85 : Class<editors.WeekEditorState> has no field loadedWeek source/editors/WeekEditorState.hx:796: characters 20-30 : Class<editors.WeekEditorState> has no field loadedWeek
is something wrong? i didn't edit the week editor file.
any answer is appreciated, thanks

ok i made a stupid code that didn't work oops


Info widget about added jars

(Groovy kernel, Jupyter Notebook, Ubuntu)

expected result:

Hi @EfimovVladimir
this problem was fixed here, please update master branch for beakerx_kernel_base and test it.

merged please verify


KeyError: 'Sampler is not in the sampler registry' when using SemiBalanceSampler in Configuration

Environment:
MMCV Version: 1.3.16
MMDet Version: 2.16.0
Python Version: 3.8
Issue Details:
I am encountering an issue when trying to use a custom sampler SemiBalanceSampler in my configuration file detr_ssod_dino_detr_r50_coco_120k.py. The relevant part of the configuration is as follows:
sampler=dict(
train=dict(
type='SemiBalanceSampler',
sample_ratio=[1, 4],
by_prob=True,
epoch_length=7330)
)
When I run the training script, I get the following error:
2023-09-05 11:48:39,111 - mmdet.detr_ssod - INFO - initialize ResNet with init_cfg {'type': 'Pretrained', 'checkpoint': 'torchvision://resnet50'}
2023-09-05 11:48:39,111 - mmcv - INFO - load model from: torchvision://resnet50
2023-09-05 11:48:39,111 - mmcv - INFO - Use load_from_torchvision loader
2023-09-05 11:48:39,192 - mmcv - WARNING - The model and loaded state dict do not match exactly
unexpected key in source state_dict: fc.weight, fc.bias
loading annotations into memory...
Done (t=0.02s)
creating index...
index created!
loading annotations into memory...
Done (t=0.02s)
creating index...
index created!
fatal: not a git repository (or any parent up to mount point /root)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
Traceback (most recent call last):
File "tools/train_detr_ssod.py", line 201, in
main()
File "tools/train_detr_ssod.py", line 189, in main
train_detector(
File "/root/autodl-tmp/Semi-DETR-main/detr_ssod/apis/train.py", line 69, in train_detector
data_loaders = [
File "/root/autodl-tmp/Semi-DETR-main/detr_ssod/apis/train.py", line 70, in
build_dataloader(
File "/root/autodl-tmp/Semi-DETR-main/detr_ssod/datasets/builder.py", line 68, in build_dataloader
build_sampler(sampler_cfg, default_args=default_sampler_cfg)
File "/root/autodl-tmp/Semi-DETR-main/detr_ssod/datasets/builder.py", line 40, in build_sampler
return build_from_cfg(cfg, SAMPLERS, default_args)
File "/root/miniconda3/lib/python3.8/site-packages/mmcv/utils/registry.py", line 44, in build_from_cfg
raise KeyError(
KeyError: 'Sampler is not in the sampler registry'

Thanks for your attention. The issue you're encountering arises from running our code with a single GPU, which leads to the utilization of the missing 'Sampler.' To address this, it is essential to execute our code with multiple GPUs, such as using 8 GPUs as an example. This multi-GPU configuration will resolve the problem you've encountered.


deb: reinforce test with systemd

Add tests for migration from v4 and update to the future version.

Hmm, $ vagrant snapshot restore doesn't work on GitHub Actions...
It works on my local Ubuntu Focal.
https://github.com/fluent/fluent-package-builder/actions/runs/5238249275
$ vagrant snapshot save -f debian-bullseye after-setup
==> debian-bullseye: Snapshotting the machine as 'after-setup'...
==> debian-bullseye: Snapshot saved! You can restore the snapshot at any time by
==> debian-bullseye: using `vagrant snapshot restore`. You can delete it using
==> debian-bullseye: `vagrant snapshot delete`.

$ vagrant snapshot restore debian-bullseye after-setup
==> debian-bullseye: Forcing shutdown of VM...
==> debian-bullseye: Restoring the snapshot 'after-setup'...

Progress: 0%
Progress: 90%
==> debian-bullseye: Checking if box 'bento/debian-11' version '202303.13.0' is up to date...
==> debian-bullseye: Resuming suspended VM...
==> debian-bullseye: Booting VM...
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["startvm", "4099f22d-a3b5-4c56-8d80-bf17b78bd8a8", "--type", "headless"]

Stderr: VBoxManage: error: ahci#0: The target VM is missing a device on port 0. Please make sure the source and target VMs have compatible storage configurations [ver=9 pass=final] (VERR_SSM_LOAD_CONFIG_MISMATCH)
VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component ConsoleWrap, interface IConsole

Hmm, $ vagrant snapshot restore doesn't work on GitHub Actions...
It works on my local Ubuntu Focal.

I gave up using snapshot for now.

It is expected that 3 tests of the deb package fail at this point.
These tests should succeed with #489.

I have commented out the tests that are not expected to succeed at this point.
Those commenting out will be canceled in future fixes (such as #489) and will succeed.

dpkg-deb -R /vagrant/debian/pool/bullseye/main/f/fluent-package/fluent-package_5.0.0-1_amd64.deb /vagrant/debian/pool/bullseye/main/f/fluent-package/fluent-package-dbgsym_5.0.0-1_amd64.deb tmp
dpkg-deb: error: --raw-extract takes at most two arguments (.deb and directory)

Type dpkg-deb --help for help about manipulating *.deb files;
Type dpkg --help for help about installing and deinstalling packages.
Error: Process completed with exit code 2.

could you take care to exclude dbgsym?

dpkg-deb -R /vagrant/debian/pool/bullseye/main/f/fluent-package/fluent-package_5.0.0-1_amd64.deb /vagrant/debian/pool/bullseye/main/f/fluent-package/fluent-package-dbgsym_5.0.0-1_amd64.deb tmp
dpkg-deb: error: --raw-extract takes at most two arguments (.deb and directory)

Type dpkg-deb --help for help about manipulating *.deb files;
Type dpkg --help for help about installing and deinstalling packages.
Error: Process completed with exit code 2.

could you take care to exclude dbgsym?

Sure! I'm checking it! I will fix it so that all the tests succeed.

waiting CI.

Waiting CI...

LTGM.

Thanks for your review!


Allow empty HTML file input and dist dir config.

Checklist

[x] Updated CHANGELOG.md describing pertinent changes.
[x] Updated README.md with pertinent info (may not always apply).
[x] Updated site content with pertinent info (may not always apply).
[x] Squash down commits to one or two logical commits which clearly describe the work you've done. If you don't, then Dodd will 🤓.

Related to #342.

Looks great! But I'd also actually prefer a more helpful message on the HTML page itself. Something like:

No entry point

You don't have an index.html in (expected path), so this page is showing up instead.

What happens in trunk build? Is an empty index.html produced? That's not desired behavior, imho.
Can we make it so this empty file is only made/generated in debug mode? Panic on --release, still.

I've tried to run the app on my machine, and it works.

(This demo uses an example from the project, and it has been removed Trunk.toml and index.html)

Looks great! But I'd also actually prefer a more helpful message on the HTML page itself. Something like:

Index not found

You don't have an index.html in (expected path)! In release, this path would be a 404.

I've add more tips for empty html files' situation. Have a look? :P


FSRS does not respect “Reset” entries in the card metadata

After using “Reset Flashcards for Rem”, an entry is placed in the card's history, but FSRS seems to ignore this entry; the card's interval is not actually reset at next review.

I need help. I don't know what should the plugin response to this action. Is it a input of getNextSpacingDate?
@bjsi, if you are available, I hope you could help me here.

The card should ignore all previous repetition history and behave as if it is a new card.

Hmm I thought we were automatically filtering repetition history data before sending to plugin schedulers. I will check and confirm

Thanks, I think I understand what is going on.

I made a change in the RemNote codebase which will hopefully fix this issue :)


In case $maxLifetime is null, the $lifetime will never be used

In case $maxLifetime is null (which it is by default), the $lifetime will never be used and null will always be returned.
Fixes issue zendframework/zf1#503.

We are sorry, but ZF1 reaches its End of Life (EOL).

I know, but since ZF1 is such a fundamental building block for Magento 1.x I wanted to at least document a fix for it.


chore: skip local repos on pre-commit.ci

As title says.

Requested in https://github.com/ansys/grantami-jobqueue/pull/36#discussion_r1540008689 by @Andy-Grigg

Anytime - feel free to merge!


Support async contexts and make the crate more transport-agnostic

Hi there, I needed to decode MAVLink messages in an async application based on the Tokio executor, so I went ahead and implemented a decoder using tokio_util's Decoder trait and this library here: codec.rs. With this trait in place, I am able to decode messages asynchronously with just a few lines of code:
async fn example() {
    let mut mavlink = match TcpStream::connect((MAVLINK_IP, MAVLINK_PORT)).await {
        Ok(stream) => {
            FramedRead::new(stream, codec::MavMessageDecoder::<mavlink::common::MavMessage>::new())
        },
        Err(error) => {
            log::error!("Failed to connect");
            return;
        }
    };
    while let Some(message) = mavlink.next().await {
        match message {
            Ok(message) => log::info!("{:?}", message),
            Err(error) => log::error!("{}", error),
        }
    }
}

This exercise has revealed a couple design flaws in this library. One particular code smell that I picked up on was that I had to duplicate a lot of code in this library to achieve what I was doing. Referring back to codec.rs, I don't think lines 39 to 85 belong in my code and this functionality should be provided by the library.
I am still relatively new to Rust, but I have seen enough of the ecosystem to put forward the following proposals for the library:

This crate should do one thing and do it well, provide types and traits for MAVLink messages and a means for converting them from/to u8 buffers or perhaps from/to the Buf, BufMut traits from the bytes crate. In particular, something like:

impl<B: bytes::Buf, M: mavlink::Message> std::convert::TryFrom<B> for M {
    type Error = mavlink::error::MessageReadError;

    fn try_from(buffer: B) -> std::result::Result<Self, Self::Error> {
        todo!()
    }
}

The concepts, types, and details of transports such as TCP, UDP, or UART and the various libraries that implement these transports should not leak into crate. Referring to issue #16, I disagree that this library should have any methods like recv regardless of whether they are synchronous or asynchronous. For sure, any use case will involve one of these transports, but that code and its dependencies belong in the examples.

What I propose above are indeed breaking changes, however, it would make the library simpler, more flexible (i.e., regarding async vs. sync) and agnostic to the underlying transport. I believe this would also make no_std support easier (i.e. less functionality hidden behind feature gates).

This sounds like a good idea! I'd also prefer having a pure types & serde library, and another, separate lib for the communication interfaces. I started working on some kind of communication library over at https://crates.io/crates/async-mavlink .
I think it would make sense to just provide an async, libstd communication library. I don't think we should prioritize a communication library for no_std, as the landscape of IO is too heterogene there.

this proposal makes a lot of sense. Likely possible to do this without breaking changes by pulling the transport-agnostic code into a separate 'core' crate in the workspace.

Hi, just wondering if any progress was made with this ticket. I agree with the points made by the OP, with regard to the fact the this library should focus on just mavlink message parsing.
I also think this is a much simpler issue to solve, please see small update I made here
https://github.com/mavlink/rust-mavlink/commit/751c8dda0a5adacb34ba6952935d8e948fcabbfe
By making a couple of functions public and updating the new() functions you doing some like this (simplified for this example);
async fn recv_msg_async<R: AsyncReadExt + Unpin>(
    stream: &mut R,
) -> Result<mavlink::ardupilotmega::MavMessage, String> {
    loop {
        let byte = stream.read_u8().await.map_err(|e| e.to_string())?;

        if byte != mavlink::MAV_STX_V2 {
            continue;
        }

        let mut msg_raw = mavlink::MAVLinkV2MessageRaw::new();
        stream
            .read_exact(msg_raw.mut_header())
            .await
            .map_err(|e| e.to_string())?;
        stream
            .read_exact(msg_raw.mut_payload_and_checksum_and_sign())
            .await
            .map_err(|e| e.to_string())?;

        if !msg_raw.has_valid_crc::<mavlink::ardupilotmega::MavMessage>() {
            return Err("CRC Failed".to_owned());
        }

        let mav_msg = <mavlink::ardupilotmega::MavMessage as mavlink::Message>::parse(
            mavlink::MavlinkVersion::V2,
            msg_raw.message_id(),
            msg_raw.payload(),
        )
        .map_err(|e| e.to_string())?;

        return Ok(mav_msg);
    }
}

Happy to make a PR if this is an acceptable approach.


Alan Perlis

Alan Jay Perlis (April 1, 1922 – February 7, 1990) was an American computer scientist and professor at Purdue University, Carnegie Mellon University and Yale University. He is best known for his pioneering work in programming languages and was the first recipient of the Turing Award.

https://amturing.acm.org/award_winners/perlis_0132439.cfm

Perlis published over 30 articles and edited and co-authored 5 books. These included scientific and technical publications, contributions to the debate on the identity of computer science, and introductory undergraduate courses to computer science.

De Millo, Richard A., Richard J. Lipton and Alan J. Perlis, “Social processes and proofs of theorems and programs”, Communications of the ACM, Vol. 22, Num. 5, May 1979, pp. 271-280.
This is a controversial attack on the concept of designing flawless computer programs based on highly abstract mathematical methods.

Newell, Allen, Alan J. Perlis and Herbert A. Simon, “Computer Science”, Science, Vol. 157, Num. 3795, September 22 1967, pp. 1374-1375.
The authors present passionate defense of computer science as independent academic field whose purpose was to be the study of all phenomena surrounding computers, including programs, algorithms, and hardware.

Backus, J. W., F. L. Bauer, J. Green, C. Katz, J. McCarthy, A. J. Perlis, H. Rutishauser, K. Samelson, B. Vauquois, J. H. Wegstein, A. van Wijngaarden and M. Woodger, “Report on the algorithmic language ALGOL 60”, Communications of the ACM, Vol. 3, Num. 5, May 1960, pp. 299-314.
This contains the second definition of the programming language ALGOL, which among other significant advances introduced the use of a notation originally developed by John Backus in 1959 to describe programming languages.

Perlis, A. J., K. Samelson, “Preliminary report: international algebraic language”, Communications of the ACM, Vol.1, Num. 12, December 1958, pp. 8-22.
This contains the first definition of the International Algebraic Language (IAL), soon after renamed ALGOL, which aimed to be an universal language for the description of scientific computational processes and their translation into machine programs to be executed in any computer.

Chipps, J., M. Koschmann, S. Orgel, A. Perlis and J. Smith, “A mathematical language compiler,” Proceedings of the 1956 11th ACM national meeting, New York, ACM, 1956, pp. 114-117.
This is the earliest description of the IT programming system, which allowed the use of mathematical notation and was conceived to be implemented on different types of computers without major modifications.


HAWQ-1503 - Fixed ftp link causing build failure on centos-6 docker

+1

Pushed to master, please feel free to delete your branch.

@sansanichfb Thank you for the merge. Marking this closed.


warning: calling URI.open via Kernel#open is deprecated

Describe the bug
Nokogiri::HTML(open('https://foo.bar')) (cf. nokogiri docs) results in error message warning: calling URI.open via Kernel#open is deprecated, call URI.open directly or use URI#open after upgrading ruby version.
The same thing happens using Nokogiri::XML
Probably related to this open-uri deprecation
I tried changing the line to xml_doc = URI('https://foo.bar').open, which (obviously) didn't work and also couldn't find a workaround for this.
To Reproduce
Excerpt of my rake task:
require 'rss'
require 'open-uri'
require 'nokogiri'
require 'pry'
namespace :sync do
  task feeds: [:environment] do
    Feed.all.each do |feeds|
      xml_doc = Nokogiri::HTML(open(feeds.url))
...

Expected behavior
The rake task worked normally before upgrading ruby from 2.6.3 to 2.7.1
Environment
# Nokogiri (1.10.10)
    ---
    warnings: []
    nokogiri: 1.10.10
    ruby:
      version: 2.7.1
      platform: x86_64-linux
      description: ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux]
      engine: ruby
    libxml:
      binding: extension
      source: packaged
      libxml2_path: "/home/pfeifferj/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/nokogiri-1.10.10/ports/x86_64-pc-linux-gnu/libxml2/2.9.10"
      libxslt_path: "/home/pfeifferj/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/nokogiri-1.10.10/ports/x86_64-pc-linux-gnu/libxslt/1.1.34"
      libxml2_patches:
      - 0001-Revert-Do-not-URI-escape-in-server-side-includes.patch
      - 0002-Remove-script-macro-support.patch
      - 0003-Update-entities-to-remove-handling-of-ssi.patch
      - 0004-libxml2.la-is-in-top_builddir.patch
      - 0005-Fix-infinite-loop-in-xmlStringLenDecodeEntities.patch
      libxslt_patches: []
      compiled: 2.9.10
      loaded: 2.9.10

Hi, @pfeifferj, thanks for opening this issue. Just to confirm my understanding, you're reporting an issue with the documentation at nokogiri.org, correct?

hi @flavorjones, yes -- using the example from the docs produces the error.

Fixed! Thanks again for letting me know.

Sorry for messing up here with an unrelated stuff but since this specific issue was the only one which helped me to get to the bottom of issue I had with a different project I'd like to link the issue from that another project here for others seeking and google'ing for resolution based on error message eval:6: warning: calling URI.open via Kernel#open is deprecated, call URI.open directly or use URI#open: https://github.com/juliosueiras/vim-terraform-completion/issues/34#issuecomment-899452778


Adding function to get timezone abbreviation from name

Thank you for your Pull Request.
Just a moment, please.

@kkavchakHT I'm sorry for the late reply.
I understand your pull request.
I simplified, and supported the daylight saving time.
func GetTimezoneAbbreviation(timezoneName string, dst ...bool) (string, error) {
        loc, err := time.LoadLocation(timezoneName)
        if err != nil {
                return "", err
        }

        var zone string

        if len(dst) == 0 || !dst[0] {
                now := time.Now()
                zone, _ = time.Date(now.Year(), time.January, 1, 0, 0, 0, 0, time.UTC).In(loc).Zone()
        } else {
                // considering DST
                zone, _ = time.Now().In(loc).Zone()
        }

        return zone, nil
}

What do you think?

@tkuchiki The simplified version looks good.

@kkavchakHT I'm sorry for the late reply.
Released v0.1.2.


war dance not calculating momentum correctly

the correct bonus applies to the 1st attack making it +10(6+4 chr mod) then on the following bonus attack it's at 5 instead of 8. should only lose 2 per attack with a light weapon? it does add the 1d6 to the second attack. Also, in the description for other weapon (in war dancer,not light or heavy) is listed as -3 +1d8-1d8, is it supposed to be 2d8 total? and the college of life description has the definition for superior darkvision listed on constitution saves.
momentum.zip
Player.log

My apologies, it is correct. I had a light but not finesse weapon in the 2nd hand. I'm sorry for wasting your time on this. The description for the 3rd weapon type listed as other is still a bit confusing.