[New Model]: Just-in-sequence part aspect model (JustInSequencePart)

Model Description
Just-in-sequence (JiS) parts are parts that are made to order and delivered to a customer in a specific sequence to be built into the customer's product in the delivered sequence. Highly individualized parts like car seats or wiring harnesses are typically JiS-Parts. Some of them can't be identified by a serial number or a batch ID. But they can be identified by using a combination of their parent parts, the call-off numbers, and the call-off date used to order such a part.
Thus in order to improve the traceability of such parts, a combination of these keys is needed.
At the same time, some supply chain participants do not have a part ID (on part type level) for the individual variants of such parts, which is mandatory for serial parts. Because of this and also semantic considerations you can't reuse existing as-built models even if adapting them.
Relevant Standards
none
Example Data

jisPartAsBuilt
LocalIdentifiersmanufacturingInformationcatena-X IdpartTypeInformationKeyValuemanufacturerIdBPNL of JIS-SuppliermanufacturerPartIdPartNumber JIS Supplier or PartFamilyjisNumberCall-Off NumberjisCallDatecalloff date parentOrderNumber (optional)VIN/VAN or Ordernumber (OEM)KeyValueproductionDateProduction datecountry (optional)Country of Production location KeyValuemanufacturerPartId (optional)PartNumber JIS Supplier or PartFamilycustomerPartId (optional)PartNumber Customer or PartFamilyclassificationcomponentnameAtManufacturerSITKBR1 (e.g. Part-Family of Customer)nameAtCustomer (optional)SITKBR1 (e.g. Part-Family of Customer)

MS1 Criteria

[ ] The proposed aspect model does not exist already
[ ] The proposed aspect model does not extend an existing aspect but introduces completely new functionality
[ ] The proposal references a Catena-X use case
[ ] Relevant standards are mentioned/linked
[ ] A first draft of the data structure is provided in an example

modeling_team

[ok] similar model exists (part typization), but optional partId necessary in new model
[ok] standardised traceability of JiS parts (optional partID)
[ok] traceability
[ok] no standards existent, different numbers
[ok] example given

MS1 approved!
@bs-jokri

closed by #124


Make GPAD export uniprot-centric for human reactome models

In cases where imported models may use vocabularies other than uniprot to identify genes, e.g. reactome entity ids, ensure that the gpad export process maps these to their uniprot counterparts (for human).

Should we expand on this to make it go beyond just Reactome? Another example: MGI imports annotations from UniProtKB that are to mouse proteins. When we load those annotations, we convert the UniProtKB identifers to MGI gene identifiers and we export them as annotations to MGI genes (identifiers) in our gaf. Down the road, all of this will be done at the GOC. Would it make sense to have a unified strategy for data flow where in the primary resource, identifiers that come from the respected groups are retained, but when we output them, they are associated with the sanctioned identifiers from each of the respective MODs (ie are in their GPI files)? Just seems like we are going to have to face this problem again in the future as part of multiple data loads. @kltm @cmungall @vanaukenk

Noting: https://github.com/geneontology/go-site/issues/756#issuecomment-470240536
I believe that there is another Uniprot-centric one out there somewhere, but I'm having trouble finding it...

I've made models for human genes using UniProt identifiers. Is that what you are looking for?

http://noctua.berkeleybop.org/editor/graph/gomodel:586fc17a00000528

@ukemi I'm referring to a ticket that I believe exists that discusses the use of Uniprot for out put, similar to @cmungall 's comment in geneontology/go-site#756, but as a ticket item.

Ah. OK sorry.

I do think that the sentiment expressed in geneontology/go-site#756 applies here and argues for a fairly general purpose solution as @ukemi was saying.  When working at the dumbed-down level of flat, tab-delimited export files, we should indeed try to keep the gene identifiers in as consistent a form as we can.
Bringing this back into the Minerva space for a moment.  This implies that, assuming we allow for the use of identifiers within Noctua that are different from what we want to output generically (as I strongly think we do) then we need to define a protocol for delivering the mapping from whatever the other source is (e.g. reactome, ncbi gene, ensemble gene, etc.) to the default id space for that organism (e.g. UniProt for human).
For the Reactome work, on this issue, I constructed a (one to many) mapping from reactome entity id to UniProt id. This could be applied at the point where GPAD is constructed to deliver the annotations in the UniProt id space.  Is it scalable to build a collection of mapping files like that in advance and load them into Minerva?  How many would we need ?  There is likely to be custom logic to apply depending on the source and target of the mappings.

It was my understanding that this was the purpose of the GPI file. Each authority (MOD) would define valid identifiers for their organism's annotation space. For most (all?) MODS those would map to their gene identifiers.

@ukemi I think the issue occurs when there is more than one identifier representing what some users would assume is the same concept within the noctua/go-lego entity space.  The fact that that happens seems to indicate that the GPI files aren't the only place where entity ids are retrieved from.  That is certainly the case for the trouble I am causing with Reactome and REO..  My suggestion is that it ought to be okay to add additional identifiers into the mix as long as there is a way that Minerva can convert them to the default space for the given organism (as I guess could be determined by its GPI).  We want to have access to the mappings within go central software.

Closing as code currently implements uniprot-centric gpad export for human models.  If we want to expand on this concept, lets open a new issue as that would likely touch many different projects (neo, go-site, gpis, etc.)

@goodb We still need some curators to sanity check the annotations that are coming from the models. @deustp01 and I still haven't had a chance to do that yet.

@ukemi yes, GPAD not done.  Though I think uniprot part is.  Consolidating over to https://github.com/geneontology/pathways2GO/issues/52

Good to separate out the tasks.


New Display Switch

Feature Suggestion
Expedia Group (EG) would like to propose an OS contribution for a display switch feature that follows a mouseover:   New Display_switch_video .
Something similar is already on our EG’s Backstage:  Existing_switch_video .
Questions

Does this new display switch feature need OS contribution for us to use or is it not needed because it’s similar to the one existing?
If it does, what else can we provide you?

Usage
The switch feature is to display metrics and additional information.
Tooltip will tell what the graph is about.

First of all I think this looks good and makes this more understandable! :)
Is this additional features to an existing component or is this a new "score card" component?
@Xantier and his team at roadie has been working on the backend parts of tech insights and this looks very related but for the frontend. Perhaps there's some opportunities to work together on those efforts!

Could this be something to be added as a higher order wrapper component for the core framework where the integrator can pass in default displayable component and the hover component?

This would be a replacement component.
What’s shown in  Existing_switch_video is really a design bug. We are replacing this behavior with “I” information icon via tooltip and static progress indicator. On projects where it’d benefit to show an additional information will be conveyed as shown in New Display_switch_video.

@jhaals @Xantier I a UX designer and still new to the OS contribution process. Would a good following step be to start developing this ourselves or have our developer contact Xantier directly to discuss a possible collaboration effort in detail?

Absolutely. If there's a need to bounce off ideas, ask questions etc. I'll be available on the Backstage Discord during (central european) working hours.

I assume this is for the Gauge component and it should be fine to just add it as optional props on that component.
I'm not sure about how the implementation would look for the higher order wrapper component but feel free to explore it if you'd like! :)

Closing as #8807 is now merged.


Changes to work with a real PandA

Block names can have numbers in
Type hints seem to work better on the class, not instance
Added demo

Tests still need fixing...


[d3d11] Handle invalid texture extents on creation

d3d11 has a max 2D texture width/height of 16384 and and 3D of 2048 w/h/d.
If the dimensions exceed these values, on native, E_INVALIDARG is returned.

We should rather look at hardware limitations (in the backend) rather than these cosntants. They should match on most hw, but d3d11 could support larger textures in the future.

According to the documentation and debug layers, these values are hardcoded and are constant for all hardware:
https://docs.microsoft.com/en-us/windows/desktop/api/d3d11/ns-d3d11-d3d11_texture2d_desc

I also understand that this will probably get caught by the DXVK backend also as it would fail to create the image -- but I have in the past had a GPU hang when a ridiculous size buffer when I was testing D9VK. The same may not apply for textures, but I figured it may be a better solution to early out here to avoid anything like that.
I should probably log it also, stating the Width/Height/Depth.

Actually I should learn to read my own code, we already have a check:
https://github.com/doitsujin/dxvk/blob/90c7878a53651fad3206dd42ffac4790afee5ae5/src/d3d11/d3d11_texture.cpp#L301-L306
Since hardware limits pretty much exactly match D3D11 requirements these days, this should work, and I don't see any reason to disallow bigger textures in the future, should hardware allow it.


Add German Random Words

[x] My submission is formatted according to the guidelines in the contributing guide
[x] My addition is ordered alphabetically
[x] My submission has a useful description
[x] The description does not have more than 100 characters
[x] The description does not end with punctuation
[x] Each table column is padded with one space on either side
[x] I have searched the repository for any relevant issues or pull requests
[x] Any category I am creating has the minimum requirement of 3 items
[ ] All changes have been squashed into a single commit

Hi @MaximilianFreitag
Thanks for your contribution ;)
We have some problems with Public APIs, so we won't be able to review/add this improvement right now.
Read this issue for more information, please: https://github.com/public-apis/public-apis/issues/3104


Upgrade python to 3.9 for yara_av_v2 lambda

Tested with python to 3.9 in AWS and it's working fine

Looks good. Did you test this upgrade?

Yeah, it seems working fine. https://eu-west-2.console.aws.amazon.com/cloudwatch/home?region=eu-west-2#logsV2:log-groups/log-group/$252Faws$252Flambda$252Ftdr-yara-av-v2-intg/log-events/2023$252F10$252F03$252F$255B$2524LATEST$255D697c286ba464459dabe204db5909d0c7


isoWeekday(String) inconsistent with isoWeekday(Number) on Sunday

isoWeekday(7) gives me Sunday of this iso week (monday-sunday)
isoWeekday("Sunday") gives me the Sunday of previous iso week

