Update Developer Tools Docs

After our session with @tetogomez on the Tech stack we will be working with lets update our favorite tools section
https://guide.eoscostarica.io/docs/developer-tools

[ ] Apollo
[ ] Axios
[ ] PropTypes
[x] Hapi

@steph222 this is the information for first 3 tools

EOSIO
What is EOSIO?
EOSIO is open-source software that enables launching highly configurable blockchain networks on which developers and entrepreneurs can run highly performant blockchain applications. For more depth information about EOSIO visit Learn EOS.
Why we use EOSIO?
Here are some reasons why we use EOSIO:

It's scalable. For businesses that need to transact with thousands of customers simultaneously, for example, this transaction speed is insufficient. EOSIO, on the other hand, has been benchmarked to process over 4,000 transactions per second on its public blockchain, which means that it is 200 times faster than its closest competitor and that’s just the public network.

It’s fast.  By using EOSIO apps, consumers and enterprises do not even need to know that they’re using a ‘blockchain app’; all they know is that whatever data they have inputted for any transaction is more secure but no slower than your normal, non-blockchain app.

It’s virtually free. Unlike other blockchain protocols, EOSIO offers a more favorable cost model for consumers and developers, as it eliminates the need for transaction fees.

It’s green. One of the most common complaints you hear about blockchain technology is just how expensive and environmentally-unfriendly it is. Indeed, a lot of blockchain platforms require a substantial amount of electricity to run the computers needed to manage the distributed database.

More information

Instalation of EOSIO
We have a guide for you to start in the EOSIO world visit.

jq
What is jq?
A lightweight and flexible command-line JSON processor. jq is like sed for JSON data you can use it to slice and filter and map and transform structured data with the same ease that sed, awk, grep and friends let you play with text.
Why we use jq?

Tutorial

Instalation of jq
Intall jq from the jq page.
Follow this video if you are using Windows OS

Click here if you want a place to try jq. The jq GitHub for more information.

React JS
What is React JS?
React is an open-source JavaScript library for building user interfaces. It is maintained by Facebook and a community of individual developers and companies. React can be used as a base in the development of single-page or mobile applications.
Why we use React JS?

Fast Learning Curve. React is very a simple and lightweight library that only deals with the view layer.
Reusable Components. React provides a component based structure. Components are your lego pieces. You start with tiny components like button, checkbox, dropdown etc. and the you create wrapper components composed of those smaller components.
Fast render with Virtual DOM. Updating DOM is usually the bottleneck when it comes to the web performance. React is trying to solve this problem by using something called virtual DOM; a DOM kept in memory.
Great Developer Tools. Developer toolset is another important factor when you are choosing a development platform. There are two great tools you should be aware of: React Developer Tools and Redux Developer Tools. Both can be installed as Chrome extensions.

More information

Instalation of React JS
For installation intructions go to our React JS Tutorial.
React GitHub

@steph222 this is the information for first 3 tools

EOSIO
What is EOSIO?
EOSIO is open-source software that enables launching highly configurable blockchain networks on which developers and entrepreneurs can run highly performant blockchain applications. For more depth information about EOSIO visit Learn EOS.
Why we use EOSIO?
Here are some reasons why we use EOSIO:

It's scalable. For businesses that need to transact with thousands of customers simultaneously, for example, this transaction speed is insufficient. EOSIO, on the other hand, has been benchmarked to process over 4,000 transactions per second on its public blockchain, which means that it is 200 times faster than its closest competitor and that’s just the public network.

It’s fast.  By using EOSIO apps, consumers and enterprises do not even need to know that they’re using a ‘blockchain app’; all they know is that whatever data they have inputted for any transaction is more secure but no slower than your normal, non-blockchain app.

It’s virtually free. Unlike other blockchain protocols, EOSIO offers a more favorable cost model for consumers and developers, as it eliminates the need for transaction fees.

It’s green. One of the most common complaints you hear about blockchain technology is just how expensive and environmentally-unfriendly it is. Indeed, a lot of blockchain platforms require a substantial amount of electricity to run the computers needed to manage the distributed database.

More information

Instalation of EOSIO
We have a guide for you to start in the EOSIO world visit.

jq
What is jq?
A lightweight and flexible command-line JSON processor. jq is like sed for JSON data you can use it to slice and filter and map and transform structured data with the same ease that sed, awk, grep and friends let you play with text.
Why we use jq?

Tutorial

Instalation of jq
Intall jq from the jq page.
Follow this video if you are using Windows OS

Click here if you want a place to try jq. The jq GitHub for more information.

React JS
What is React JS?
React is an open-source JavaScript library for building user interfaces. It is maintained by Facebook and a community of individual developers and companies. React can be used as a base in the development of single-page or mobile applications.
Why we use React JS?

Fast Learning Curve. React is very a simple and lightweight library that only deals with the view layer.
Reusable Components. React provides a component based structure. Components are your lego pieces. You start with tiny components like button, checkbox, dropdown etc. and the you create wrapper components composed of those smaller components.
Fast render with Virtual DOM. Updating DOM is usually the bottleneck when it comes to the web performance. React is trying to solve this problem by using something called virtual DOM; a DOM kept in memory.
Great Developer Tools. Developer toolset is another important factor when you are choosing a development platform. There are two great tools you should be aware of: React Developer Tools and Redux Developer Tools. Both can be installed as Chrome extensions.

More information

Instalation of React JS
For installation intructions go to our React JS Tutorial.
React GitHub

@steph222 this is the information for first 4 tools

Perfect!!

@steph222 this is the information for first 4 tools

Perfect!!

Hasura
What is Hasura?
Hasura's GraphQL engine is an ultrafast GraphQL server that gives you real-time, snapshot GraphQL APIs over Postgres, with webhook triggers on database events and remote schemas for business logic.
Why we use Hasura?

Helps encapsulate the details of the structure of your tables behind a consistent interface. It also lets you structure your data in an intuitive way.
Provides more readability since a named query can set the context much faster than a raw SQL query. You can use a view instead of littering your client code base with complex queries.
Views have separate permissions and hence can be used to restrict access to the tables such that users are only allowed to see specific rows and columns.

Instalation of Hasura
Hasura CLI instalation.
Hsura GitHub

httpie
What is httpie?
Modern command line HTTP client – user-friendly curl alternative with intuitive UI, JSON support, syntax highlighting, wget-like downloads, extensions, etc.
Why we use httpie?

Simple, expressive and intuitive HTTP command syntax.
Nicely formatted and colorized terminal output.
Out-of-box JSON support.
Forms and file uploads.
Support for custom HTTP header.
Major OS supports — Linux, macOS, and Windows.
Supports arbitrary request data.
Plugins to support additional feature.

Instalation of httpie
httpie instalation.
httpie GitHub

PostgresDB
What is PostgresDB?
PostgreSQL is a powerful open source object relational database system that uses and extends the SQL language combined with many features that securely store and scale the most complicated data workloads.
Why we use PostgresDB?

Compatible with various platforms using all major languages and middleware
It offers a most sophisticated locking mechanism.
Support for multi-version concurrency control.
Mature Server-Side Programming Functionality.
Compliant with the ANSI SQL standard.
Full support for client-server network architecture.

Instalation of PostgresDB
PostgresDB instalation
PostgresDB GitHub

PostMan
What is PostMan?
It enables developers to test calls to APIs. Postman users enter data. The data is sent to a special web server address. Typically, information is returned, which Postman presents to the user.
Why we use PostMan?

User-Friendly: Having a user-friendly interface enables one to send a simple request by only entering it, filling in the necessary headers, selecting the HTTP method and pressing the ‘send’ button.
Automation:  Automated tests can be easily set up using the Postman API testing tool. You can automate your test cases in Postman in javascript with impressive features like write test suites, build request that consists of dynamic parameters, pass on data in between the request, etc. In this way tests and requests can be aggregated into a single automated test sequence.
Cost Effective:  Apart from the many benefits which this tool provides us, this tool is also very cost effective. You can use the Postman in their free plan, which consists of limited features but most helpful.

Instalation of PostMan
PostMan Instalation
PostMan GitHub

Hasura
What is Hasura?
Hasura's GraphQL engine is an ultrafast GraphQL server that gives you real-time, snapshot GraphQL APIs over Postgres, with webhook triggers on database events and remote schemas for business logic.
Why we use Hasura?

Helps encapsulate the details of the structure of your tables behind a consistent interface. It also lets you structure your data in an intuitive way.
Provides more readability since a named query can set the context much faster than a raw SQL query. You can use a view instead of littering your client code base with complex queries.
Views have separate permissions and hence can be used to restrict access to the tables such that users are only allowed to see specific rows and columns.

Instalation of Hasura
Hasura CLI instalation.
Hsura GitHub

httpie
What is httpie?
Modern command line HTTP client – user-friendly curl alternative with intuitive UI, JSON support, syntax highlighting, wget-like downloads, extensions, etc.
Why we use httpie?

Simple, expressive and intuitive HTTP command syntax.
Nicely formatted and colorized terminal output.
Out-of-box JSON support.
Forms and file uploads.
Support for custom HTTP header.
Major OS supports — Linux, macOS, and Windows.
Supports arbitrary request data.
Plugins to support additional feature.

Instalation of httpie
httpie instalation.
httpie GitHub

PostgresDB
What is PostgresDB?
PostgreSQL is a powerful open source object relational database system that uses and extends the SQL language combined with many features that securely store and scale the most complicated data workloads.
Why we use PostgresDB?

Compatible with various platforms using all major languages and middleware
It offers a most sophisticated locking mechanism.
Support for multi-version concurrency control.
Mature Server-Side Programming Functionality.
Compliant with the ANSI SQL standard.
Full support for client-server network architecture.

Instalation of PostgresDB
PostgresDB instalation
PostgresDB GitHub

PostMan
What is PostMan?
It enables developers to test calls to APIs. Postman users enter data. The data is sent to a special web server address. Typically, information is returned, which Postman presents to the user.
Why we use PostMan?

User-Friendly: Having a user-friendly interface enables one to send a simple request by only entering it, filling in the necessary headers, selecting the HTTP method and pressing the ‘send’ button.
Automation:  Automated tests can be easily set up using the Postman API testing tool. You can automate your test cases in Postman in javascript with impressive features like write test suites, build request that consists of dynamic parameters, pass on data in between the request, etc. In this way tests and requests can be aggregated into a single automated test sequence.
Cost Effective:  Apart from the many benefits which this tool provides us, this tool is also very cost effective. You can use the Postman in their free plan, which consists of limited features but most helpful.