version: https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/moment.min.js

That's correct. This Sunday is isoWeekday(0) and "Sunday" is an alias for 0, not 7.

I figured that's how it's implemented and understand what you mean now, but the result was a bit counter-intuitive from my point of view. The documentation says:

Gets or sets the ISO day of the week with 1 being Monday and 7 being Sunday.
moment().isoWeekday(1); // Monday
moment().isoWeekday(7); // Sunday

So in an ISO week, 7 is always Sunday. The documentation of the alias says:

As of 2.1.0, a day name is also supported. This is parsed in the moment's current locale.
moment().day("Sunday");

So with those two pieces of information it might be a little bit confusing when you do:
moment().isoWeekday("Sunday")
I would expect it to give the same result as moment().isoWeekday(7).
Apart from that, if you say "Sunday" is an alias for 0, this might conflict with the documentation here:
If the locale assigns Monday as the first day of the week, moment().weekday(0) will be Monday. If Sunday is the first day of the week, moment().weekday(0) will be Sunday.
Not trying to brag, just want to explain why this was unclear for me. Maybe a note in the documentation stating that "sunday" is an alias for 0 would be useful.

Fair point. It could be that it should be an alias for 7 or that 0 vs 7 should behave differently. I'm not immersed enough in the details to be sure what the right thing to do is, so I'll just leave this open.

Taking a look at this again.  The docs only talk about being able to pass "Sunday" with regard to the day function, not weekday or isoWeekday.  They should probably be updated.
Then, I'd agree that for isoWeekday, the "Sunday" alias should be changed to match 7, not 0.  That it currently matches 0 is a bug, since that's the whole point of the isoWeekday function.

A PR would be welcome.  First, submit a PR to fix the behavior of the isoWeekday function.  Then, submit a separate PR to https://github.com/moment/momentjs.com with the documentation change.

I'm trying to generate date via year, week and day number i.e let date = moment().year(2019).isoWeek(1).isoWeekday(1).toDate(); //Mon Dec 31 2018 11:56:45 GMT+0100 (Central European Standard Time)
the problem i'm facing when i want to get year and week from generated date moment(date).year() | moment(date).isoWeek()  I got the wrong. NOT SURE HOW TO SOLVE THIS


Fix docs asset file paths in /grunt/configBridge.json

Previously, when running the docs locally, the site, rooted at:
http://localhost:9001/
would reference docs assets using relative URLs such as:
/../assets/js/vendor/anchor.min.js
which is equivalent to:
http://localhost:9001/../assets/js/vendor/anchor.min.js
which is nonsense, since the root directory has no parent directory.
Apparently browsers silently ignore this extra .., hence why this wasn't noticed until now.
But if you adjust Jekyll's baseurl setting, this mistake causes incorrect URLs to get generated.
This PR corrects the problem by removing the extra ../ from the paths.
These paths are also referenced in the Gruntfile, where the fix actually allows us to simplify the code.
Previously, in the Gruntfile, we were doing, e.g.:
path.join('./docs/assets', '../assets/js/vendor/anchor.min.js')
which calculates to:
./docs/assets/../assets/js/vendor/anchor.min.js
which can be simplified to:
./docs/assets/js/vendor/anchor.min.js
So we can remove the /assets suffix from the left argument
and the ../ prefix from the right argument
and still obtain the same result.
/fyi @hnrch02 @XhmikosR @juthilo