Instalation of PostMan
PostMan Instalation
PostMan GitHub

looks great lets change the title of instalation of something to something instalation

looks great lets change the title of instalation of something to something instalation


Offline Mode setup for Tabs Dashboard

Description
LEARNER-3060

Ensure no 2 error types appear on screen at a time
SnackBar showing/hiding will be controlled by the activity now, since, its the activity's layout that contains the CoordinatorLayout in which the SnackBar will appear.
Fragments inside ViewPager will tell the Activity about showing/hiding SnackBar based on the visibility of FullScreenError within them.
Whenever Reload button will be pressed (whether its pressed on SnackBar or FullScreenError) it'll fire a RefreshEvent on EventBus, so that every fragment can update/reload itself.
CourseDatesFragment auto loads itself upon connection when its not loaded.
On AdditionalResourcesFragment we only need to show SnackBar in case of no connectivity.

cc @staubina

Course dates fragment is not showing 'Reload' button which is not according to new offline design. Fragment should not be reloaded automatically on internet connectivity.

Course dates fragment is not showing snack bar when there is no internet connectivity, as per decided in comments we have to show it.

ready for another pass @farhan

Tabs are showing both error notifications at one time.
Steps to reproduce:

Relogin in app after logging out.
Turn of internet after letting all courses to load.
Go to course tabs dashboard and select 'Additional Resources'  tab.
Enable the internet.
Shift from 'Additional Resources' tab to any other tab and you will see the following issue.

Ready for another pass @farhan


getFollowersOfUser and getUsersFollowedByUser return empty arrays

The two methods return empty arrays on a successful call. Running it in the browser shows the JSON data is empty:
{"pagination":{},"meta":{"code":200},"data":[]}
I made modifications to InstagramEngine.m to include follower_list and public content:
NSArray *typeStrings = @[@"basic", @"comments", @"relationships", @"likes", @"follower_list", @"public_content"];
InstagramConstants.h:
typedef NS_OPTIONS(NSUInteger, InstagramKitLoginScope) {     /*! Indicates permission to read data on a user’s behalf, e.g. recent media, following lists (granted by default) */     InstagramKitLoginScopeBasic = 0,     /*! Indicates permission to create or delete comments on a user’s behalf */     InstagramKitLoginScopeComments = 1<<1,     /*! Indicates permission to follow and unfollow accounts on a user’s behalf */     InstagramKitLoginScopeRelationships = 1<<2,     /*! Indicates permission to like and unlike media on a user’s behalf */     InstagramKitLoginScopeLikes = 1<<3,     InstagramKitLoginScopeFollower_List = 1<<4,     InstagramKitLoginScopePublicContent = 1<<5 };

Apparently you can only see your following and followers if those people have accepted sandbox invites to your application.


Ensure we are using protobuf Any.TypeUrl correctly

At this time, the usage of the typeUrl field on any is not following that prescribed in https://developers.google.com/protocol-buffers/docs/proto3#any. We should define a namespace for these typeUrls and ensure we are doing so in a manner that will work into the future.

This was completed by my pr adding a typeurl package for marshaling and unmarshaling of protobuf and non-protobuf types.


Add form validation to all Web tools

Rather than load an error page when the form values are problematic, add a form validation step to all tools that highlights the bad fields in red.

[x] Limb Darkening
[x] Groups and Integrations
[x] Contamination and Visibility
[ ] Fortney Grid
[ ] Generic Grid

Punting on the forward models since @julesfowler has minimal form validation in there already and both tools are slated to be added to the codebase proper rather than just living in the Web app. We'll homogenize the form validation when these are ported over in a future PR.


Markdown links and tables processed wrong way

[My Link](http://link.com)
renders as:
[My Link](http://link.com) and the http-part contains the link.

I can assure the links are working fine.. they are tested every build with our Test suite:
https://github.com/getgrav/grav/blob/develop/tests/unit/Grav/Common/Markdown/ParsedownTest.php
Did you turn off markdown processing or something???

All other markdown like headers and lists work, but link (and also what i just noticed) tables do not render right way.

Hmm seems it was the Text Formater option. If it was yes this happened.

Text Formatter?

On the options tab of the page

Seems to be a Plug-In

Yah not something i'm familiar with from the core.

Seems like it's related to the 3rd party plugin. I suggest opening up an issue in that plugin's issue tracker.


Fixed inheritance model language

Both prototype-based and class-based languages can use object-oriented design. The difference is in implementation.
JavaScript is perfectly capable of OOP, just as it is also capable of functional programming.
However, yes, the class sugar in JavaScript does not work in the same way as classes in class-based languages. This is because prototype-based and class-based languages have different inheritance models.

Thanks for your contribution ! I really appreciate that you fixed my lack of precision following the style of the docs (aka as short and as clear as possible) :+1:


WIP: Integrate DataManager to abstract Coord class

This starts the process of integrating the DataManager with coord classes. Specifically, this adds the DataManager to the abstract coord class iris.coords.Coord. This is done as the initial step to fully integrating the DataManager with DimCoord and AuxCoord.
Still a work in progress:

I haven't touched Coord.__getitem__ as there is still outstanding work in this area in #2519.
I've only done a light touch on Coord.copy as the copy code will need to be thought about in the context of DimCoord and AuxCoord.
I haven't even looked at the tests (and it is likely that many will now fail). I think the tests will be easier to deal with at the same time as tackling DimCoord and AuxCoord.

Are we allowing masked points now? They're not allowed in the current version are they?. In any case, I think they're only allowable to AuxCoordss, so fill_value should be a parameter to the AuxCoord.__init__, not the base class.

Are we allowing masked coordinates now?

To catch the PR up with an offline discussion, I believe the answer is yes for AuxCoords and no for DimCoords.
Interestingly, in v1.12 land, if you pass a masked array to either constructor, the resultant coord in both cases has a points array composed of the masked array's data attribute as an ndarray; all evidence of the masked array is completely thrown away...

I can see that the proposed API extensions are a logical result of carrying over the cube data API extensions for Coord points and bounds.
However, I'm a bit horrified at the resulting proliferation of extra methods, properties and keywords !!
Discussed a bit offline with @dkillick and @bjlittle  : how can we keep this down ? ...
One way I proposed is simply to expose the DataManagers -- in both Cube and Coord -- and hang most of the functionality onto them.  This could mean much functionality does not need extended API at the Cube amd Coord level.

e.g. cube.data_dm, coords.points_dm, coord.bounds_dm.

We would still want retain existing combination properties like coord.fill_value, coord.dtype, otherwise almost certainly too much change to existing code (cf. see the mess created in this PR by need to replace coord.dtype with coord.points_dtype).

for full-strength simplicity, we must add support for DataManager objects to be passed into __init__ and copy inplace of the real/lazy arrays.  This means you don't need to take data out of DMs to pass it back into these calls.  It could also avoid the need for extra keywords, especially if fill_value becomes part of the DM.

PRO:

simple avoidance of wrapper methods +/or code duplication (DRY)
smaller APIs, much less clutter (especially in docs pages)

CON:

still need to resolve logic of constraints on Coord points and bounds, such as same dtype and fill_value
need to make DataManager itself public, which means it is then *supported ...

further changes are awkward
opens it up to mission creep for additional 'generic array' functions to be requested + added

Another way proposed by @bjlittle is a package of simplifying measures that apply some constraints :

enforce hard limitations on Coord points + bounds matching, so we only support single dtype and fill_value keywords, and insist on either both lazy or both real.  This allows :

single dtype=None, fill_value=None keywords in relevant calls (init + copy; "replace" if needed).
single dtype and fill_value properties

lazy_data() and core_data() calls can always return (points, bounds)

Both of the ideas make use of key limiting assumptions about the correspondence of points and bounds data in a coord : by dtype, fill_value and (potentially) masked/unmasked type.
All that we really know is needed right now is Coords where points and bounds have the same dtype, fill_value and masked status.
We already insist on matching shapes.
I think it is sufficiently improbable to be mixing these up that we should go ahead and assume they always match (else errors).

this makes the API much more manageable
it makes for simple consistency with existing code, e.g. it naturally still supports coord.dtype and coord.shape
it means code can simply ignore a lot of awkward possibilities, excluded by screening out when the data is assigned.

In principle we can change in future, if a real need to do more becomes apparent.
Clearly, even if CF were to spell out these limitations as you might expect, it would still be possible to have a valid netcdf file that breaks those rules. We should be careful that we can load something in those cases :

probably with appropriate warnings and not all data represented
but not falling over + failing to load anything

It would be nice if we could never actually fail to load any possible netcdf data, but at present we don't achieve that.
At present, already, the nc loader can be tripped up by some things that look a bit like CF constructs, but don't follow through properly.
( For instance, possibly if a bounds variable does not have the right shape ? )

Clearly, even if CF were to spell out agreed limitations, it is still always possible to have a netcdf file that breaks the rules.
Ideally, we should be able to load something in those cases :

probably with appropriate warnings and not all data represented
but not falling over + failing to load anything

It would be really nice if we would never actually fail to load valid netcdf files, but actually we already don't achieve that anyway :   The nc loader can be tripped up by some things that look a bit like CF constructs, but don't follow through properly.
( For instance, possibly if a bounds variable does not have the right shape ? )

I'm a bit horrified at the resulting proliferation of extra methods, properties and keywords

I don't see this is particularly a problem. If a class requires a lot of methods and properties, it requires a lot of methods and properties and you have to sort of deal with it. I really don't see it is a problem when the properties are only made up of a few SLOC!
I'm really against exposing the DataManager. It was not the original intent of the DataManager (it's another thing for users to have to get their heads around rather than just being able to have a cube that appears to have data, or a coord that appears to have points). It'll likely also be more effort than it is worth...
I'm also not convinced that requiring that points and bounds have the same dtype is a good idea. Imagine if you have a coord with points as follows:
points = np.array([0, 1, 2, 3, 4])
What do we now do with bounds? Let's assume that the bounds are at the midpoints of each point:

If the coord does not have bounds then we're OK. But if guess_bounds is called on this coord what do we do?
If the coord does have bounds then the bounds have to be floating-point values. So do we...

Cast the bounds to ints? This would change the values of all the bounds by flooring them.
Cast the points to floats? This would mean Iris fundamentally changed the coord, and would mean the coord would fail a round-trip test.

API backwards compatibility

This is a good point in favour of minimising the number of API introductions/changes. We could change all instances of points_<property> to <property> and maintain bounds_<property>. Thus:

points_shape, bounds_shape --> shape, bounds_shape;
points_dtype, bounds_dtype --> dtype, bounds_dtype; and so on.

I've already had to do this for dtype as other parts of the Iris codebase expect a coord to have a dtype property, so I think this set of changes is pretty much a necessity.

There are still a few places where self.points and self.bounds are used where core_points() and core_bounds() could be used.

Remove the temporary replication of code from iris.util, to save @djkirkham's delicate graces.

Review actions after @pp-mo's review.

:tada:


Optional inputs don't work

If I run the deploy command with optional input values, I get always the error Too many arguments, expected arguments "command" "stage".
If I run this command from my local machine, everything works fine.
This is my configuration
- name: Deploy website
  uses<EMAIL_ADDRESS>  with:
    private-key: ${{ secrets.SSH_PRIVATE_KEY }}
    known-hosts: ${{ secrets.SSH_KNOWN_HOSTS }}
    dep: deploy ${{ steps.extract-branch.outputs.branch }} --composer_auth '${{ env.composer_auth }}'

And this is in my PHP file:
use Symfony\Component\Console\Input\InputOption;

option('composer_auth', null, InputOption::VALUE_OPTIONAL, 'Add a composer authentification configuration');

Difficult to tell what is wrong. Maybe it's some error with calling dep from nodejs:
https://github.com/deployphp/action/blob/master/index.js#L48
Also, please var_dump $argv from deploy.php file, lets print and see what the actual command is.

I think the main problem, is that the parameter contains spaces: http-basic.domain.tld user password. I wrote the task who uses this input to use URL decode so that I'm able to write http-basic.domain.tld+user+password. With this, it works. But now I can't (or at least I don't know how) replace the spaces with an + in the secret. (I need the secret also in another place with the spaces)

What do you mean with

Also, please var_dump $argv from deploy.php file, lets print and see what the actual command is.

Do you have a code example?

This is the output:
array(7) {
  [0] => string "bin/dep"
  [1] => string "deploy"
  [2] => string "staging"
  [3] => string "--composer_auth"
  [4] => string "'domain.tld"
  [5] => string "user"
  [6] => string"password'"
}

But it should be
array(7) {
  [0] => string "bin/dep"
  [1] => string "deploy"
  [2] => string "staging"
  [3] => string "--composer_auth"
  [4] => string "domain.tld user password"
}

Yes, looks like there can be a better solution with correct splitting in js code. Will implement it.

In the meantime, I was able to able to change the secret dynamically like that:
jobs:
  deploy:
    name: Deploy
    runs-on: ubuntu-latest
    env:
      composer_auth: ${{ secrets.COMPOSER_AUTH }}
    steps:
      - name: Set environment variables
        run: |
          echo "composer_auth_deployer=${composer_auth//' '/'+'}" >> $GITHUB_ENV
      # Do all the checkout, building, etc...
      - name: Deploy website
        uses<EMAIL_ADDRESS>        with:
          private-key: ${{ secrets.SSH_PRIVATE_KEY }}
          known-hosts: ${{ secrets.SSH_KNOWN_HOSTS }}
          dep: deploy ${{ env.stage }} --composer_auth ${{ env.composer_auth_deployer }}

and in the PHP:
if (input()->hasOption('composer_auth')) {
    $config = input()->getOption('composer_auth');
    if ($config) {
        cd('{{release_path}}');
        run('{{bin/composer}} config --auth ' . urldecode($config));
    }
}

But of course, it would be much nicer if I could use composer_auth directly.

Released v1.0.6. Please test it.

With 1.0.6 I'll following error:
internal/modules/cjs/loader.js:800
13
    throw err;
14
    ^
15

16
Error: Cannot find module 'argv-split'
17
Require stack:
18
- /home/runner/work/_actions/deployphp/action/v1.0.6/index.js
19
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:797:15)
20
    at Function.Module._load (internal/modules/cjs/loader.js:690:27)
21
    at Module.require (internal/modules/cjs/loader.js:852:19)
22
    at require (internal/modules/cjs/helpers.js:74:18)
23
    at Object.<anonymous> (/home/runner/work/_actions/deployphp/action/v1.0.6/index.js:4:15)
24
    at Module._compile (internal/modules/cjs/loader.js:959:30)
25
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)
26
    at Module.load (internal/modules/cjs/loader.js:815:32)
27
    at Function.Module._load (internal/modules/cjs/loader.js:727:14)
28
    at Function.Module.runMain (internal/modules/cjs/loader.js:1047:10) {
29
  code: 'MODULE_NOT_FOUND',
30
  requireStack: [ '/home/runner/work/_actions/deployphp/action/v1.0.6/index.js' ]
31
}

This is strange. Will fix it.

If you made the commit, I can make a test against @master

Release a fix in v1.0.7

Is it fixed?

Yeah, it works now as expected, thank you a lot 🎉


Implement Github Actions

Fixes: N/A
Summary/Motivation:
To promote consistency between Pyomo and Pyutilib, we want to introduce Github Actions as the testing tool for Pyutilib.
Changes proposed in this PR:

Add Pull Request master test
Change three driver scripts to call $PYTHON_EXE instead of python

Legal Acknowledgement
By contributing to this software project, I agree to the following terms and conditions for my contribution:

I agree my contributions are submitted under the BSD license.
I represent I am authorized to make the contributions and grant the license. If my employer has rights to intellectual property that includes these contributions, I represent that I have received permission to make contributions and grant the required license on behalf of that employer.

Coverage remained the same at 62.377% when pulling 35b248171c06d427c7c0ae0e2ade3d789b79cba5 on mrmundt:github_actions into bfe4a98f939b14a7c585cd0030803f439696fbc4 on PyUtilib:master.

Codecov Report

Merging #109 into master will increase coverage by 3.27%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #109      +/-   ##
==========================================
+ Coverage   64.44%   67.71%   +3.27%
==========================================
  Files          86      107      +21
  Lines        8797     9311     +514
==========================================
+ Hits         5669     6305     +636
+ Misses       3128     3006     -122

Impacted Files
Coverage Δ

doc/workflow/examples/test_example.py
92.85% <100.00%> (ø)

doc/workflow/examples/example_driver1.py
100.00% <0.00%> (ø)

doc/workflow/examples/example1a.py
100.00% <0.00%> (ø)

doc/workflow/examples/example1c.py
100.00% <0.00%> (ø)

doc/workflow/examples/example2.py
100.00% <0.00%> (ø)

doc/workflow/examples/example10.py
100.00% <0.00%> (ø)

doc/workflow/examples/example7.py
86.66% <0.00%> (ø)

doc/workflow/examples/example1b.py
100.00% <0.00%> (ø)

doc/workflow/examples/example9b.py
100.00% <0.00%> (ø)

doc/workflow/examples/example8.py
100.00% <0.00%> (ø)

... and 18 more

Continue to review full report at Codecov.

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


Websocket connection was closed uncleanly

Issue subject
Websocket connection was closed uncleanly (1006) and twisted.internet.error
Expected behaviour
subscribe and get trade updates for all available symbols using "trade" API .
Actual behaviour
I used Binance python connector API and tried to get trade updates for all available symbols using trade api .But i keep getting twisted internet errors and 1006 errors frequently.
Steps to reproduce
my_client = SpClient()
my_client.start()
spot_client = Client(base_url="https://api.binance.com")
response = spot_client.exchange_info()["symbols"]
markets_df = pd.DataFrame(response)
markets_df_filtrd = markets_df[markets_df["status"] == 'TRADING']
tickers_bi = list(markets_df_filtrd['symbol'].values)
for i, ticker in enumerate(tickers_bi):
        my_client.trade(symbol=ticker, interval="1m", id=1, callback=callback)

def callback():
    print('--callback')

Environment
Provide any relevant information about your setup, such as:

Version of binance-connector-python -v1.0.16
python -3.9.7
0s -linux

Please upgrade the library to the latest version
which line throws the error?  I'm not sure what is the SpClient

SpClient is
from binance.websocket.spot.websocket_client import SpotWebsocketClient as SpClient
I have upgraded the library to the latest version and checked.still I am facing the same issue

From the code above, you are subscribe to trade streams of all TRADING symbols, that is over 1000 streams that you are handling. That's a lot of data, the client may not able to process the data in socket in time, the server can drop the inefficient clients in connection.  You could reduce the connections amount, and see if that helps.


Remove parking_lot from direct dependency

We don't use this crate now. This fix https://github.com/rustwasm/wasm-pack/issues/882
Make sure these boxes are checked! 📦✅

[x] You have the latest version of rustfmt installed

$ rustup component add rustfmt

[x] You ran cargo fmt on the code base before submitting
[x] You reference which issue is being closed in the PR text

✨✨ 😄 Thanks so much for contributing to wasm-pack! 😄 ✨✨

Hi.  FYI, my MR #924 reintroduces direct use of parking_lot, so this MR ought now to wait until we see what becomes of mine.  Sorry to be making your cleanup obsolete...


removes redundant case let ? statements from workspace

Checklist

[x ] I've looked at the contribution guidelines.
[x ] This pull request is complete and ready for review.

Description

This set of changes removes redundant use of the optional binding swift case let _? statement. It also updates the matching explanations.
before
while case let next? = node.next { ...  }

after
 while let next = node.next { ...  }

Good changes. Thank you!


Lua script not triggered

Environment

VerneMQ Version:1.7.1

OS:CentOS 7

Erlang/OTP version (if building from source):NA

VerneMQ configuration : see vernemq.conf.txt

Cluster size/standalone:standalone

Expected behavior
I've reedit the redis.lua
require "auth/auth_commons"

function my_auth_on_register(reg)
    print("=====reg")
    if reg.username ~= nil and reg.password ~= nil then
        key = json.encode({reg.mountpoint, reg.client_id, reg.username})
        res = redis.cmd(pool, "get " .. key)
        if res then
            res = json.decode(res)
            if res.passhash == bcrypt.hashpw(reg.password, res.passhash) then
                cache_insert(
                    reg.mountpoint,
                    reg.client_id,
                    reg.username,
                    res.publish_acl,
                    res.subscribe_acl
                    )
                return true
            end
        end
    end
    return false
end