(Refs #20179)

I wonder, can't we just use relative to the server root paths everywhere? Since we are using a custom domain, it should work just fine.

@XhmikosR #20179 has multiple instances of the site under the same domain, so that wouldn't work in that case, unless I'm misunderstanding you.

I can't speak about that PR, but personally I'm using relative to root paths for all my Jekyll projects and works fine. Example: /assets/js/foo.js.


Deploy

This deploy contains the following PRs:

Fix mobile test (https://github.com/artsy/force/917)
@broskoski: Proper merge of current user models (https://github.com/artsy/force/916)

  Generated by :no_entry_sign: Danger


[FIX] index modality at same level as sessions

fixes #493

strangely all the tests pass without failing but getting a lot of warnings when testing on real data


Module parse failed - using SCSS to set background image

I saw that the recent version of next-images was updated in order to fix this, but for some reason I can't get mine to work. Is there something wrong with my configuration?
module.exports = withPlugins([withBundleAnalyzer, [withImages, {}]], {
  ...antConfig,
  env: {
    PRODUCTION_API_URL: process.env.PRODUCTION_API_URL,
  },
});

@raindecastro Please make sure that you have the latest version of the next-images and also try to remove empty configurations object. I just want to see if there is a bug in next-images...

@arefaslani Thanks for the help! My next-images is currently at version 1.4.0
I tried it again without the configuration and unfortunately wasn't able to get it to work.
Here's my full next.config.js file

/* eslint-disable */
const withPlugins = require('next-compose-plugins');
const withLess = require('@zeit/next-less');
const withSass = require('@zeit/next-sass');
const lessToJS = require('less-vars-to-js');
const withImages = require('next-images');
const fs = require('fs');
const path = require('path');

// Where your antd-custom.less file lives
const themeVariables = lessToJS(
  fs.readFileSync(path.resolve(__dirname, './assets/antd-custom.less'), 'utf8')
);

const withBundleAnalyzer = require('@next/bundle-analyzer')({
  enabled: process.env.ANALYZE === 'true',
});

const nextConfig = {
  webpack: (config, { isServer, webpack }) => {
    const { IgnorePlugin } = webpack;

    if (isServer) {
      const antStyles = /antd\/.*?\/style.*?/;
      const origExternals = [...config.externals];
      config.externals = [
        (context, request, callback) => {
          if (request.match(antStyles)) return callback();
          if (typeof origExternals[0] === 'function') {
            origExternals[0](context, request, callback);
          } else {
            callback();
          }
        },
        ...(typeof origExternals[0] === 'function' ? [] : origExternals),
      ];

      config.module.rules.unshift({
        test: antStyles,
        use: 'null-loader',
      });
    } else {
      config.plugins.push(new IgnorePlugin(/^\.\/locale$/, /moment$/));
      config.resolve.alias = {
        ...config.resolve.alias,
        '@ant-design/icons/lib/dist$': path.resolve(__dirname, `icons/index.js`),
      };
    }
    return config;
  },
};

const lessConfig = {
  lessLoaderOptions: {
    javascriptEnabled: true,
    modifyVars: themeVariables, // make your antd custom effective
  },
};

module.exports = withPlugins([withBundleAnalyzer, withSass, withImages, [withLess, lessConfig]], {
  ...nextConfig,
  env: {
    PRODUCTION_API_URL: process.env.PRODUCTION_API_URL,
  },
});

Sorry for the late response, unfortunately, I didn't have a lot of free time to fix all the issues of the package in the past couple of months. If the problem hasn't resolved yet, please open a new issue.


set passthrough in RequestMethodRule from configuration parameter

there's a passthrough variable in RequestMethodRule.php, but no way of set it up from configuration parameter.

Thanks for the PR. Will look into it. In the meanwhile you can actually set the passthrough for RequestMethodRule with the code below. I just noticed it is not documented in the README.
$app = new \Slim\App();

$app->add(new \Slim\Middleware\HttpBasicAuthentication([
    "rules" => [
        new \Slim\Middleware\HttpBasicAuthentication\RequestPathRule([
            "path" => "/",
            "passthrough" => ["/public"]
        ]),
        new \Slim\Middleware\HttpBasicAuthentication\RequestMethodRule([
            "passthrough" => ["OPTIONS", "DELETE"]
        ])
    ]
]));

ah, you can initiate it just like that?
I've found passthrough in RequestMethodRule, but I in my last project all my request is GET. so I search in RequestPathRule and found that no parameter configuration was linked to 'passthrough' like there's parameter for 'path'
So with that I made this modification in the code that will allow me to define a 'passthrough' directly in the configuration parameter.
looking at your code, if setting up path's 'passthrough' would need to instantiate RequestPathRule first, why not remove the 'path' configuration parameter and enforce use of initialization of RequestPathRule class like your code above?
but still, having 'path' and 'passthrough' parameter for me is much simple. But then I would think to expose the 'passthrough' option (or any other option) in the RequestMethodRule or in other class too if available

I've found passthrough in RequestMethodRule, but I in my last project all my request is GET.

looking at your code, if setting up path's 'passthrough' would need to instantiate RequestPathRule first, why not remove the 'path' configuration parameter and enforce use of initialization of RequestPathRule class like your code above?

I  am not sure I understand the explanation. What are you trying to achieve?  In other words what problem do you currently have?

Also PR description is about RequestMethodRule. However the PR itself is for RequestPathRule.

sorry, my mistake, it should have been about RequestPathRule. I keep making that mistake even while writing the code.
my problem at first was, all my route is using GET method, but I need one or two route not blocked by authentication. So instead of defining all my route that should be authenticated in 'path' parameter, I was looking a way just to define en exceptional route that could bypass the authentication.

Got it. Thanks!

Merged. Thanks!


Fix lag while printing CLI output

Due to Queues.drain waiting up to 3 seconds for the minimum of 1000 elements to be available which wouldn't happen for smaller output. Use a special end token object to indicate the end of the result reading so the printing thread can unblock from poll.

Fixes the second noted gap in https://github.com/prestosql/presto/issues/2008 although I'm not sure what the brief < 1s gap on initial submission is still. Doesn't appear to be related to the output printing though which was changed recently in https://github.com/prestosql/presto/pull/965

Hrm, looks like this is getting failures like it starts to execute the next command before the previous one hasn't completed e.g. below is complaining schema isn't set but it's set in the previous step:
2019-11-16 02:41:41 INFO: FAILURE     /    io.prestosql.tests.cli.TestPrestoCli.shouldHandleTransaction (Groups: cli) took 3.3 seconds
2019-11-16 02:41:41 SEVERE: Failure cause:
java.lang.AssertionError:
Expecting:
 <["Query 20191115_205641_00880_7ym7k failed: line 1:1: Schema must be specified when session schema is not set",
    "LINE 1: create table txn_test (x bigint)",

at  at io.prestosql.tests.cli.TestPrestoCli.shouldHandleTransaction(TestPrestoCli.java:252)
Not immediately seeing how that would happen, will follow up on this.

Think I fixed the above now, was trying to use Futures.getDone for readability but there's certain paths/short race condition before where the future isn't actually done but the end token has been published to the queue.

I built Travis again and it passed although the previous build did fail due to the CLI getting an empty response somehow (not sure if this is a known intermittent failure although it is suspiciously related to the changes here so it's possible I introduced this somehow). I'm trying to link the old build for reference but I'm not that familiar with the Travis UI on how to recall a previous build, cc @electrum

I found the old build here: https://travis-ci.com/prestosql/presto/builds/136747029
The code looks correct to me. I'll merge this now and we'll keep an eye on the CI to see if there are any intermittent failures that indicate a race condition or other bug. Thanks for fixing this!


Building with LV_COLOR_DEPTH=32 fails

Hello, I'm trying to build the Micropython firmware for an ESP32 project which uses an ILI9488 LCD display.
As written in ili9XXX.py, I need to compile with LV_COLOR_DEPTH set to 32. The build fails because the ILI9341 driver (which I don't use) wants it to be set to 16.
The error I get is:
../../lib/lv_bindings/driver/esp32/modILI9341.c:19:2: error: #error "modILI9341: LV_COLOR_DEPTH must be set to 16!"
 #error "modILI9341: LV_COLOR_DEPTH must be set to 16!"

And I compile with:
make -C ports/esp32 LV_CFLAGS="-DLV_COLOR_DEPTH=32" FLASH_SIZE=16MB BOARD=GENERIC V=1 PORT=/dev/cu.usbserial-A1076LH4 deploy -j 4

I'm on macOS Catalina and the build with LV_COLOR_DEPTH set to 16 succeeds, but obviously throws an error at runtime when trying to load the ILI9488 driver.
This is my first time with Micropython, so I might be doing something wrong.

Hi @persello
You are right, the Makefile included the old C drivers (modILI9341.c) which is no longer supported.
I removed it on https://github.com/lvgl/lv_micropython/commit/83589fd1a163b9b2cbff28e12711fa1190e488ba
Please let me know if this solves your problem.

Compiled successfully, thanks.


Feat: update 24.1.455

Closes #133, #139
Update the serverapi-openapi dependency:

No API definition changes for record lists
Update method calls to use keyword only args
Update Enum definition and associated tests

serverapi-openapi 2.0 dropped Python 3.8 so this PR also drops support for Python 3.8 and adds Python 3.12

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

Comparison is base (225d040) 99.77% compared to head (62bfe28) 99.77%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #137      +/-   ##
==========================================
- Coverage   99.77%   99.77%   -0.01%
==========================================
  Files           4        4
  Lines         439      438       -1
==========================================
- Hits          438      437       -1
  Misses          1        1

Flag
Coverage Δ

integration
?

unittests
99.77% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

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


[BUG] process can not be modify after the user deleted

Describe the bug
After admin delete an user, which has create a lot process. Those process and process instance still can view and run by other user, but no one can modify this process because it is empty when you open the process editor.
To Reproduce
Steps to reproduce the behavior, for example:

Create an user like 'testUser' by admin
Login in with user 'testUser'
Create a process 'processA'
Admin delete this 'testUser' user
Login with other user, and view the process 'processA' which we just create in ProcessDefinition
Click the edit button open the process editor
You will find out the editor is empty

Expected behavior
Current authorization strategy, each user can modify any process under same project, no matter they create this process or not. So I think it is reasonable that the process still can be modify, even though the create user has deleted.
Screenshots

if you open the process which user has deleted, you will get this, the task not show
Which version of Dolphin Scheduler:
-[1.1.0]
Additional context
We make each developer has their own account, and develop their the process for same project, and one process may depend the other one, that's what I think the user design for. But we may delete a user if they quit, a this time, it mean we lost and can not modify the process any more.
Requirement or improvement

I think the process belong to project and some one who has authorized permission can delete or modify them is better

Thanks for the feedback, we will fix it in the new version

you can use administrator to update

For now, you have to transfer the user's projects before you delete them, otherwise would get an error as below.


can not unblock a device

Hi,
Thank you for creating this great add-on! It has been working really well until recent weeks. First, I started to notice it would block my Roku TV completely without adopting the time set by me. I used the ticket to resolve the issue. No big deal. However, today, after I added one android phone to the access control, my kid's computer got blocked completely instead. I deleted it from the access control list, which doesn't help at all. I found that only after I uncheck the globe setting "enabled" box, my kid's computer can get back on the internet. If I check the box again, the computer will be blocked again. Changing block time, or issuing a ticket won't work.  I am wondering as it is not  even on the access control list anymore (as I deleted it), how come I just can't unblock it? Can you help? Thanks! #

Maybe after time shift, there is wrong time setting in you router?
Could you show the screen shot of network/taffic-rules and run on the router's console:
cat /etc/config/firewall
iptables -L -v

Hi, Krzysztof
Thanks for the prompt reply. Now I have to uncheck the enable box in the global setting in order to put this computer back online, and its MAC address doesn't show up in the config rules as I deleted it from the access control. My SHARP ROKU TV is still there as you can see, but the time I set doesn't really work, and it is blocked all the time when the enable box is checked unless I issue a ticket. Do you want me to post the screen shots when the enable box is checked instead? Thanks.

What I saw first, is that your TV is blocked form 4:00 to 2:00, which means:   from 4am to 2am next day.
You've got also two rules named "kids...", which were created outside access-control page. However all 3 rules are not enabled at the moment and as such, they don't appear in the iptables dump.
I'd suggest to remove both kids... rules from firewall/traffic-rules page and reenter them form access-control page to have them under your control.
PS1: you apparently use LEDE 17, which uses different time format and doesn't understand kerneltz switch, unlike earlier versions. This may cause problems. The new version is under work.
PS2: If you submit text dumps please paste text from you console rather, than image. It is searchable and  much smaller.

I can confirm the tickets aren't unblocking the devices properly.
cat /etc/config/firewall
config defaults
option syn_flood '1'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'REJECT'
config zone
option name 'lan'
list network 'lan'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
config zone
option name 'wan'
list network 'wan'
list network 'wan6'
option input 'REJECT'
option output 'ACCEPT'
option forward 'REJECT'
option masq '1'
option mtu_fix '1'
config forwarding
option src 'lan'
option dest 'wan'
config rule
option name 'Allow-DHCP-Renew'
option src 'wan'
option proto 'udp'
option dest_port '68'
option target 'ACCEPT'
option family 'ipv4'
config rule
option name 'Allow-Ping'
option src 'wan'
option proto 'icmp'
option icmp_type 'echo-request'
option family 'ipv4'
option target 'ACCEPT'
config rule
option name 'Allow-IGMP'
option src 'wan'
option proto 'igmp'
option family 'ipv4'
option target 'ACCEPT'
config rule
option name 'Allow-DHCPv6'
option src 'wan'
option proto 'udp'
option src_ip 'fc00::/6'
option dest_ip 'fc00::/6'
option dest_port '546'
option family 'ipv6'
option target 'ACCEPT'
config rule
option name 'Allow-MLD'
option src 'wan'
option proto 'icmp'
option src_ip 'fe80::/10'
list icmp_type '130/0'
list icmp_type '131/0'
list icmp_type '132/0'
list icmp_type '143/0'
option family 'ipv6'
option target 'ACCEPT'
config rule
option name 'Allow-ICMPv6-Input'
option src 'wan'
option proto 'icmp'
list icmp_type 'echo-request'
list icmp_type 'echo-reply'
list icmp_type 'destination-unreachable'
list icmp_type 'packet-too-big'
list icmp_type 'time-exceeded'
list icmp_type 'bad-header'
list icmp_type 'unknown-header-type'
list icmp_type 'router-solicitation'
list icmp_type 'neighbour-solicitation'
list icmp_type 'router-advertisement'
list icmp_type 'neighbour-advertisement'
option limit '1000/sec'
option family 'ipv6'
option target 'ACCEPT'
config rule
option name 'Allow-ICMPv6-Forward'
option src 'wan'
option dest '*'
option proto 'icmp'
list icmp_type 'echo-request'
list icmp_type 'echo-reply'
list icmp_type 'destination-unreachable'
list icmp_type 'packet-too-big'
list icmp_type 'time-exceeded'
list icmp_type 'bad-header'
list icmp_type 'unknown-header-type'
option limit '1000/sec'
option family 'ipv6'
option target 'ACCEPT'
config rule
option name 'Allow-IPSec-ESP'
option src 'wan'
option dest 'lan'
option proto 'esp'
option target 'ACCEPT'
config rule
option name 'Allow-ISAKMP'
option src 'wan'
option dest 'lan'
option dest_port '500'
option proto 'udp'
option target 'ACCEPT'
config include
option path '/etc/firewall.user'
config rule
option ac_enabled '1'
option src '*'
option dest 'wan'
option proto '0'
option target 'REJECT'
option weekdays ' mon tue wed thu fri'
option enabled '1'
option name 'PS4wifi-test'
option src_mac 'A8:47:4A:EE:E7:A1'
option start_time '21:00:00'
option stop_time '22:00:00'
option ac_suspend '1525411872'
iptables -L -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination
0     0 ACCEPT     all  --  lo     any     anywhere             anywhere             /* !fw3 /
724 74379 input_rule  all  --  any    any     anywhere             anywhere             / !fw3: user chain for input /
517 59317 ACCEPT     all  --  any    any     anywhere             anywhere             ctstate RELATED,ESTABLISHED / !fw3 /
1    60 syn_flood  tcp  --  any    any     anywhere             anywhere             tcp flags:FIN,SYN,RST,ACK/SYN / !fw3 /
137  9355 zone_lan_input  all  --  br-lan any     anywhere             anywhere             / !fw3 /
70  5707 zone_wan_input  all  --  eth1   any     anywhere             anywhere             / !fw3 */
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination
322K  418M forwarding_rule  all  --  any    any     anywhere             anywhere             /* !fw3: user chain for forwarding /
24  1501 zone_wan_dest_REJECT  all  --  any    any     anywhere             anywhere             MAC A8:47:4A:EE:E7:A1 TIME from 21:00:00 to 22:00:00 on Mon,Tue,Wed,Thu,Fri / !fw3: PS4wifi-test /
22123 1426K zone_lan_forward  all  --  br-lan any     anywhere             anywhere             / !fw3 /
145K  216M zone_wan_forward  all  --  eth1   any     anywhere             anywhere             / !fw3 /
145K  216M ACCEPT     all  --  any    any     anywhere             anywhere             ctstate RELATED,ESTABLISHED
0     0 reject     all  --  any    any     anywhere             anywhere             / !fw3 */
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination
0     0 ACCEPT     all  --  any    lo      anywhere             anywhere             /* !fw3 /
762  130K output_rule  all  --  any    any     anywhere             anywhere             / !fw3: user chain for output /
499  112K ACCEPT     all  --  any    any     anywhere             anywhere             ctstate RELATED,ESTABLISHED / !fw3 /
3   775 zone_lan_output  all  --  any    br-lan  anywhere             anywhere             / !fw3 /
260 17104 zone_wan_output  all  --  any    eth1    anywhere             anywhere             / !fw3 */
Chain forwarding_lan_rule (1 references)
pkts bytes target     prot opt in     out     source               destination
Chain forwarding_rule (1 references)
pkts bytes target     prot opt in     out     source               destination
Chain forwarding_wan_rule (1 references)
pkts bytes target     prot opt in     out     source               destination
Chain input_lan_rule (1 references)
pkts bytes target     prot opt in     out     source               destination
Chain input_rule (1 references)
pkts bytes target     prot opt in     out     source               destination
Chain input_wan_rule (1 references)
pkts bytes target     prot opt in     out     source               destination
Chain output_lan_rule (1 references)
pkts bytes target     prot opt in     out     source               destination
Chain output_rule (1 references)
pkts bytes target     prot opt in     out     source               destination
Chain output_wan_rule (1 references)
pkts bytes target     prot opt in     out     source               destination
Chain reject (3 references)
pkts bytes target     prot opt in     out     source               destination
90  7064 REJECT     tcp  --  any    any     anywhere             anywhere             /* !fw3 / reject-with tcp-reset
0     0 REJECT     all  --  any    any     anywhere             anywhere             / !fw3 */ reject-with icmp-port-unreachable
Chain syn_flood (1 references)
pkts bytes target     prot opt in     out     source               destination
1    60 RETURN     tcp  --  any    any     anywhere             anywhere             tcp flags:FIN,SYN,RST,ACK/SYN limit: avg 25/sec burst 50 /* !fw3 /
0     0 DROP       all  --  any    any     anywhere             anywhere             / !fw3 */
Chain zone_lan_dest_ACCEPT (4 references)
pkts bytes target     prot opt in     out     source               destination
3   775 ACCEPT     all  --  any    br-lan  anywhere             anywhere             /* !fw3 */
Chain zone_lan_forward (1 references)
pkts bytes target     prot opt in     out     source               destination
22123 1426K forwarding_lan_rule  all  --  any    any     anywhere             anywhere             /* !fw3: user chain for forwarding /
22123 1426K zone_wan_dest_ACCEPT  all  --  any    any     anywhere             anywhere             / !fw3: forwarding lan -> wan /
0     0 ACCEPT     all  --  any    any     anywhere             anywhere             ctstate DNAT / !fw3: Accept port forwards /
0     0 zone_lan_dest_ACCEPT  all  --  any    any     anywhere             anywhere             / !fw3 */
Chain zone_lan_input (1 references)
pkts bytes target     prot opt in     out     source               destination
137  9355 input_lan_rule  all  --  any    any     anywhere             anywhere             /* !fw3: user chain for input /
0     0 ACCEPT     all  --  any    any     anywhere             anywhere             ctstate DNAT / !fw3: Accept port redirections /
137  9355 zone_lan_src_ACCEPT  all  --  any    any     anywhere             anywhere             / !fw3 */
Chain zone_lan_output (1 references)
pkts bytes target     prot opt in     out     source               destination
3   775 output_lan_rule  all  --  any    any     anywhere             anywhere             /* !fw3: user chain for output /
3   775 zone_lan_dest_ACCEPT  all  --  any    any     anywhere             anywhere             / !fw3 */
Chain zone_lan_src_ACCEPT (1 references)
pkts bytes target     prot opt in     out     source               destination
137  9355 ACCEPT     all  --  br-lan any     anywhere             anywhere             ctstate NEW,UNTRACKED /* !fw3 */
Chain zone_wan_dest_ACCEPT (2 references)
pkts bytes target     prot opt in     out     source               destination
117  5316 DROP       all  --  any    eth1    anywhere             anywhere             ctstate INVALID /* !fw3: Prevent NAT leakage /
22266 1438K ACCEPT     all  --  any    eth1    anywhere             anywhere             / !fw3 */
Chain zone_wan_dest_REJECT (2 references)
pkts bytes target     prot opt in     out     source               destination
24  1501 reject     all  --  any    eth1    anywhere             anywhere             /* !fw3 */
Chain zone_wan_forward (1 references)
pkts bytes target     prot opt in     out     source               destination
145K  216M forwarding_wan_rule  all  --  any    any     anywhere             anywhere             /* !fw3: user chain for forwarding /
0     0 zone_lan_dest_ACCEPT  esp  --  any    any     anywhere             anywhere             / !fw3: Allow-IPSec-ESP /
0     0 zone_lan_dest_ACCEPT  udp  --  any    any     anywhere             anywhere             udp dpt:isakmp / !fw3: Allow-ISAKMP /
0     0 ACCEPT     all  --  any    any     anywhere             anywhere             ctstate DNAT / !fw3: Accept port forwards /
145K  216M zone_wan_dest_REJECT  all  --  any    any     anywhere             anywhere             / !fw3 */
Chain zone_wan_input (1 references)
pkts bytes target     prot opt in     out     source               destination
70  5707 input_wan_rule  all  --  any    any     anywhere             anywhere             /* !fw3: user chain for input /
0     0 ACCEPT     udp  --  any    any     anywhere             anywhere             udp dpt:bootpc / !fw3: Allow-DHCP-Renew /
0     0 ACCEPT     icmp --  any    any     anywhere             anywhere             icmp echo-request / !fw3: Allow-Ping /
4   144 ACCEPT     igmp --  any    any     anywhere             anywhere             / !fw3: Allow-IGMP /
0     0 ACCEPT     all  --  any    any     anywhere             anywhere             ctstate DNAT / !fw3: Accept port redirections /
66  5563 zone_wan_src_REJECT  all  --  any    any     anywhere             anywhere             / !fw3 */
Chain zone_wan_output (1 references)
pkts bytes target     prot opt in     out     source               destination
260 17104 output_wan_rule  all  --  any    any     anywhere             anywhere             /* !fw3: user chain for output /
260 17104 zone_wan_dest_ACCEPT  all  --  any    any     anywhere             anywhere             / !fw3 */
Chain zone_wan_src_REJECT (1 references)
pkts bytes target     prot opt in     out     source               destination
66  5563 reject     all  --  eth1   any     anywhere             anywhere             /* !fw3 */


SOLR-16392: Minor CollectionsHandler cleanup

https://issues.apache.org/jira/browse/SOLR-16392
Description
CollectionsHandler.handleRequestBody had an unnecessary switch-case statement that cluttered thing up, instead of leaning on the CollectionsOperation enum already present for this purpose.
Solution
This PR removes the switch-case in favor of using CollectionOperation as was done previously.  Credit for Bruno R for the suggestion.
Tests
No new tests added for this minor refactor.  Existing tests continue to pass.
Checklist
Please review the following and check all that apply:

[x] I have reviewed the guidelines for How to Contribute and my code conforms to the standards described there to the best of my ability.
[x] I have created a Jira issue and added the issue ID to my pull request title.
[x] I have given Solr maintainers access to contribute to my PR branch. (optional but recommended)
[x] I have developed this patch against the main branch.
[ ] I have run ./gradlew check.

Still waiting on some tests running locally, but will merge when those finish up.


Review

Small things in the explainer:

System font engines (and browser stacks) may display certain glyphs differently. These differences are necessary, in general, to create fidelity with the underlying OS (so web content doesn't "look wrong"). These differences reduce consistency for applications that span across multiple platforms, e.g. when pixel-accurate layout and rendering is required.

To me, this reads like a disadvantage of local fonts, and an advantage of web fonts. As in, if you want your files to look the same once shared, you shouldn't rely on system fonts.

Developers may have legacy font stacks for their applications that they are bringing to the web. To use these stacks, they usually require direct access to font data, something web fonts do not provide.

This point seems a bit weak hand-wavy. Is there a more concrete example?

A font enumeration API, which allows users to grant access to the full set of available system fonts.

The level of access isn't clear here. Maybe:
A font enumeration API, which allows users to grant access to the full set of available system font metadata.

glyf table for glyph vector data, the GPOS table for glyph placement, and the GSUB table for ligatures and other glyph substitution

Nit: Only "glyf" is linked to its definition. Maybe link to GPOS and GSUB too?

Ensure UAs are free to return anything they like. If a browser implementation prefers, they may choose to only provide a set of default fonts built into the browser.

Enable access to all browser-allowed font tables (may vary per browser)

These two sound bad on the surface as they encourage breaking interoperability. Maybe detail why these are desirable?

Logging of likely-available fonts to improve server-side font rule generation.
Scripts to generate style rules based on "similar" local fonts, perhaps saving a download

I don't really understand these. Given that the process may involve a permission prompt, this sounds pretty intrusive vs just specifying a long list of fonts in font-family.

const fonts_iterator = navigator.fonts.query();

Nit: In JavaScript names are generally camelcased. Same goes for font_select in the next example.
I also agree with @domenic that this isn't an iterator, so maybe call it systemFonts?

option.value = metadata.fullName;

You don't need this line. If no value is provided, it defaults to the text.

document.body.appendChild(font_select);

Kinda nitty, but this code produces a useless select if permission isn't granted. Maybe move the <select> creation/append until after permission is granted?

option.setAttribute("postscriptName", metadata.postscriptName);

We shouldn't encourage the use of non-standard attribute names.
Instead, either use a data attribute:
option.dataset.postscriptName = metadata.postscriptName;

Or create associated data:
const optionToMetadata = new WeakMap();
// ...
optionToMetadata.set(option, metadata);

const sfntVersion = (new TextDecoder).decode(
    // Slice out only the bytes we need: the first 4 bytes are the SFNT
    // version info.
    // Spec: https://docs.microsoft.com/en-us/typography/opentype/spec/otff#organization-of-an-opentype-font
    await sfnt.slice(0, 4).arrayBuffer());

Some of the formatting here is a little unusual. I'd go with:
const sfntVersion = new TextDecoder().decode(
  // Slice out only the bytes we need: the first 4 bytes are the SFNT
  // version info.
  // Spec: https://docs.microsoft.com/en-us/typography/opentype/spec/otff#organization-of-an-opentype-font
  await sfnt.slice(0, 4).arrayBuffer()
);

If in doubt, pass code through https://prettier.io/playground/. Oh actually, it could just be:
// Slice out only the bytes we need: the first 4 bytes are the SFNT
// version info.
// Spec: https://docs.microsoft.com/en-us/typography/opentype/spec/otff#organization-of-an-opentype-font
const sfntVersion = await sfnt.slice(0, 4).text();

FontFaceSource is specified in the CSS 3 Font Loading draft. At first glance, this is the most appropriate interface from which to hang something like the proposed query() method. It is, however, a synchronous iterator.

FontFaceSource isn't an iterator, but FontFaceSet is.
The FontFaceSet is exposed in pages as document.fonts, which doesn't seem like a good fit for this feature as it's of the system, not of the document.

Necessarily, user agents and operating systems already provide this functionality, so requiring web applications to include their own copies leads to additional download and memory cost. In some cases, this may be required by the web application to ensure identical behavior across browsers, but in other cases exposing some of these libraries directly to script as additional web APIs could be beneficial.

"ensure identical behavior across browsers" - this seems to clash with the earlier claim "UAs are not required to provide table data exactly as it appears on disk".
Also, it isn't clear what the conclusion is for this section. Is it being considered in future, or dismissed?

It isn't clear to me from reading this if the API presented is exhaustive. Eg, is there anything else hanging off navigator.fonts or is it just query?
It might be worth adding an MDN-like description of the API, aimed at developers.

Styling with Local Fonts

It isn't clear to me which bit of metadata I'd use in CSS's font-family.
My assumption would be metadata.family, since that's closest in naming to font-family, but the example suggests otherwise, as that's the one bit of metadata that isn't used.

Can fonts contain direct personal information that might be exposed here? Eg, name of the user in some kind of licencing information?

Former editors:

Emil A. Eklund

😢
Nice callout at the end, thanks for adding that.

I'll create issues for things that might need further discussion.

In terms of other issues:
Before OT:

https://github.com/WICG/local-font-access/issues/52 Unclear how to map back to CSS. Feel like this should be clarified in the explainer before OT.
https://github.com/WICG/local-font-access/issues/25 being clearer about privacy issues with font files.
https://github.com/WICG/local-font-access/issues/17 have privacy reviewed this since it exposes raw font file access? I'm a little worried about the amount of data that's handed over from a single 'yes'.

Stuff which has a major impact on API design:

https://github.com/WICG/local-font-access/issues/51 Should this be an async iterator at all? Also https://github.com/WICG/local-font-access/issues/32.
https://github.com/WICG/local-font-access/issues/36 How permissions work.
https://github.com/WICG/local-font-access/issues/27 Having to iterate over everything to get one font seems bad.

Lower priority stuff:

https://github.com/WICG/local-font-access/issues/53 some spec cleanup.
https://github.com/WICG/local-font-access/issues/49 minor naming issue.

To me, this reads like a disadvantage of local fonts, and an advantage of web fonts. As in, if you want your files to look the same once shared, you shouldn't rely on system fonts.

It occurs for WebFonts as well.
The main issue with the web stack is that it's meant for rendering content and part of its tasks is to make the content feel "natural" in the deployment platform. On Windows, ClearType might be applied to a font, for instance, to make all fonts look the same based on the operating system settings.
When consistency is important, in e.g. a photo editor, it is important not to apply such modifications, but rather, to let the application handle the rendering (and modification of) the raw font data, so it reflects the designer's intent, on any platform and on any medium, including screens, printed, etc.
Do you think I should reference the different use-cases and ClearType directly as an example in that bullet point?

Developers may have legacy font stacks for their applications that they are bringing to the web. To use these stacks, they usually require direct access to font data, something web fonts do not provide.

This point seems a bit weak hand-wavy. Is there a more concrete example?

WebFonts do not provide a raw data API. While WebFonts does not have an API like blob(), one could read the bytes and interpret in script, e.g. using something like opentype.js.
I suppose that it's not that WebFonts does not provide the data, it's that the web font rendering stack is meant for a different purpose than this API. There is no WebFont enumeration API for local fonts, for instance, and second, there is no aforementioned "raw data" API.
Both of those capabilities are needed to be used for a class of currently non-web applications.

The level of access isn't clear here. Maybe:
A font enumeration API, which allows users to grant access to the full set of available system font metadata.
👍

glyf table for glyph vector data, the GPOS table for glyph placement, and the GSUB table for ligatures and other glyph substitution

Nit: Only "glyf" is linked to its definition. Maybe link to GPOS and GSUB too?
👍

Ensure UAs are free to return anything they like. If a browser implementation prefers, they may choose to only provide a set of default fonts built into the browser.

Enable access to all browser-allowed font tables (may vary per browser)

These two sound bad on the surface as they encourage breaking interoperability. Maybe detail why these are desirable?

They are detailed in the Privacy and Security Considerations. WDYT of something like:
 * Ensure UAs are free to return anything they like. If a browser implementation prefers, for privacy and security, they may choose to only provide a set of default fonts built into the browser.

Logging of likely-available fonts to improve server-side font rule generation.
Scripts to generate style rules based on "similar" local fonts, perhaps saving a download

I don't really understand these. Given that the process may involve a permission prompt, this sounds pretty intrusive vs just specifying a long list of fonts in font-family.

The idea is not to render the fonts. A long list of fonts in font-family is not precise enough.
For example, instead of showing "Arial", one could want to present "Arial MT Bold", "Helvetica Bold", etc.
Not all fonts have "Bold" as an available style.
The context that's missing is that the kinds of applications the enumeration API enables is for the creation of font-based content. I suppose "user-generated content" is not descriptive enough.
Would a preamble before the bullet list explaining creation vs consumption be good enough context?

const fonts_iterator = navigator.fonts.query();

Nit: In JavaScript names are generally camelcased. Same goes for font_select in the next example.
👍

option.value = metadata.fullName;

You don't need this line. If no value is provided, it defaults to the text.
I changed the example in #47
It is actually preferable to use postscriptName as value, because according to the spec, it is in ASCII.

It is used as a unique identifier of sorts. I'll find some way to explain that.

document.body.appendChild(font_select);

Kinda nitty, but this code produces a useless select if permission isn't granted. Maybe move the <select> creation/append until after permission is granted?
👍

option.setAttribute("postscriptName", metadata.postscriptName);

We shouldn't encourage the use of non-standard attribute names.
👍

If in doubt, pass code through https://prettier.io/playground/. Oh actually, it could just be:
// Slice out only the bytes we need: the first 4 bytes are the SFNT
// version info.
// Spec: https://docs.microsoft.com/en-us/typography/opentype/spec/otff#organization-of-an-opentype-font
const sfntVersion = await sfnt.slice(0, 4).text();

👍  Thanks! Much more concise and legible!

FontFaceSource isn't an iterator, but FontFaceSet is.
👍
The FontFaceSet is exposed in pages as document.fonts, which doesn't seem like a good fit for this feature as it's of the system, not of the document.
👍  That's a good point. I'll add it to the explanations.
"ensure identical behavior across browsers" - this seems to clash with the earlier claim "UAs are not required to provide table data exactly as it appears on disk".

For WebFonts, Chrome and Firefox uses the OTS library to filter some tables out from font files for security purposes. Those tables in theory should not affect what's rendered, but should prevent code from a foreign origin embedded in font files to break the font rendering code.
While we did consider it before, in the case of local fonts, Chrome has decided to return the data verbatim from disk. If the system fonts have been compromised, that means that the system has already been compromised. However, Perhaps we should let UA's make the call on their own? It's a non-normative option.

Also, it isn't clear what the conclusion is for this section. Is it being considered in future, or dismissed?

We're not considering them as part of this effort yet. That said, there could be shaping/metrics data we could expose as additional metadata, perhaps saving the cost on developers loading e.g. HarfBuzz or fontconfig.
I'll add a sentence with this explanation.

It isn't clear to me from reading this if the API presented is exhaustive. Eg, is there anything else hanging off navigator.fonts or is it just query?
For now just query. In the future, we might expose other things. Top of mind right now for me:

an explicit permission request API, e.g. navigator.fonts.requestPermission()
a font chooser, something like navigator.fonts.chooseFonts()

It might be worth adding an MDN-like description of the API, aimed at developers.

Styling with Local Fonts

It isn't clear to me which bit of metadata I'd use in CSS's font-family.
Ah. Yes. One would use @font-face src: local option, with either fullName or postscriptName. Description here

I'll re-work the example.

My assumption would be metadata.family, since that's closest in naming to font-family, but the example suggests otherwise, as that's the one bit of metadata that isn't used.

Your assumption is correct. And yes, that metadata isn't used in this example. One could use it to group fonts together.

Can fonts contain direct personal information that might be exposed here? Eg, name of the user in some kind of licencing information?

The fonts can contain licensing information. And these can be identifying, but it won't be the name of the user. It would be the name of the author of the font. That said, these are required table entries as defined by the OpenType spec under ID 13.


萌宠报错反馈

东东萌宠: API查询请求失败 ‼‼
"read ECONNRESET"
❗东东萌宠, 错误!
❗东东萌宠, 错误!
TypeError: Cannot read property 'code' of undefined
at slaveHelp (/jd/scripts/jd_pet.js:288:18)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at async jdPet (/jd/scripts/jd_pet.js:134:7)
at async /jd/scripts/jd_pet.js:72:7

网络波动


I can create a separate page for 'events' section

Go ahead.

@himanshu007-creator Can you assign this issue to me?

already made


Different default branch — often README.md is ahead of the published version

Confuses users, most recently #139, #129.
This would also require tweaking release configuration in build.sbt to push the branch automatically… see https://github.com/puffnfresh/wartremover/issues/129#issuecomment-61370650.

Possibly the case for #155, too.

Made a latest-release branch and made that the default. Just going to push there whenever I make a release.


Feature/history system

@kritamategunt Be sure to pull 'dev' branch and resolve all the conflict before trying to merge!


bug: Swipeable Modals dismissed on click on Top

Bug Report
Ionic version:

[x] 5.x
Current behavior:

When i open a Swipeable Modal on ios, it is possible to dismiss this with a single Tap on the small Space of the underlaying Page.
Expected behavior:

I don't know if this is the expected behavior, but i think it should be, because it happens very fast and often without even knowing it. I expect to only be able to close the Modal via Swipe Gesture (or programmatically).
Other information:

Ionic info:

Ionic:

   Ionic CLI                     : 6.2.1 (/usr/local/lib/node_modules/@ionic/cli)
   Ionic Framework               : @ionic/angular 5.0.5
   @angular-devkit/build-angular : 0.803.25
   @angular-devkit/schematics    : 8.3.25
   @angular/cli                  : 8.3.25
   @ionic/angular-toolkit        : 2.2.0

Cordova:

   Cordova CLI       : 9.0.0<EMAIL_ADDRESS>   Cordova Platforms : android 8.1.0, ios 5.1.1
   Cordova Plugins   : cordova-plugin-ionic-keyboard 2.2.0, cordova-plugin-ionic-webview 4.1.3, (and 53 other plugins)

Utility:

   cordova-res : 0.10.0
   native-run  : 0.3.0

System:

   Android SDK Tools : 25.2.3 (/Users/hanskrywalsky/Library/Android/sdk)
   ios-deploy        : 1.10.0
   ios-sim           : 8.0.2
   NodeJS            : v12.16.1 (/usr/local/bin/node)
   npm               : 6.14.2
   OS                : macOS Catalina
   Xcode             : Xcode 11.3.1 Build version 11C504

Thanks for the issue. You are correct, the bit of space at the top should not be tappable.

Can you try the following dev build and let me know if it resolves the issue?
npm i<EMAIL_ADDRESS>

Hey @liamdebeasi . Yeah seems to work, it doesn't dismiss anymore on tap. ☺ But i noticed a second thing: Sometimes when i drag the Modal down and tap on the Backdrop while dragging the Modal gets stuck at the current Position. Sometimes the Modal goes to top again.
I just tested with v5.0.5 again and it is very very buggy there too when you drag a Modal down and while this tap on the Background. Should i open a new Issue or should be continue here?

Please open a separate issue with a code reproduction. Thanks!

Thanks for the issue. This has been resolved via https://github.com/ionic-team/ionic/pull/20802 and will be available in an upcoming release of Ionic Framework.


Feature: EitherCallAdapter for Retrofit

Description:
With this PR we add a second Maven artifact to the net.grandcentrix.either group.
It provides an EitherCallAdapter so the Either type can be used as a return type of a function in a Retrofit interface.
How to test:
TBD

@lukasz-kalnik-gcx Thanks for the EitherCallAdapter implementation. Could you have a first look onto this PR?
It is still missing tests but I wanted to have a first response before I invest the time into them.

@lukasz-kalnik-gcx I did some improvements. Would be nice if you can spare some time and have a second look.


pull request for e2e test at 12/24/2016 10:26:09

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Dev

Only text / documentation changes, except file: src/interaction/InteractionManager.js
Correct or not for this PR: But it was using 1 as a default and I changed it to core.RESOLUTION. As I see it better to get that default from the constants, than be hard-coded. In my simple preliminary tests, it seems to work ok. But if needed, it is at it's own commit and can be dropped easily.

Sorry. It seems there is accidentally commits there, that shouldn't be there.


feat: Add support for windows

Coverage remained the same at 100.0% when pulling a20069ad77eb42203ffa7a3429d3c2ad388a95b6 on feat/windows into 8e28c0debe2e86936eb6a004cb660129e1a4baf9 on master.


Translate the theme to catalan

Hello, I saw that Liebling has a list of community translations. Is there any guide on how to translate the theme to catalan?
Thanks!

Hi,
not really but you can find some info about it here: https://ghost.org/docs/api/v3/handlebars-themes/helpers/translate/#making-a-theme-translatable
Basically you have to fork this repository, create a file called ca.json within the locales folder and write your translations based on the partials/en.json file.
After that you can create a pull request with your changes. If you decide to create a PR, please take a look on this link first: https://github.com/eddiesigner/liebling/wiki/Pull-Request-Guidelines

I will close this for now, please feel free to reopen it if needed.


Adding "Ticket System" to the app

Current Behaviour
The API is returning ticket related information with the event which is currently unutilised by the App
Expected Behaviour
The App should exploit ticket related info.
Would you like to work on the issue?
Yes
@iamareebjamal  what are your views?

@iamareebjamal I was thinking of adding tickets under an event , but the problem is that the API is returning empty response.
I tried changing the events but i am getting empty response, what should we do?

I think complete ticketing is a complex feature and not ready to be implemented in the app. It requires handling money as well if we want to be complete, so let's handle this later


[Auth] offloading patch node selector

Description
This pr adds the node selector fields to the resource slice resource

/merge


Add function fillContributors() in js/scripts.js

Change title from WebDevs to Contributors(index.html)
Fetch Contributors, Name, Avatar and github-login name using Github API
Display Top-9 contributors sorted by total commits

@abhigyank, do the styling as you wish. 😄


Update Composer dependencies (2021-04-26-00-10)

Visual regression test passed!
View the visual regression test report


How to allow peer connections in stand-alone mode?

I am looking for configuration and/or command line arguments for rippled to run in a stand-alone-like mode that would accept at least one peer connection. This is needed to test alternative implementations, for example this work in progress (see #2413 and #2449 for details).
I have already tried the following options:

Public network peers respond with either 503 or 403, never 101 as expected. Anyway, this approach is not very productive as it is impossible to access debug output of the other side of the sockets.
With default configuration, rippled is unstable due to #2448 and always responds with 503.
Specifying --standalone option makes rippled drop all incoming connections.

Please advise.

The very definition of "stand-alone mode" is that rippled does not make connections to other instances, so this won't be "fixed" as written.
However, you can reconfigure your ports to accept fixed IPs and limit the number of connections specifically. I believe how this works is:

Remove r.ripple.com 51235 from the [ips] block
Add the IPs you want to connect to in the [ips_fixed] block
In the "peer protocol" port, set the limit to your desired number of connections
Start with --start command

Add the IPs you want to connect to in the [ips_fixed] block

I do not want rippled to connect to any peers, only to accept incoming connections. If both [ips] and [ips_fixed] blocks are empty, rippled still connects to r.ripple.com 51235.

@mDuo13 I followed your advice. The rippled still responds with 503.

If you don't want rippled to connect to any peers but wish to allow incoming connections simply set
[peer_private]
1

This does not resolve the issue, because setting
[peer_private]
1

in the configuration file only prevents broadcasting the server's address. The node still connects to either the configured peers (if any), or r.ripple.com 51235 (if none are configured).

That is not correct. Peers with peer_private set do not make outgoing connections except to peers specified in [ips_fixed]. See https://github.com/ripple/rippled/blob/3ce4dda5cbdc66df705d1ad31acd3651d974e2ea/src/ripple/app/main/Application.cpp#L1384
If they do, that is a bug.

Can you provide me with more details on how you are trying to connect? I just connected to several servers using RPC, WebSocket and the peer protocol and didn't have a 503 or 403.
It's meaningless to reopen this issue (#2450) because the question it poses is "how to allow peer connections in standalone mode" and standalone mode is, by definition, designed to make allow peer connections.
If you want to run a server that does not make outgoing connections, then the correct mechanism to do that is what I described above: set  peer_private in the configuration file; with that configuration the server will allow incoming connections to its peer port.
Alternatively, if you want to create a network of peers that don't connect to the main network, you can do that too. On all the servers that you want to have join your network:

shut down the server
remove the peerfinder.sqlite file
edit the config file to remove all entries under the [ips] block. Add the IP and port of a server that you want to connect to which has an open peer port.

curl -v -H "Upgrade: RTXP/1.2" -H "Connection: Upgrade" https://r.ripple.com:51235/ gives a 503
curl -v https://r.ripple.com:51235/ gives a 403
Maybe that's what @codedot means? I would guess that returning peer IPs and a 503 in the first case is actually a bug, but it might be there for compatibility reasons...

The 503 is expected when you connected to a server that can't service your request (which could be because it's busy, but could be because it doesn't understand what you're asking to do). If that happens, it tries to be helpful and returns a 503 along with a set of IPs to try to connect to.
The reason you're getting a 503 however, isn't because the server is busy. It's because you're not passing in all the required information to it. You're missing a Connect-As header, which causes the server to call makeRedirectResponse (https://github.com/ripple/rippled/blob/develop/src/ripple/overlay/impl/OverlayImpl.cpp#L219). Since it can't establish a connection, it tries to be helpful and send you to a peer that maybe can help. It may be slightly more reasonable to send an error telling you you're not talking the right language before dropping the connection.
Which is exactly what happens if you retry but -H "Connect-As: Peer" to your first curl` command line:
Request:
GET / HTTP/1.1
Host: r.ripple.com:51235
User-Agent: curl/7.59.0
Accept: */*
Upgrade: RTXP/1.2
Connection: Upgrade
Connect-As: Peer

Response
HTTP/1.1 400 Bad Request
Server: rippled-1.1.1
Remote-Address: <IP_ADDRESS>
Connection: close
Content-Length: 29

Unable to parse HELLO message

Rest assured, rippled returns values other than 503 and 403. If it did not, no connections would be established. But I guess this does highlight the need for updating #2449 sooner rather than later.

Adding the Connect-As: Peer header does indeed help to get the expected upgrade response with code 101 out of r.ripple.com:51235 using this work in progress:
$ node upgrade.js r.ripple.com:51235
{ peer: 'r.ripple.com:51235',
  status: 101,
  headers:
   { connection: 'Upgrade',
     upgrade: 'RTXP/1.2',
     'connect-as': 'Peer',
     server: 'rippled-1.1.1',
     crawl: 'public',
     'public-key': 'n9KJb7NMxGySRcjCqh69xEPMUhwJx22qntYYXsnUqYgjsJhNoW7g',
     'session-signature': 'MEUCIQDf3H+eb6iOPWtGc4DivGltzcWCrLspRAqemUmItZ683QIgTrGANgM/IEQxPCuXZq5p0CoXDkUXKPFwXvzImTZBeGE=',
     'network-time': '594560045',
     'closed-ledger': 'cVvCY0U+WCpbiE5HTXQYrs6jHaH06I+yq4LxiXyHPz8=',
     'previous-ledger': 'BmdN9ojMCSPSnVBNaxaLDUToEGNVV6OaNPewaDm+EsA=' },
  check: true }

However, the local rippled server running with this configuration still responds with 503:
$ node upgrade.js <IP_ADDRESS>:51235
{ peer: '<IP_ADDRESS>:51235',
  status: 503,
  headers:
   { server: 'rippled-1.1.1',
     'remote-address': '<IP_ADDRESS>',
     'content-type': 'application/json',
     connection: 'close',
     'transfer-encoding': 'chunked' },
  body: '{"peer-ips":[]}' }

What configuration is needed for the local rippled server to get the expected response 101? Until such configuration is found, this issue should be open.

I don't think that you can connect on localhost:
https://github.com/ripple/rippled/blob/7b0367730cf11b05395f24b537247d7341ea106a/src/ripple/overlay/impl/TMHello.cpp#L412-L432

I don't think that is the case, because neither of the debug messages show up in the log after the server responds with 503 even with severinity set to info.

I didn't open this issue for a chat. The description of the issue has always been the same:

I am looking for configuration and/or command line arguments for rippled to run in a stand-alone-like mode that would accept at least one peer connection.

Above, I have already attached the configuration with which the local rippled server is running and responds with 503. Please note that the configuration includes
[peer_private]
1

as recommended by @nbougalis previously:

set peer_private in the configuration file; with that configuration the server will allow incoming connections to its peer port.

Once I receive a configuration for rippled so it doesn't connect to any peers but allows incoming peer connections and responds to peers with 101 as expected, I will close this issue.

I didn't open this issue for a chat.

I didn't suggest you were. I simply said that I was reopening this issue, which you requested, because we seem to be discussing something other than allowing connections in stand-alone mode.

I am looking for configuration and/or command line arguments for rippled to run in a stand-alone-like mode that would accept at least one peer connection.

peer_private will do that just fine, unless you want to allow incoming connections..
I asked you to paste the output of the print peerfinder command against the server that's returning the error. Can you do this so we ca go down the path of verifying that this is the issue, and deciding how this should be fixed, if at all? Please paste the result of the config and counts objects returned from that command here.
Alternatively, you can simply disable peer_private (remove the entry from your config file) and just add the following:
[ips]
<IP_ADDRESS> 51235

This will prevent your server from using r.ripple.com, because you specified at least one entry. However, the specified IP is marked as reserved by RFC 5737 and nobody should be using it, which means that your server will be unable to connect to it.
However, if the 503 you receive was caused by peer_private resulting in the server to not allocate any inbound slots, this will address it and allow your code to establish a connection.
If this has solved your issue, please go ahead and close this issue at this time. For me the takeaways from this conversation are simple:

We need to prioritize #2449 to accurately describe the connection protocol and the various caveats that exist.
We need to improve the error messages reported by the server when a connection is rejected to allow for easier debugging.
We need knobs that allow administrators to exercise more control over the kind of peer connections their server establishes (e.g. incoming vs. outgoing) and not overload the peer_private directive.

unless you want to allow incoming connections.

This issue is specifically about incoming peer connections (one can only accept(2) a connection request, not make a request). I don't understand where ambiguity could be coming from in this case, assuming some basic knowledge of how sockets work.

I asked you to paste the output of the print peerfinder command against the server that's returning the error.

In the attached configuration file, RPC was disabled, so I could not do that.
Anyway, that rather dirty hack
[ips]
<IP_ADDRESS> 51235

finally resolves the issue:
$ node upgrade.js <IP_ADDRESS>:51235
{ peer: '<IP_ADDRESS>:51235',
  status: 101,
  headers:
   { connection: 'Upgrade',
     upgrade: 'RTXP/1.2',
     'connect-as': 'Peer',
     server: 'rippled-1.1.1',
     crawl: 'public',
     'public-key': 'n9KAULfJX8hirkv3aVHZhuk2qBvwe7ePUL7eZQ1xwAwuV4jdSTKo',
     'session-signature': 'MEUCIQCDYyZSOvH4xq9HtCIwnUbZI59cWpLB6ksAJ4JuWlJuuwIgZyFsl75ko9xxTfelf9n+0Vtpc2MV896j7Pp1XC9NWXE=',
     'network-time': '594596428',
     'closed-ledger': 'caR3cbSIRQqckJ/YMwFTsdI9hH1VIYyp/Kp26MADeP4=',
     'previous-ledger': 'q4aKbP7sd5wv+EXArwCmQiWZhq9AwBl2p/hCtpGJNsc=' },
  check: true }

so I am closing it now.

Glad to hear this worked, thanks. This conversation has highlighted the need for more flexible configuration of connectivity options for rippled. I plan on creating a new issue with some details, and will tag you on it if that's OK?

OK.


UnicodeEncodeError when detecting type of file with non-ascii characters in file name

Similar to #167 and #124, we get UnicodeEncodeError when detect file type and file name contains non-ascii characters.
Pull request: https://github.com/chrismattmann/tika-python/pull/284

fixed in #284


temp fix for webpack build failure

temp fix for https://github.com/yiminghe/css-animation/issues/20 and similarly https://github.com/ant-design/ant-design/issues/17928
some libraries like antd rely on generated package files and it hardcoded the path there, and giving that the pack builder used in the problematic PR also hardcoding the destination path, I thought this PR could temporarily help.

already reverted


feat: Refactor ConnectedComponent

… in order to sync with PR 17665 on mathlib3.
See https://github.com/leanprover-community/mathlib/pull/17665

I'm currently changing the mathlib3 PR according to Yael's suggestion. Will update this one to synchronize when the mathlib3 one gets approved.

NB: I believe the troubles with universes that forced the mathlib3 definition of Quiver.Symmetrify to be a Sum rather than a Psum disappeared with mathlib4. I've been told that it's not ideal to do such changes during the port.
When is a good time to do it?

bors d+

bors r+


Headline Content Option/Markdown isn't doing anything

As the title suggests Markdown/The corrosponding buttons for headlines are not doing anything.
This is probably because the preflight resets from tailwind are removing heading styling. Maybe we should add a default style to the headlines, either in the sitewide CSS or the tailwind site config. To make that Feature actually useful.
I currently don't know if this also applies to any other Markdown / button function, since I didn't have time to test any of these options.

Correct. The right tags are being applied (h1, h2, etc.), but since there isn't default styling. I can wire that up real quick.

Sweet

Default site styles implemented (only apply to new sites)


Uplink Changes

About the PR

Why / Balance
This server has so many geniuses
Changelog
:cl:

tweak: Discount buttons are red now
tweak: Everything can discount much lower
fix: Briefing show up correctly now

Summary by CodeRabbit

New Features

Enhanced visual indication for discounted items with updated button styles.
Streamlined localization for the "Traitor" game mode, focusing on essential gameplay mechanics.

Bug Fixes

Standardized discount prices across a wide range of items, reducing prices to improve accessibility and affordability.

it never was about the visuals you genius


Type insertion error

I'm not sure if this is expected behavior or not, but when I run the following:
using Enzyme, Parameters

mutable struct gyre_vector
    u::Vector{Float64}
    v::Vector{Float64}
    eta::Vector{Float64}
end

@with_kw struct RHS_terms_debug
    Nu::Int
    u0::Vector{Float64} = zeros(Nu)
end

function advance(u_v_eta, rhs)

    rk_b = [1/2, 1/2, 1]
    rhs.u0 .= u_v_eta.u
    rhs.u0 .= rhs.u0

    copyto!(u_v_eta.u, rhs.u0)

    return nothing

end

nx = 5             # grid resolution in x-direction
ny = 5             # grid resolution in y-direction

NT = nx * ny
Nu = (nx - 1) * ny
Nv = (ny - 1) * nx
Nq = (nx + 1) * (ny + 1)

rhs_terms = RHS_terms_debug(Nu = Nu)
ad_rhs_terms = RHS_terms_debug(Nu = Nu)

u_v_eta = gyre_vector(zeros(Nu), zeros(Nv), zeros(NT))
ad_u_v_eta = gyre_vector(zeros(Nu), zeros(Nv), zeros(NT))

# checking that the function does in fact run
advance(u_v_eta, rhs_terms)

autodiff(advance,
    Duplicated(u_v_eta, ad_u_v_eta),
    Duplicated(rhs_terms, ad_rhs_terms)
)

I get this error:
inserting into : {[1]:Integer, [2]:Integer, [3]:Integer, [4]:Integer, [5]:Integer, [6]:Integer, [7]:Integer} with [-1] of Float@double
illegal insertion
UNREACHABLE executed at /workspace/srcdir/Enzyme/enzyme/Enzyme/TypeAnalysis/TypeTree.h:213!

signal (6): Abort trap: 6
in expression starting at /Users/swilliamson/Documents/GitHub/eddy-stresses/src/enzyme_1.jl:46
__pthread_kill at /usr/lib/system/libsystem_kernel.dylib (unknown line)
Allocations: 28688769 (Pool: 28666036; Big: 22733); GC: 33
zsh: abort      julia --project=. ./src/enzyme_1.jl

The error goes away though when I instead define rk_b as rk_b = [1/2, 1/2, 1.]. Is this normal? I'm not even using the 1 from that vector when I get the error. I'm on Julia version 1.8.5 and Enzyme v0.10.18, if that helps.

Can you retry on main and also add a Enzyme.API.printtype!(true) and attach the log?

@swilliamson7 I cannot reproduce your error on current main/julia 1.9.

I can reproduce on 1.8.4

Reduced:
wmoses@beast:~/git/Enzyme.jl (fcal) $ cat s.jl
using Enzyme
Enzyme.API.printall!(true)
Enzyme.API.printtype!(true)

function advance()
    rk_b = [1/2, 1/2, 1]
    return nothing
end

autodiff(Reverse, advance)

Okay the issue here is that the differing type of 1/2, and 1 means that this array is a union. This is fixed by inserting a call to Enzyme.API.strictAliasing!(true), or as you have setting 1 -> 1.0


Consider removing transactionLogIndex from rpc

Describe the feature
it is not part of json rpc spec https://ethereum.org/en/developers/docs/apis/json-rpc/#json-rpc-methods but was present in OE:
https://github.com/openethereum/openethereum/blob/6c2d392d867b058ff867c4373e40850ca3f96969/crates/rpc/src/v1/types/log.rs#L42
ref https://github.com/paradigmxyz/reth/issues/2457
Additional context
No response

I'd like to work on this one 👋

@gakonst should we remove this?
I'm leaning toward yes.

Yeh - did it


should it be cell(1,2) instead of cell(1,3) in the third line of determinant

https://github.com/lekah/samos/blame/2add9e46fb5980d815ce7996bc185f8bcaabeaa9/samos/lib/gaussian_density.f90#L56

Yes, you are right, I will fix this right away


Resource owner

Is your feature request related to a problem? Please describe.
On resource creation, it should be possible to assign an "owner" to the resource (which is the subject who created the resource), and he should have full control on the resource, i.e. automatically a policy with "acl:control" should be created for him. anyhow this should happen only when the api ack that the resource was created (so that in case of failure the policy is not created).
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

@Cerfoglg of course this is not something you can do with authz filter.
most probably, the easiest way is creating a lua filter, see for example:
https://github.com/envoyproxy/envoy/tree/main/examples/lua
https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/lua_filter
on request you need to "filter" the requests to know if the action should be triggered, e.g. it must be a post to the path /entity, it must contain in the body "entityId"... ect this values can be also saved a metadata for reuse in the response.
then, on response, if status is 201 (i am guessing) and the values in metadata are correct ones, you issue a call to the api to trigger the creation of the policy. (probably this api is good for the purpose: https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/lua_filter#httpcall)


[dev] bootorl paper codes.

I suggest putting folders under BooT directly in bootorl. Too much 套娃

I suggest putting folders under BooT directly in bootorl. Too much 套娃

fixed.


Fjsp

Description
Adding environment for the Flexible Job-Shop Scheduling Problem (FJSP) and the heterogeneous graph neural network (HGNN) described in Song et al. (https://ieeexplore.ieee.org/document/9826438) to solve it. Architecture was improved by adding residual connection and batch normalization. Average makespan on smallest instance type (10 jobs and 5 machines) is ~100 compared to ~106 reported in the paper.
Motivation and Context
closes #168
Types of changes
What types of changes does your code introduce? Remove all that do not apply:

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds core functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Documentation (update in the documentation)
[ ] Example (update in the folder of examples)

Checklist
Go over all the following points, and put an x in all the boxes that apply.
If you are unsure about any of these, don't hesitate to ask. We are here to help!

[ ] My change requires a change to the documentation.
[x] I have updated the tests accordingly (required for a bug fix or a new feature).
[ ] I have updated the documentation accordingly.

thanks a ton for the valuable comments @fedebotu & @cbhua! I hope I addressed all issues. Merging now


Always "hang" when I run  Docker load without paramter

**Output of docker version:
1.12
(paste your output here)

Sams-MacBook-Pro:default samchen$ docker load
Output of docker info:
Sams-MacBook-Pro:default samchen$ docker info
Containers: 39
Running: 1
Paused: 0
Stopped: 38
Images: 226
Server Version: 1.12.0
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 318
Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge null overlay host
Swarm: active
NodeID: bqo9wjuolar5qk0qm8v3nnmg1
Is Manager: true
ClusterID: f350z8ybay7jshcq2k97rilnw
Managers: 1
Nodes: 1
Orchestration:
Task History Retention Limit: 5
Raft:
Snapshot interval: 10000
Heartbeat tick: 1
Election tick: 3
Dispatcher:
Heartbeat period: 5 seconds
CA configuration:
Expiry duration: 3 months
Node Address: <IP_ADDRESS>
Runtimes: runc
Default Runtime: runc
Security Options: seccomp
Kernel Version: 4.4.15-moby
Operating System: Alpine Linux v3.4
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 1.954 GiB
Name: moby
ID: KCVJ:4PIN:RF33:55IX:TM6S:KCKT:SEVN:RCMR:COUK:RO4Z:AK5Z:SBQH
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
File Descriptors: 40
Goroutines: 126
System Time: 2016-08-03T11:11:08.657760542Z
EventsListeners: 1
No Proxy: *.local, 169.254/16
Registry: https://index.docker.io/v1/
Insecure Registries:
<IP_ADDRESS>/8
(paste your output here)

Additional environment details (AWS, VirtualBox, physical, etc.):
Steps to reproduce the issue:

Install Mac Docker distribution 1.12
run "docker load"

Describe the results you received:
Describe the results you expected:
It supposed to prompt up "syntax" or "usage"
Additional information you deem important (e.g. issue happens only occasionally):

I'm not sure we'd be able to fix this (easily); the problem is that docker load reads from STDIN by default; so running docker load without arguments means that docker is waiting for input. (see https://docs.docker.com/engine/reference/commandline/load/)

I got it. Maybe add more help information when running docker?

@usultrared & @thaJeztah I guess adding some of the examples given in https://docs.docker.com/engine/reference/commandline/load/ to the help message will solve that.
Feedback?

@ripcurld00d  it will be better if we have this reference in docker  command

@thaJeztah @ripcurld00d @usultrared
Docker load without arguments means that docker is waiting for input from stdin.
So can't we check for empty stdin and prompt error message that "No stdin to docker load command".
It should be possible right.

It might be possible to detect if stdin is a terminal (ie, no stdin) vs something else.

Actually, I believe the CLI object supports this, something like cli.IsTerminalin() if someone wants to make a PR to error out faster.
But should test this to make sure it actually works in such cases.

I would like to work on it unless there is someone else who wants to try.

#dibs
I would like to give it a try...

@milindchawre sorry didn't see your pull request... :disappointed:


https://ontology.unifiedcyberontology.org/ is outdated

Bug description
Navigating to https://ontology.unifiedcyberontology.org/documentation/index.html is still showing documentation for version 0.9.1 instead of the current (1.1.0) version of the ontology.
None of the imported ontologies for 1.1.0 are available (e.g. https://ontology.unifiedcyberontology.org/uco/tool/1.1.0) etc, which means having to configure Protege to import locally, etc. Overall this all leads to a very poor user experience.

Hello @jonathanunderwood ,
We are aware of the issue.  An Apache complication arose with the transition to 1.0.0.  We are revising the deployment strategy.

As a stopgap, given that this has been broken for a couple of years, it seems, is it worth considering shipping a catalog-v001.xml with UCO releases?

We acknowledge this has been an issue since the 1.0.0 release at the end of August, 2022.
A community member is currently working on this issue, which will ship and maintain catalog-v001.xml files.

That's great, thanks - lots of great thinking in the issue 449 linked-to in that issue as well - love the thoroughness

Hi @jonathanunderwood ,
We are close to posting the up-to-date UCO documentation.  The CASE Ontology documentation site has been updated to 1.1.0, visible here.  We are currently porting its updates to UCO.
With the way the build system works, the CASE documentation happens to include all of UCO's documentation.  So, perhaps that might meet your needs while we're waiting for the last deployment steps for UCO.

@ajnelson-nist Awesome, thank you so much for the work that went into this.