function my_auth_on_publish(pub)
    print("=====pub")
    return true
end

pool = "auth_redis"
config = {
    pool_id = pool
}

redis.ensure_pool(config)
hooks = {
    auth_on_register = my_auth_on_register,
    auth_on_publish = my_auth_on_publish,
    auth_on_subscribe = auth_on_subscribe,
    -- on_unsubscribe = on_unsubscribe,
    -- on_client_gone = on_client_gone,
    -- on_client_offline = on_client_offline,

    -- auth_on_register_m5 = auth_on_register,
    -- auth_on_publish_m5 = my_auth_on_publish,
    -- auth_on_subscribe_m5 = auth_on_subscribe_m5,
}

The enabled plugins as pics below :

vernemq.conf as : vernemq.conf.txt
After restart the vernemq and connected to it, the erlang.log output ======reg as expectly :

And after I publish a message, the erlang.log outputs ======pub.
Actual behaviour
But there's nothing about =====pub in the erlang.log after I published a message. BTW, message was normally delivered.

This is because of the lines:
                cache_insert(
                    reg.mountpoint,
                    reg.client_id,
                    reg.username,
                    res.publish_acl,
                    res.subscribe_acl
                    )

Which inserts the ACL into the cache and because this is cached the lua publish function is never called.

Hi, thanks for your reply. It works after I commented the cache_insert. And there's another question which is where are these caches stored and when will these caches expire ?

They are stored in an erlang ETS table and expires when the connection is closed.

Thx

So if the erlang ETS stored the pub/sub acl, then the auth_on_publish/auth_on_subscribe hook function  is actually triggered inside the erlang code , right ?

yep

Thanks for the reply


[Snyk] Upgrade @types/node from 20.8.0 to 20.8.2

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to upgrade @types/node from 20.8.0 to 20.8.2.
:information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.

The recommended version is 2 versions ahead of your current version.
The recommended version was released 22 days ago, on 2023-10-02.

Release notes

Package name: @types/node

20.8.2 - 2023-10-02

20.8.1 - 2023-10-02

20.8.0 - 2023-09-30

    from @types/node GitHub release notes

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:
🧐 View latest project report
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs

Merged

This is an automated message from Fork, Commit, Merge [BOT].

Thank you for your contribution! Your pull request has been merged. The files have been reset for the next contributor.
What's next?
If you're looking for more ways to contribute, I invite you to check out my other projects. Just click here to find more. These projects contain real issues that you can help resolve. You can also check out the Influences section in the README to find more projects similar to this one.
Also please leave a star to this project if you feel it helped you, i would really appreciate it.
I look forward to seeing your contributions!


feat(): Find assay design area report fixing; Consensus sequence; Realize entropyCalc logic; MSA pages

These features are to enable desired haplotypes analysis logic and multisequence alignment data clean up

Codecov Report
Attention: 33 lines in your changes are missing coverage. Please review.

Comparison is base (cc9b9de) 90.66% compared to head (afbfd9b) 84.83%.
Report is 1 commits behind head on main.

Files
Patch %
Lines

src/genetic_testing/sequence_tool/consensusSeq.py
80.51%
30 Missing :warning:

src/genetic_testing/assay_target/datatypes.py
0.00%
3 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #91      +/-   ##
==========================================
- Coverage   90.66%   84.83%   -5.83%
==========================================
  Files           4        5       +1
  Lines         150      310     +160
==========================================
+ Hits          136      263     +127
- Misses         14       47      +33

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Azure function runtime version

The runtime is not being set properly on the azure function

Hi @arnaudlh on our engagement we were unable to leverage CAF in order to create a Function App due to the below

The CAF implementation of Azure Functions has a bug with the setting the managed identity.
Azure Function App does appear to be configured properly. It does not start
Azure Function App Module needs to be cleaned up.

If someone starts to work on this bug please feel free to reach out so that we can elaborate on our observations. Once we conclude our engagement my crew would also be able to take a look at this.

closing as not active. function examples been added by  @SergioMiyama


Ant normalisation

Changes made to incorporate antenna normalisation. Following changes made:

Flags present in caltables will be respected.
Additional antennas can be passed via flag_ants list for flagging

Does not support additional weighting of antennas. If using additional weighting, additional calibration step is necessary.

Done.


Fixing iv_display template KeyError

Was previously trying to access possibly missing keys in the pokemon[pokemon_data] dict (commit 7c1e6205fa60da91b306c322a1d376a949796eb7)

Thanks, it was fixed on branch.


address sql fix

Update statement added for changing 'STATE' to 'STATES'

You will have to add new SQL file with latest version, we cannot modify the old SQL script..... deployments that have already gone past v316 will not get this change.
Also, you cannot just change the STATE code_name to STATES by default..... If someone is using STATE as their custom code name value, it will affect their usage in their deployments.
You will have to find some intelligent solution that solves your problem and doesn't create problem for other existing deployments

@rajuan Thank you for your thoughts Adi. I have found a workaround which would not involve change in SQL files.


Add Has Duplicate Characters to Spanish README.md.

Expected Behavior
Spanish README.md has Has Duplicate Characters string algorithm in algorithms list.
Actual Behavior
Spanish README.md doesn't have reference to Has Duplicate Characters string algorithm.
Reproduction Steps to Produce Actual Behavior
Look at it.

Added Has Duplicate Characters string algorithm to Spanish README.md.


Question: estimate workload to call functions from geogram

Hello fellow rustaceans,
first of all thanks for this awesome interface between c++ and rust!
I have implemented some algorithms for my thesis in rust and now I need some geometric predicates, that are only present in c++ so far. Since I would like to stay in rust I would love to use cxx for that.
A popular c++ library I would like to call from my rust code is: geogram
Alternatively, I could also use these robust predicates.
I have done the cxx tutorial.
My questions is:
Can someone broadly estimate, how much implementation time/overhead would be necessary, to interoperate with one of the above c++ libraries?
I would rather get some help from an experienced person beforehand, before I dive deeper into cxx and start something that might not be worth it.
The algorithms I use are not super long, so the opposing alternative would be writing everything new in c++, but then I would also loose all of rusts beautiful features.
Thanks for your help in advance!

For anyone looking for a similar thing:
I extracted Pluggable Software Modules (PSM) from geogram, which are dependecy-free header libraries.
With that the bridge is built pretty easily.


select2 doesn't close when clicking outside of the select2 container - broke after 3.4.1

I created a very simple example at:  http://jsfiddle.net/fkmalone/2bqXa/
Note that I pointed it to a copy of select2.js and select2.css on my server.  However, the files are unchanged from what I downloaded.
Basically, when I upgraded from 3.4.1 to 3.4.3 whenever I click outside of the select2 container it doesn't close.  It did in 3.4.1.

Add this code. this is work for me..
$(document).click(function() {
$("#select").select2('close');
});


events not displaying in table view

Jay,
I am confident this workspace should be working but it is not. I have followed all of your advice and come up with this.
Why is it not working?
JesusSaves5 copy 4.zip

I thought I had it but now I know I do not. Ill send you a PayPal donation if you can help me fix this :)

Any help? Please?

OK, forgot about this.
Will take a look tomorrow afternoon.

I LOVE YOU BRO THANK YOU
On Fri, Aug 4, 2017 at 6:30 PM JTAppleCalendar<EMAIL_ADDRESS>wrote:

OK, forgot about this.
Will take a look tomorrow afternoon.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/patchthecode/JTAppleCalendar/issues/507#issuecomment-320384957,
or mute the thread
https://github.com/notifications/unsubscribe-auth/Acw2w-8XrHX-ZOIB9iCMbgr7gEpjDKVyks5sU8WygaJpZM4Ondxk
.

Anything? Sorry I don't mean to pester.
Zach
On Fri, Aug 4, 2017 at 6:35 PM Zach Hejl<EMAIL_ADDRESS>wrote:

I LOVE YOU BRO THANK YOU
On Fri, Aug 4, 2017 at 6:30 PM JTAppleCalendar<EMAIL_ADDRESS>wrote:

OK, forgot about this.
Will take a look tomorrow afternoon.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/patchthecode/JTAppleCalendar/issues/507#issuecomment-320384957,
or mute the thread
https://github.com/notifications/unsubscribe-auth/Acw2w-8XrHX-ZOIB9iCMbgr7gEpjDKVyks5sU8WygaJpZM4Ondxk
.

Got tied up in work over the weekend man. I'll have to take a look in a bit.
See, i can commit to helping as far as i can, but sometimes i get really tied up.
I'll take a quick look now.

Hey Jt,
Any time?😬
Sorry man.. just really lost.
Thanks
Zach
On Mon, Aug 7, 2017 at 9:00 AM JTAppleCalendar<EMAIL_ADDRESS>wrote:

Got tied up in work over the weekend man. I'll have to take a look in a
bit.
See, i can commit to helping as far as i can, but sometimes i get really
tied up.
I'll take a quick look now.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/patchthecode/JTAppleCalendar/issues/507#issuecomment-320704829,
or mute the thread
https://github.com/notifications/unsubscribe-auth/Acw2w4ZOfAzX87cupXCCLKTdoPrLWCkUks5sVzSQgaJpZM4Ondxk
.

join the chat -> https://gitter.im/patchthecode/JTAppleCalendar

issue resolved.
closing this.


RHOARDOC-1604: Reactive resolution

Contains commits from #1300 and #1306.
Both #1300 and #1306 should be closed without merging.

@huntley, please provide a peer review.

@tradej, @huntley and @Ladicek  thank you for the review comments, I am addressing them in PR #1309. This PR can be closed without merging.

This PR has been superseded by PR #1309. Closing without merging.


Update sidenav style

Link to designs in Figma: https://www.figma.com/file/6XcxaUdad2RkjpEqnVHKAG/Education-docs-redesign?node-id=2087%3A12650


[issue-451] make checksum validation lowercase only

part of #451
Signed-off-by: Armin Tänzer<EMAIL_ADDRESS>

Thanks for the pointer! The validation is really all over the place...


[FEAT] Moving Folded Chunk of Block

Feature Request
VSCode Version - 1.18.1
OS - Mac OS Sierra
Currently when a snippet of code has been folded, it attempts to move only the initial line using the shortcut keys to move.

It'd be nice if this were to move the complete folded block instead of a single line. Need to know what the community thinks of this first?

Just select until the next line: That's shift + cursor down.


After first API response in a feature file, Cookie of next APIs are getting updated automatically to LAX category

Hi,
today I have setup a new project using karate version 1.4.1 over JDK 11 with default config. Earlier I was using version 0.9.6. The issue I am facing is,
I have a feature file where I have a scenario. Inside that scenario, I have 2 APIs. In both of those APIs, I am passing 3 tokens, Authtoken, Cookie and CSRF. The first API execution works flawlessly, but when the second API is hit, the Cookie value is getting updated automatically to "SameSite=Lax". I have tried multiple ways to prevent it from changing automatically, but nothing worked. In an old thread, I found followredirects=false trick. Even that also did not work.
I cannot modify the product config. Please let me know the fix for this.

}
}
}
This issue was not there in earlier version.

@jasprit-singh-chahal look at the response headers - Set-Cookie: SameSite=Lax; Path=/; SameSite=Lax; Secure; HttpOnly seems to be missing the core name and data and looks wrong overall, which may mean a bug in YOUR server. since this has not been reported by anyone else, it is likely that karate has done the right thing and found a problem for you
I think you should be able to do * configure cookies = null before running the requests as a workaround
either way - I also request you to consider submitting a PR for karate or at the very least provide a way to replicate following this process: https://github.com/karatelabs/karate/wiki/How-to-Submit-an-Issue - there is a related issue: #2482

Thanks @ptrthomas for the instant support. "* configure cookies = null" worked! Do I need to do this every time?

@jasprit-singh-chahal yes it is a hack. I have nothing else to add to my previous comment

I have 2 questions:

Why this change was implemented?
In future, shall I expect some implementation to set Cookie type?

@jasprit-singh-chahal 0.9.6 is a very old version and I honestly don't remember. please keep in mind that we release RC versions and request users to test those and give us feedback. if you haven't then it is on you. this is an open source project with limited bandwidth. I think you are still missing my point that your server is not behaving correctly. you should probably fix that before trying anything else.
if you want cookies to be improved please contribute code, or if we are sure that this is a problem that many users face, we would look into it. I'm closing this ticket


Error pop up showing continuously.

Sent with GitHawk

@i1skn any idea on this.
Sent with GitHawk

Can you please add the file(.grinslate), you are trying to open?

The issue was, that CoinGecko API was not reachable from the device


Tini is not running as PID 1 and isn't registered as a child subreaper.

I got the following messages when I tried to
srun enroot start sample-container
[WARN  tini (66921)]
Zombie processes will not be re-parented to Tini, so zombie reaping won't work.
To fix the problem, use the -s option or set the environment variable TINI_SUBREAPER to register Tini as a child subreaper, or run Tini as PID 1.
Any ideas or pointers?  Thanks.

There is no PID namespace in Enroot so no need for Tini or any other init system for that matter. Reaping will work as usual with your host init system.


Update glossary

closes #32
Waiting on everyone else to merge pull request before I can finalize glossary.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:


Map height should not be more than to fill screen.

Need to revisit how big map is drawn. It should not extent beyond the view port.

To me this seems corrected?


[Breaking change] Refactor the way we pass options to MadNLP

This PR merges the option_dict and kwargs arguments, so now we pass all options as kwargs...:
ips = MadNLP.InteriorPointSolver(nlp; max_iter=10)

No need to pass the options in a separate Dict anymore.
In addition, we add a new function default_options to return the default options associated to a given linear solver.
MadNLP.default_options(LapackCPUSolver)

Codecov Report

Merging #191 (2933de6) into master (59aa6e5) will decrease coverage by 0.03%.
The diff coverage is 94.59%.

@@            Coverage Diff             @@
##           master     #191      +/-   ##
==========================================
- Coverage   73.00%   72.96%   -0.04%
==========================================
  Files          38       38
  Lines        3456     3459       +3
==========================================
+ Hits         2523     2524       +1
- Misses        933      935       +2

Impacted Files
Coverage Δ

lib/MadNLPHSL/src/MadNLPHSL.jl
90.00% <ø> (ø)

lib/MadNLPKrylov/src/MadNLPKrylov.jl
0.00% <0.00%> (ø)

lib/MadNLPPardiso/src/MadNLPPardiso.jl
100.00% <ø> (ø)

lib/MadNLPPardiso/src/pardiso.jl
0.00% <0.00%> (ø)

src/IPM/utils.jl
89.83% <ø> (-2.24%)
:arrow_down:

lib/MadNLPHSL/src/ma27.jl
85.29% <100.00%> (ø)

lib/MadNLPHSL/src/ma57.jl
85.07% <100.00%> (ø)

lib/MadNLPHSL/src/ma77.jl
96.20% <100.00%> (ø)

lib/MadNLPHSL/src/ma86.jl
94.73% <100.00%> (ø)

lib/MadNLPHSL/src/ma97.jl
94.44% <100.00%> (ø)

... and 10 more

Continue to review full report at Codecov.

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

@sshin23 thanks for the review! I am all in to change the names of the functions in a separate PR


Add support for Python 3.12

Summary
Python 3.12.0 was released on 10-02-2023, this commit marks the start of support for Python 3.12 in Qiskit. It adds the supported Pythonv ersion in the package metadata and updates the CI configuration to run test jobs on Python 3.12 and build Python 3.12 wheels on release.
Details and comments
Fixes: #10887

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
4 unchanged lines in 2 files lost coverage.
Overall coverage increased (+0.04%) to 85.914%

Files with Coverage Reduction
New Missed Lines
%

crates/qasm2/src/lex.rs
2
92.17%

qiskit/transpiler/passes/basis/basis_translator.py
2
97.06%

Totals

Change from base Build<PHONE_NUMBER>:
0.04%

Covered Lines:
65952

Relevant Lines:
76765

💛  - Coveralls

I think this should be good to go now, at least it passes locally. My only concern is we'll hit the same stability issue with unitary synthesis on the newer numpy that led to #11232. But to support 3.12 we need to use a newer version of numpy.

I've been rerunning the tests and managed to trigger the test failure on the 3rd run: https://dev.azure.com/qiskit-ci/qiskit/_build/results?buildId=51680&view=logs&j=783cd8ce-45d0-52b9-fbe2-d8b6f5c36b94&t=f6ef7ac4-a492-580b-ed69-1d6c3306a466&l=22108 I think we need to get to the bottom of this instability issue before we can merge this, otherwise we'll likely block ci in practical terms because of these failures.

Unblocked by the merge of #11307.


Fix output of cycle-times.coffee (fixes #68)

Fix output of cycle-times.coffee (fixes #68)
Fix output of cycle-times.coffee when ENL is losing.
Minor text and date formatting changes.

Please reopen this issue/pull-request over at therealklanni/hubot-ingress.


Add Share button to Product Card component

[x] Create a share button component
[x] Add the share button to Product Card component

This may impact or be impacted by #110

[x] After tapping the share button, users should be able to copy a link to the product

[x] Bonus: automatically copy the link for them
[x] Bonus: trigger the device's native share sheet function

By executing navigator.share, for modern device, it would trigger the device native share sheet function. But if failed, it would trigger clipboard the share url, this is true on my Ubuntu machine.


PostCSS Plugin

UnoCSS version
0.583
Describe the bug
i use postcss v8.4.32 and i follow the document for PostCSS Plugin, but it tell me a erro "PostCSS plugin unocss requires PostCSS 8.". I use webpack4 and nodeV19,  i don't know how to make it work.
Reproduction

System Info
No response
Validations

[X] Read the Contributing Guidelines.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

We temporarily closed this due to the lack of enough information. We could not identify whether it was a bug or a userland misconfiguration with the given info.
Please provide a minimal reproduction to reopen the issue.
Thanks.

Why reproduction is required


[2.0] I can't preventdefault on an anchor tap

I simply want to prevent the anchor element from going to the href location.  This is a pretty basic and common maneuver but nothing seems to work and apparently many things have changed in version 2.0.
    let mAnchor = new Hammer.Manager(this.anchor, {
      domEvents: true
    });
    mAnchor.add(new Hammer.Tap());
    mAnchor.on('tap', (e) => {
      e.srcEvent.preventDefault();
      e.preventDefault();
      e.gesture.preventDefault();
    });

You would need to prevent default on the click, tap is not a click, nor click based.

The tap event fires when I click the damn link.

... so add a click handler and prevent default on the click


Improve comparison of struct fields

Currently if the order of fields in struct is different, it will fail.
This fix will lookup fields, ignoring the field order and length and
fail if not nullable.
Array data type comparison will use the equals_datatype instead of
comparing enums.
This fix work towards closing of https://github.com/apache/arrow-datafusion/issues/2326.
@alamb

Codecov Report

Merging #1839 (ed0ed75) into master (8d787d9) will decrease coverage by 0.03%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           master    #1839      +/-   ##
==========================================
- Coverage   83.48%   83.45%   -0.04%
==========================================
  Files         201      201
  Lines       56838    56931      +93
==========================================
+ Hits        47452    47510      +58
- Misses       9386     9421      +35

Impacted Files
Coverage Δ

arrow/src/datatypes/datatype.rs
59.59% <0.00%> (-6.21%)
:arrow_down:

arrow/src/compute/kernels/temporal.rs
95.77% <0.00%> (-1.36%)
:arrow_down:

parquet_derive/src/parquet_field.rs
65.75% <0.00%> (-0.23%)
:arrow_down:

parquet/src/encodings/encoding.rs
93.46% <0.00%> (-0.20%)
:arrow_down:

arrow/src/array/mod.rs
100.00% <0.00%> (ø)

arrow/src/compute/kernels/substring.rs
99.53% <0.00%> (+0.01%)
:arrow_up:

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 8d787d9...ed0ed75. Read the comment docs.

I'm not sure about this, reordering fields in a StructArray is not compatible? To me this feels like a limitation of the SchemaAdapter logic in DataFusion which needs to:

Understand nested types
Re-project fields within nested types

Columns and fields are identified by index and not column name, and so they cannot be arbitrarily reordered?

This PR has been inactive for a while so closing to clear the backlog, please feel free to reopen if you come back to this


REQUEST: New membership for @nithyatsu

GitHub Username
e.g. @nithyatsu
Requirements

[ X] I have reviewed the community membership guidelines
[ X] I have enabled 2FA on my GitHub account, see https://github.com/settings/security
[ X] I have subscribed to the Radius community Discord server
[ X] I am contributing (any of the following apply: issues, discussions, PRs, reviews) to 1 or more Radius repositories

List of contributions to the Radius project
/radius: APPROVER (for areas of cli, observability, gateways, app graph and in general new APIs, workload identity)

PRs reviewed / authored
about 160 PRs authored https://github.com/radius-project/radius/pulls?q=is%3Apr+is%3Aclosed+author%3Anithyatsu
Issues responded to
created 114 issues, worked on issues related to cli, logging and tracing, gateways, application graph, ucp planes, workload identity - irsa.

/dashboard: APPROVER
I have contributed to only 3 PRs. I think I might be the only engineer on our team that worked on dashboard, therefore requesting approver status.

I nominate and approve

+1

+1 for APPROVER on radius and dashboard


Vesper finance V3

Schema : 1.2.1
vesper-meta: 2.60.0
Note:
As vesper doesn't have a pool register. We are using their published npm package called vesper-meta. This package provides a list of pools and controllers. We are indexing all version 3 and above pools along with the orbit pools for mainnet.

formula updated so closing this PR


Configurable relayer types in IBC test environment

Summary
It would be nice to have different relayers that can be used within the IBC test environment.
Problem Definition
Most of the relayers that we setup are using the Hermes relayer. This is different than the test environment which uses the comsos relayer. This is fine for basic IBC functionality and testing, but may be an issue when attempting to replicate an issue.
Proposal

Create a docker image for Hermes relayer.
Allow the user to specify Hermes or cosmos in the make targets.
Run the appropriate container based on the selected relayer.

For Admin Use

[ ] Not duplicate issue
[ ] Appropriate labels applied
[ ] Appropriate contributors tagged
[ ] Contributor assigned/self-assigned

@taztingo i think it already exists https://hub.docker.com/r/informalsystems/hermes


password based authentication for bitbucket

Can you please share how can I connect to bitbucket, from the latest hygieia
Looks like its not supporting?  - please help

Look at https://github.com/capitalone/Hygieia/issues/902 . It pretty much lists the steps you need to follow.


Bug

Describe the bug:

Link to the blitz that caused the error:
Steps to reproduce:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior:

Screenshots:

Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context:

Without a description and a reproducable there is not much we can do, therefore I am closing this issue.


Does not work for Vue.js SPA

const ScriptExtHtmlWebpackPlugin = require('script-ext-html-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
....

 plugins:      [
        new VueLoaderPlugin(),
        new FriendlyErrorsPlugin(),
        new webpack.HotModuleReplacementPlugin(),
        new ScriptExtHtmlWebpackPlugin({
            defaultAttribute: 'defer',
            preload:          /\.js$/,
        }),

 "dependencies": {
    "@fortawesome/fontawesome-free": "^5.5.0",
    "@mintuz/horizon": "BonBonSlick/horizon",
    "bootstrap": "^4.1.3",
    "cross-env": "^5.2.0",
    "dotenv": "^8.0.0",
    "eslint": "^6.8.0",
    "eslint-friendly-formatter": "^4.0.1",
    "eslint-loader": "^2.1.1",
    "eslint-plugin-html": "^5.0.0",
    "eslint-plugin-node": "^8.0.0",
    "eslint-plugin-promise": "^4.0.1",
    "faker": "^4.1.0",
    "i": "^0.3.6",
    "ismobilejs": "^1.0.3",
    "js-cookie": "^2.2.0",
    "mini-css-extract-plugin": "^0.8.0",
    "moment": "^2.22.2",
    "npm": "^6.10.2",
    "resumablejs": "^1.1.0",
    "script-ext-html-webpack-plugin": "^2.1.4",
    "secure-ls": "^1.2.5",
    "source-map-loader": "^0.2.4",
    "standard": "^14.3.1",
    "uglifyjs-webpack-plugin": "^2.1.3",
    "url-loader": "^1.1.2",
    "video.js": "^7.6.0",
    "vue": "^2.5.17",
    "vue-meta": "^2.3.1",
    "vue-resource": "^1.2.1",
    "vue-router": "^3.0.1",
    "vue-style-loader": "^4.1.0",
    "vuex": "^3.0.1",
    "vuex-persistedstate": "^2.7.0",
    "vuex-router-sync": "^5.0.0",
    "webpack-cli": "^3.3.6",
    "webpack-merge": "^4.1.4"
  },
  "devDependencies": {
    "babel-core": "^6.26.3",
    "babel-eslint": "^10.0.3",
    "babel-loader": "^7.1.4",
    "babel-plugin-transform-runtime": "^6.23.0",
    "babel-preset-env": "^1.7.0",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-stage-2": "^6.24.1",
    "copy-webpack-plugin": "^5.0.4",
    "css-loader": "^0.28.11",
    "eslint-plugin-vue": "^4.7.1",
    "file-loader": "^4.2.0",
    "friendly-errors-webpack-plugin": "^1.7.0",
    "html-webpack-plugin": "^4.0.0",
    "node-sass": "^4.10.0",
    "popper.js": "^1.12",
    "sass-loader": "^7.1.0",
    "style-loader": "^0.13.1",
    "vue-loader": "^15.2.2",
    "vue-router-sitemap": "^0.0.4",
    "vue-template-compiler": "^2.5.17",
    "watch": "^1.0.2",
    "webpack": "^4.20.2",
    "webpack-bundle-analyzer": "^3.4.1",
    "webpack-dev-server": "^3.8.0"
  }

Result

<head>
<link rel="preload" href="/main.js" as="script"> // worked only for main.js!
<script src="/0.js" ></script> // scripts appended in head
<script src="/1.js" ></script>
....
<footer>
<script src="/main.js" defer=""></script> // only here added DEFER

Expected, everything DEFER and preload.
<head>
<link rel="preload" href="/0.js" as="script">
....
<footer>
<script src="/0.js"  defer></script>

With this config, preload works fine, but defer still does not applied to head script tags

    new ScriptExtHtmlWebpackPlugin({
      defaultAttribute: 'defer',
      preload:          {
        test:   /\.js$/,
        chunks: 'async',
      },
    }),

Got the same issue. @BonBonSlick did you find a solution?

@hellokvn  I do not remember :(

Hello - I'm sorry to say that this plugin is no longer being maintained.  I have tried to close all issues ahead of doing this but instead have found that the issue list just keeps growing.  I simply do not have the time to keep up.  Sorry.
Please keep an eye on the README where I will record anyone who forks this repo with the intention to supporting it in the future.


Proxy Redirect to Request Specific Notebooks?

This is a great project! I would like to be able to specify a notebook directly such that the proxy server forwards the reference - links with a container - and opens at the requested notebook:
http://<IP_ADDRESS>:8000/notebooks/some_notebook.ipynb

When tmpnb assigns a container /user/<hash>/ the proxy could forward the notebook request notebooks/some_notebook.ipynb and then orchestrate.py could pair with a container and attach the requested notebook path to open the specific ipynb.
Is this currently possible?
I would be happy to work on this functionality - just don't want to reinvent the wheel and couldn't immediately see this in the docs.
Also I am not sure if this belongs here or in jupyter/configurable-http-proxy. Given the proxy server faces externally it may be the best repo to track this request.
[Label: Feature Request]

If this is for your own tmpnb deployment with your own setup, the argument you pass to orchestrate.py is --redirect_uri with the path you want (it defaults to /tree). In this case you'd want orchestrate.py --redirect_uri='notebooks/some_notebook.ipynb'
However, it sounds like you want for a user that hits your given tmpnb server to redirect with that notebook running:
https://mytmpnb/notebooks/1.ipynb --> https://mytmpnb/user/adfe/notebooks/1.ipynb

People have definitely asked for that and I've held back on implementing it (myself) solely because I want to steer clear of possible XSS avenues. It's totally fine if you submit a PR for it though and make it not default behavior (configurable somehow).

If I understand --redirect_uri correctly - it's a one shot setting - all requests made to the running cluster of containers will serve the same notebook.
Your redirect example is exactly right - in that I would like dynamic forwarding of a requested notebook through the proxy assignment stage. The use case I am thinking about is to have a separate deployment and have links embedded in a lecture such that a student can click on the link and be directed to running notebook that contains the executable code straight away in a new tab. The server side would then garbage collect idle instances.
I will have a more considered think about how this might be done and put together a proposal.


Generate Liscon NFT tokens metadata

Minting Contract code - https://github.com/TokenScript/attestation/blob/b545e1a640e3623206b24bdd76f9ba4f95879296/ethereum/attestation-test/contracts/AttestationMintable.sol
Contract address - 0xd2336c95896f8165D9e46Db4671d83ceA90C87F3
Network - Rinkeby
tokenURI() according to the rules: https://github.com/AlphaWallet/AlchemyNFT/blob/main/docs/PERMALINKS.md (in the contract code its different, but updated after contract deployed)
@JamesSmartCell , can you, please, update tokenURI() in the contract?
@foxgem , can you help with listen for that contract events and generate NFT metadata? After testing we will deploy same contract to the multiple networks and have to listen for them too.
@tomek, can you create image template and metadata content for the Liscon NFT ?
content example:
{
"name":"...."
"description":"....",
"image":"image_will_be_pregenerated_from_template_by_ticketID",
"attributes":[]
}
@AW-STJ , can you check if Tomek tagged correctly? (github doesnt autofill Tomek, maybe he is not asigned to that repo)

@oleggrib it's @colourfreak

@oleggrib it's @colourfreak

Thank you, but @colourfreak is not in this repo contributors list.

@foxgem , can you help with listen for that contract events and generate NFT metadata? After testing we will deploy same contract to the multiple networks and have to listen for them too.

please confirm my understanding about business is right:

the trigger is: mintUsingAttestation, if the passed attestation is valid, a ticket is minted.
then transfer event will be emitted.

what we need to do: listening for the transfer event and then generating the metadata / image in the event handler.
what we need:

metadata template for each token minted.
image template
if a contract metadata is required, the template for it also have to be given.

btw, what repo will we use? I personally think this requirement is a project specific, shouldn't we open this issue in a project github repo?

@foxgem , yes, correct.
trigger is mintUsingAttestation, if attestation valid then token minted and event Transfer( 0, address) created.

btw, what repo will we use? I personally think this requirement is a project specific, shouldn't we open this issue in a project github repo?

@colourful-land , can you decide ?

Liscon test contract is updated on Rinkeby here: 0x74D2769a4092A021C7A47b7d3e4E2ACa75C4c7de
This contract has the updated Token URI

metadata template for each token minted.
image template
Would this design be enough to create the Liscon NFT ticket image generator:
https://app.zeplin.io/project/5fe1c9ddd9d426343ebdf912/screen/61a888cc9cc73c9f543695c4

if a contract metadata is required, the template for it also have to be given.
I will do it.

btw, what repo will we use? I personally think this requirement is a project specific, shouldn't we open this issue in a project github repo?
That is correct. Which repo did we use for Liscon? Ideally we should have this ticket under that repo rather than in attestation repo.

@AW-STJ
example metadata links:

remix token metadata: https://alchemynft.io/137/0x222222222291749de47895c0c0a9b17e4fca8268/67.json
remix v1 contract metadata: https://alchemynft.io/contracts/amx.json

That is correct. Which repo did we use for Liscon? Ideally we should have this ticket under that repo rather than in attestation repo.

@oleggrib can you help this?

https://github.com/TokenScript/LisCon
we use this repo to auto-deploy LisCon files to the hosting

@tomek, can you create image template and metadata content for the Liscon NFT ?
content example:
{
"name":"...."
"description":"....",
"image":"image_will_be_pregenerated_from_template_by_ticketID",
"attributes":[]
}

No idea what do you want me to do. I need more context, more explanation. What do I have to do with the above data? Image template? What do you mean by this? Example, simple sketch or drawing would be helpful.

@colourfreak , we need some creative template of Liscon NFT metadata in the next example format:
{ "name":"Proof of presence at Liscon Conference #222839947262873898129289" "description":"The NFT is unique for each Liscon Conference Ticket, ensures participation in conference at Oct 20-21, 2021, Lisbon ...", "image":"image_will_be_pregenerated_from_template_by_ticketID", "attributes":[     conference: "...",     date: "..."     ... ]}
maybe worth to add attributes, like in example.

Do you mean the same info in the different background? @oleggrib

what is the use of it? In which context? What is the size of it?

I still don't understand it.

what is the use of it? In which context? What is the size of it?

size is up to you. It will be Liscon Ticket metadata. It will be visible in OpenSea and other marketplaces. You can see similar data for any NFT in OpenSea,
this is example metadata from autographnft.io

{"name":"Colors","description":null,"image":"https://rinkeby.alchemynft.io/upload/0xf52da9e1fd0a032c4b13659a18fff5a03a211a62395d3cb2ecbe29bfd9a889f4-1629999188513.png","attributes":[],"external_url":"https://testnet.autographnft.io/0x0000853abe6fa93f276b62f6984b75ff2f9dc30e/204/make-offer/"}
but this one contains empty description and attributes

Not sure why it's me who is doing this. It does not look like UI work. I can try, but let me learn in which language this is written. XML?

basically we need nice-looking creative

tokenName
tokenDescription
maybe some creative attributes list

dont care about format, we just need data. cc @AW-STJ , does @colourfreak have to do it?

@AW-STJ It's not my job. I don't have any experience in writing metadata. "Experience": null; It will take time till I will learn it. I could cook Hungarian national soup with no experience and it would be the same journey for me. Learn then build.

"Description": "LisCon is a celebration of our culture and values, a coming together of builders, thinkers and creators across the space"
"Package": "Full"
"ID": "244"
"Type": "Physical"

Again, I am not a right person to do this task. I don't know much about Liscon, I don't know JSON. Sorry.

@AW-STJ It's not my job. I don't have any experience in writing metadata. "Experience": null; It will take time till I will learn JSON. I could cook Hungarian national soup with no experience and it would be the same journey for me. Learn then build.

Hey @colourfreak - I will take care of the metadata. However, thank you for taking the journey of learning and attempting to get the job done with what you have. Love the spirit.

{
"name":"LisCon 2021 Ticket #222839947262873898129289"
"description":"LisCon is a celebration of our culture and values, a coming together of builders, thinkers and creators across the space. This NFT is the token avatar of original ticket, minted by the ticket holder after the event",
"image":"image_will_be_pregenerated_from_template_by_ticketID",
"attributes":[
Year: "2021",
]}

The feedback for the current version of ticket minting.

The user have to connect to Metamask again. Can we skip this step of connected to Wallet twice?

There is no loading screen and then success message to show to the user that the minting process is underway. I had to refresh the screen to get the NFT minted screen below.  Can we do the process like how AutographNFT behaves right now.

Will share more feedback a I test further.

@AW-STJ , I have added notifications pop-up and centered attestation.id iframe


Keras fit interface

New Module: Deep Learning support with Keras
This is an introductory commit to supporting Deep Learning in MADlib.
The goal of this feature is to make it easy for data scientists to
develop models using deep learning on data residing in
Postgres/Greenplum database. We do not want users to have to move their
data from their database to another place in order to do deep learning.
The current implementation stands with the following requirements:

The database host has Tensorflow and Keras set up.
Users must use MADlib's minibatch_preprocessor_dl() module to
pre-process their data, since this module expects the data to be in
the format output by minibatch_preprocessor_dl().
The model architecture is expected to be stored in a different table,
which is passed along as a param to this module.
If there are no GPUs in the host, the use_gpu param must be set to
false while calling this module.

There are a number of hard assumptions that we make, which must be
addressed in other JIRAs (not a complete list).
TODO JIRAs:

Postgres support for Deep learning ().
There is a hard assumption regarding the number of GPUs per host,
which should be fixed as part of another JIRA ().
Documentation for the module ().
Generalize and refactor predict.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/madlib-pr-build/771/

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/madlib-pr-build/772/

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/madlib-pr-build/774/

When I run dev-check, I get this error:
psql:/tmp/madlib.xNO5vR/convex/madlib_keras.sql_in.tmp:60: ERROR:  plpy.Error: A plpy error occurred in the step function: ImportError: No module named keras (plpython.c:5038)  (seg0 slice1 <IP_ADDRESS>:25432 pid=98371) (plpython.c:5038)

I've investigated this, and I have a theory about what causes this.
My keras is installed under /usr/local/lib/python2.7/site-packages, and that directory is included in my PYTHONPATH.  If I run madlib functions that only include one level of calls to plpy, then everything is fine.  And even in the madlib_keras_fit() function itself, the "import keras" statement at the beginning of malib_keras.py_in works the first time it is imported.  But after it successfully imports keras, it executes a SQL command to run fit_step().  It's somewhere around this point that fit_step() modifies the environment to remove /usr/local/lib/python2.7/site-packages from the PYTHONPATH.  And while madlib_keras.py is being loaded the second time to call fit_step(), it fails.
This could be due to a general issue with Greenplum, namely that greeplum_path.sh always removes everything from the PYTHONPATH except for specific python library directories under $GPHOME.  This isn't usually a problem, since you can call greenplum_path.sh first in .bashrc and then add any other directories afterwards.  (What I do on my system.)  But possibly, this is what's causing things to fail when there is a nested call to a plpy function inside a sql function inside a plpy function inside a sql fucntion.  Not sure if there are other examples of this in our codebase?

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/madlib-pr-build/781/

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/madlib-pr-build/787/

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/madlib-pr-build/788/

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/madlib-pr-build/790/

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/madlib-pr-build/791/


How to use ADTag with docker one-line runner code????????

So as the title shows I'm using the docker image and the one-line runner code you've provided to start my proxy:
$ docker run --name mtg --restart=unless-stopped -p 3128:3128 -p 3129:3129 -d nineseconds/mtg:stable my-defined-secret
in this case the proxy starts with absolutely no problems.
The problem is that you haven't provided any information about how to implement adtag in this one-line runner code.
I tried to add my Adtag to the end of the code but then the the proxy server wouldn't start at all.
$ docker run --name mtg --restart=unless-stopped -p 3128:3128 -p 3129:3129 -d nineseconds/mtg:stable my-defined-secret my-adtag
log file:
mtg-error-log.txt
so can you please illustrate the way to implement adtag?

Can confirm: adtag doesnt work.
mtg crashes with code 2 when you provide adtag argument

Weird, this is another problem, not related to adtag. I'll take a look, thanks!

Yep, seems that Telegram has changed an output of their API call and I have to rework this part of the code a little bit. Gonna do it tomorrow.

Yep, seems that Telegram has changed an output of their API call and I have to rework this part of the code a little bit. Gonna do it tomorrow.

well I'm happy to hear that you're fixing the issue as I really like the smoothness of your bullshit-free mtproto proxy.

@TabPaD @p-hash please check. Fix has been released as a stable release v0.13, stable and master branches.

@9seconds works fine, thanks a lot for bullshit free proxy

I confirm it's working fine now. Thanks..


Support uppercase environment variable names

Github REST API supports case-sensitive names on this endpoint
so we should always create (POST) variables with the desired case.
On subsequent GET, PATCH, and DELETE requests the Github REST API
will use loose matching to find any existing objects, ignoring case.
So in general we need to force to lowercase to perform diffs, and respect
the provided case for create, but for all other calls it doesn't matter
which case is used.

Superseded by https://github.com/product-os/safe-settings/pull/5


Capitalization in permissions

Is it standard practice to require all lowercase letters in the permissions? I have a world named "Survival" but if I give users the permission "multiverse.access.Survival" it doesn't work. Only "multiverse.access.survival" works correctly.

Hmm this looks like a bug. You are correct, I think it uses _s if you have spaces in the world name, but would have to confirm.
Will look into. Thanks.
--FF

Can't reproduce using PermissionsBukkit 1.2k and MV-Core b418. Steps tried:

Set up a new server. Grant a user permissions:

multiverse.access.world
multiverse.teleport.*

Log in as that user. Appear in world world.
Create (from console) a world Capitalized.
As the user, issue /mvtp Capitalized. Be denied permission, as expected.
Grant the user multiverse.access.Capitalized. Reload permissions.
As the user, issue /mvtp Capitalized. Appear in world Capitalized.

For what it's worth, lowercasing the permission (multiverse.access.capitalized) does work as well. However, as this isn't really a bug (in my opinion), closing.

Should have listed versions but I'm glad it works, thanks.


Switch to new AppVeyor uploader

Codecov Report

Merging #215 (8689511) into master (798ea18) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##            master      #215   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           18        18
  Lines          147       147
  Branches        20        20
=========================================
  Hits           147       147

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 798ea18...8689511. Read the comment docs.


Dynamic scram example

Upgrades the SCRAM example to use dynamic-scram (this is on top of https://github.com/crossbario/autobahn-python/pull/1024 so merging that first should make this just one commit)
See also https://github.com/crossbario/crossbar/pull/1351
Only merge after the above Crossbar features has been released!

Codecov Report

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

@@           Coverage Diff           @@
##           master    #1025   +/-   ##
=======================================
  Coverage   61.27%   61.27%
=======================================
  Files          74       74
  Lines       13141    13141
  Branches     2091     2091
=======================================
  Hits         8052     8052
  Misses       4386     4386
  Partials      703      703

Impacted Files
Coverage Δ

autobahn/wamp/test/test_auth.py
100% <ø> (ø)
:arrow_up:

autobahn/wamp/auth.py
64.2% <100%> (ø)
:arrow_up:

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 70545e6...c36bcee. Read the comment docs.


Improve page size and load speed

https://developers.google.com/speed/pagespeed/insights/?url=https%3A%2F%2Fhomebrewery.naturalcrit.com%2F

[x] Compress Javascript & CSS bundles
[ ] Remove unused code (entire "welcome" page is sent with EVERY request)
[ ] Compress images
[ ] Cache resources as much as possible

Those timings are weird .. 21.1s to interactive ?1?
But yes, gzipping static resources at a minimum.
As well as setting caching for those static resources (but deffo not the /edit/mumbles page)

PR #1098 compresses the static .js and .css bundles. Total size from 3.68 MB to 971 KB.

The images for border treatments of snippets and the red hr are all sourced via a data URI - nothing to cache there.
The favicon.ico image is cached.
The googleDrive.png and googleDriveMono.png images are not cached — they should be.
They can also be compressed (306K → 62K, 18K → 2.4K)
The bundle.css and bundle.js files are not cached — they should be, but in a manner that can be easily invalidated.

Cache resources as much as possible

I will take a look at that. I've got something working locally, but it needs a bit of adjustment and prettifying before being published as a PR

Cache resources as much as possible

I will take a look at that. I've got something working locally, but it needs a bit of adjustment and prettifying before being published as a PR

Each of the checklist items has been handled. Probably room for further improvement but we've improved quite a bit just with this. Closing.


Set defaults on the provider.

Community Note

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

Thank you for opening an issue. Please note that we try to keep the Terraform issue tracker reserved for bug reports and feature requests. For general usage questions, please see: https://www.terraform.io/community.html.
PingFederate Terraform provider Version
Check the version you have configured in your .tf files. If you are not running the latest version of the provider, please upgrade because your issue may have already been fixed.
registry.terraform.io/pingidentity/pingfederate v0.8.0

PingFederate Version
Check the version of the PingFederate server being configured.
11.3

Terraform Version
Run terraform -v to show the version.
Terraform v1.7.4

Affected Resource(s)
Please list the resources as a list, for example:
pingfederate_authentication_policy_contract {}

Terraform Configuration Files
# Copy-paste your Terraform configurations here - for large Terraform configs,
# please use a service like Dropbox and share a link to the ZIP file. For
# security, you can also encrypt the files using our GPG public key.

# Remember to replace any account/customer sensitive information in the configuration before submitting the issue

Debug Output
Please provide your debug output with TF_LOG=DEBUG enabled on your terraform plan or terraform apply. Please provide a link to a GitHub Gist containing the complete debug output: https://www.terraform.io/docs/internals/debugging.html. Please do NOT paste the debug output in the issue; just paste a link to the Gist.
Panic Output
If Terraform produced a panic, please provide your debug output from the GO panic
│ Error: Missing required argument
│
│   on policy_contracts.tf line 39, in resource "pingfederate_authentication_policy_contract" "authenticationPolicyContractExample":
│   39: resource "pingfederate_authentication_policy_contract" "authenticationPolicyContractExample" {
│
│ The argument "core_attributes" is required, but no definition was found.

Expected Behavior
If the core attribute of subject is a read only attribute on the schema, the provider resource should not require it to be set as the value is already known.
Actual Behavior
What actually happened?
I suggest that read only attributed are defaulted.
Steps to Reproduce
Please list the steps required to reproduce the issue, for example:

Create either resource.

resource "pingfederate_authentication_policy_contract" "authenticationPolicyContractExample" {
  contract_id         = "authenticationPolicyContract"
  core_attributes     = [{ name = "cheese" }]
  extended_attributes = [{ name = "extended_attribute" }, { name = "extended_attribute2" }]
  name                = "example"
}

resource "pingfederate_authentication_policy_contract" "authenticationPolicyContractExample" {
  contract_id         = "authenticationPolicyContract"
  extended_attributes = [{ name = "extended_attribute" }, { name = "extended_attribute2" }]
  name                = "example"
}

References
Are there any other GitHub issues (open or closed) or Pull Requests that should be linked here? For example:

GH-1234

@ashhammond, thank you for the feedback! We have addressed this in our codebase and this fix will go out in the v0.9.0 release of the Terraform provider.

@ashhammond, v0.9.0 of the provider was just released and the fixes related to this issue are included. Thanks again for the issue post!

@wesleymccollam thank you.


merging streams manually

is there a way to manually merge the streams if there was an issue with ffmpeg that prevented it from running after the stream finished downloading?  i tried running ytarchive --merge -o '%(title)s-%(id)s' '(stream url)' in the directory with the video and audio .ts files but it gives an error about the stream being members only and exits without attempting to merge.

--merge is just a way to not be prompted to merge if the download is manually stopped, it doesn't attempt to merge already downloaded files.
See #75 for what I plan to do in the event the merge fails.


StringOrderedModel performance

I am using the StringOrderedModel to store around 70k objects with max depth around 6-8. When I try to find the ancestors of an object of 2 to maybe 3 ancestors it takes about 500ms. I tried to put an index on the 'name' field but that does not have a an impact. Is this a known behaviour or is there something I could do differently?

I'm not sure. I'd first try finding out what the problem is by EXPLAINing the query and looking where the database actually spends so much time.
When using recursive CTEs, each query has to build the whole tree from the start. It may be that 70k is a bit much for this, but I'd first look whether the problem may be fixed by using another ordering field. I'm not sure.

I am trying to create a (static) filebrowser in my app. This is my FolderTree model:
class FolderTree(TreeNode):
    name = models.CharField(max_length=255)
    fullpath = models.CharField(max_length=255, null=False, blank=False, unique=True)
    isfile = models.BooleanField(default=False, null=False, blank=True)
    hasdoc = models.BooleanField(default=False, null=False, blank=True)
    document =  models.ForeignKey(Document, null=True, blank=True, related_name='folder', on_delete=models.PROTECT)
    file_extension = models.CharField(max_length=10, null=True, blank=True)
    deleted = models.BooleanField(default=False, null=False, blank=True)
    descendant_files = models.IntegerField(null=True, blank=True)
    isarchived = models.BooleanField(default=False, null=True, blank=True)
    archived_files = models.IntegerField(null=True, blank=True)
    date = models.DateTimeField(null=True, blank=True)

    class Meta:
        ordering = ("name",)
        unique_together = (("name", "parent"),)
        indexes = [
            models.Index(fields=['name', 'isarchived']),
        ]

    def __str__(self):
        return self.name

I fill this model with this class (TL;DR: what just traverses a root directory and creates objects of files and directories with some extra fields basically):
class CreateFolderTrees():
    """
    This class will fill the FolderTree Model by recursively scan the
    rootfolder for files and directories.
    start_sequence: Will begin scanning and filling
    """
    def __init__(self, rootfolder) -> None:
        self.rootfolder = rootfolder

    def return_relative_path(self, fpath):
        p = PurePosixPath(fpath)
        if str(p) == '.':
            return 'root'
        else:
            return str(p.relative_to(self.rootfolder))

    def return_extension(self, fname):
        f = PurePosixPath(fname)
        ext = f.suffix
        ext = ext.replace('.','')
        if len(ext) < 10:
            return ext
        else:
            return ''

    def folder_actions(self, dir_path, parent):
        """Will list a directory for files and dirs and will create FolderTree objects. Recusively will do the same thing when it detects
        a directory.
        """
        rel_dir_path = self.return_relative_path(dir_path)

        dirs = []
        files = []
        for entry in os.scandir(dir_path):
            if entry.is_dir():
                dirs.append(entry)
            elif entry.is_file():
                files.append(entry)

        for f in files:

            arguments = {"name" : f.name, "isfile" : True, "parent" : parent, "date": datetime.datetime.fromtimestamp(os.stat(f).st_mtime)}
            print(arguments)
            f_relative = self.return_relative_path(f.path)
            arguments["fullpath"] = f_relative
            arguments["file_extension"] = self.return_extension(f.name)
            try:
                document = Document.objects.get(file_path=f_relative)
                arguments['document'] = document
                arguments['hasdoc'] = True
                arguments["date"] = datetime.datetime.fromtimestamp(os.stat(f.path).st_mtime)
            except:
                pass
            FolderTree(**arguments).save()

        for d in dirs:
            d_relative = self.return_relative_path(d.path)
            f_date = datetime.datetime.fromtimestamp(os.stat(d.path).st_mtime)
            par = FolderTree(name=d.name, fullpath=d_relative, parent=parent, date=f_date)
            par.save()
            self.folder_actions(d.path, parent=par)

    def start_sequence(self):
        """This method will start the filling. Use this to start after initializing the class"""
        #create root
        parent = FolderTree(name='root')
        parent.save()
        self.folder_actions(self.rootfolder, parent=parent)

I counted around 70k objects (4400 dirs and the remaining are files) after the model has been filled. So when I want to find out the ancestors of one dir and count the ancestors:
FolderTree.objects.get(pk=1000).ancestors().count
Whit timeit I measure that this query takes about 500ms.

I meant: Trace the executed SQL statements (for example with django-debug-toolbar) and EXPLAIN them (EXPLAIN is a PostgreSQL statement which shows the execution plan etc.)
But; you say you have 4400 dirs and about 66k files. Why not separate folders and files? Is it necessary to save files as FolderTree objects?
Maybe the performance problem just goes away when the CTE "only" has to process about 4400 folders.

Yeah maybe that separation is a good idea. I could just add files as related objects to the folders as files do not have children. Will try that, thnx.
But actually my question was more if you had experience with larger tables or that maybe I was making a stupid mistake in coding (I always suspect myself first 🤣)

I unfortunately (fortunately? 😅) do not have experience with large trees. Large tables yes, but not large trees. Most trees I work with have tens or hundreds of nodes, seldom thousands.