what's the best way to generate binding for non plugin commands / events in v2?

I heard #77 has solved in v2 so I tried to use v2 but I could not find the option to not include "plugin:tauri-specta|" prefix in command names.

The generated binding always includes "plugin:tauri-specta|" and I think it's not needed for my use case since my project is not a tauri plugin. I'm sorry if my understanding for tauri is not enough.

In other words, I do not want to include tauri-specta in runtime build as a plugin, I want to use tauri-specta as just a typescript generator.

The generated binding always includes "plugin:tauri-specta|" and I think it's not needed for my use case since my project is not a tauri plugin

The relevant difference here is that v2 tauri-specta handles your commands and sets up the invoke handler, not your application. Even though they're your app's commands, the invoke handler belongs to a plugin so they have to be invoked via the plugin's prefix.
Maybe this is a bad design, but it's required for event support + imo provides a nicer experience than adding the invoke handler yourself, though I'd be open to providing an API for pulling out the invoke handler + exporting the types without mounting the plugin, provided that no events have been registered yet.

This is fixed now. You can see how it works here.


[tracking]: [Channel Backend] coin selection, PSBT support, pre-defined inputs

Background
Pertain to fund PSBT option to anchor taproot asset channels
This tracking issues is to ensure that the channel backend for tapd has the necessary features for channel funding
Code in https://github.com/lightningnetwork/lnd/pull/8378
Design decisions can be discussed here

Closed by merge of https://github.com/lightningnetwork/lnd/pull/8378.


docfaq for lzo.jar not found

Proposed changes
Issue Number: close #xxx
faq for lzo.jar not found
Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall


feat: replace serde_yaml with serde_yml

serde_yml is one of candidates, but at this point, we are not sure this will be actively maintained for a long time. so, we are watching the activity for now. we'll do rebase and merge this PR once we make sure that.


FacetFilters not serializing correctly for search

Algolia Client Version: 2.20.0
Language Version: 1.80_162

Description
When doing a search using APIClient.multipleQueries() a MultipleQueriesRequests object is created. To get the params for the individual queries, Query.toParams() is called. Query.toParams() then calls, I believe, the incorrect add() method. It uses the method with Object value where FaceFilters should be a CompoundType so getInsideValue() is called which should produce a serializable List or a List<List>.

Hello,
Thanks for your contribution 😄 ATM I am working on a release of a new API feature on the client.
Once I am done with this release I will look at your PR.
Thanks,

Of course! Do you have an eta? We were looking to integrate search fairly soon into our project and the is a blocker for us.

I think end of next week or just after christmas. I need to add E2E tests for this PR as well.

Great :) - let me know if there's anything else I should add in there.

Awesome! Thanks ant-hem!

You're welcome. Fixed in 2.21.0


Failed on non-saved file

Hello, I get this error message, if I run the command on a new, unsaved, file:
Running the contributed command: 'extension.filterLineByNotContainInputString' failed.
..if I save the file first, it works. It would be a nice feature, being able to run it on an unsaved buffer :-) Thanks.

It's almost done, see issue #21

+1 for this feature! Filtering an unsaved buffer would be very useful.

Same error on "virtual documents". Just tested with their virtual document sample: https://github.com/microsoft/vscode-extension-samples/tree/master/virtual-document-sample


Thrown exception in TypeConverter not honored

Information

OS: all
Version: 0.47.0
Terminal: Windows Terminal

Describe the bug
The exception thrown inside of a custom TypeConverter is not honored. See below code for full example, but I'm throwing a NotSupportedException with a specific message. The message that is rendered in the console is not my exception message but instead a more generic message.
To Reproduce
Throw an exception with a custom message in a TypeConverter implementation used on a CommandOption or CommandArgument. Ensure that the exception is hit, note that the output message in the console is not the message from the exception (nor is stacktrace shown, i.e. the exception is eaten).
Expected behavior
Exception behavior is honored and the thrown exception is bubbled up appropriately. Message is show at the very least, ideally full exception behavior is honored.
Additional context
[CommandOption("-p|--platform")]
[Description("Filter by Platform(s)")]
[TypeConverter(typeof(PlatformConverter))]
[DefaultValue(null)]
public Platform[] Platforms { get; }

internal sealed class PlatformConverter : TypeConverter
{
	public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
	{
		if (value is string stringValue)
		{
			if (Enum.TryParse<Platform>(stringValue, true, out var asEnum))
			{
				return asEnum;
			}
		}

		throw new NotSupportedException($"Can't convert value to {nameof(TEnum)}. Valid options are {string.Join(", ", Enum.GetValues<Platform>())}");
	}
}

Output in console:
Error: Failed to convert 'foo' to SuggestedActionType[].


Message owner if banned in a sub

If the bot tries to post in a sub and can't, message the owner to set the sub to message only.

Or possibly if the comment it's replying to is deleted


Multiple code improvements - squid:S1319, squid:S1149, squid:S2583, squid:UselessParenthesesCheck

This pull request is focused on resolving occurrences of Sonar rules
squid:S1319 - Declarations should use Java collection interfaces such as "List" rather than specific implementation classes such as "LinkedList".
squid:S1149 - Synchronized classes Vector, Hashtable, Stack and StringBuffer should not be used.
squid:S2583 - Conditions should not unconditionally evaluate to "TRUE" or to "FALSE".
squid:UselessParenthesesCheck - Useless parentheses around expressions should be removed to prevent any misunderstanding.
You can find more information about the issue here:
https://dev.eclipse.org/sonar/rules/show/squid:S1319
https://dev.eclipse.org/sonar/rules/show/squid:S1149
https://dev.eclipse.org/sonar/rules/show/squid:S2583
https://dev.eclipse.org/sonar/rules/show/squid:UselessParenthesesCheck
Please let me know if you have any questions.
George Kankava

Changes Unknown when pulling cb7088e9423985ad405646f95ff7015c5e16885d on DevFactory:release/multiple-code-improvements-fix-3 into ** on clun:master**.


STL-1675 pauschbetrag step

Short Description

Created the "Pauschbetrag" Step for PersonA & PersonB.

Changes

I added a new function to old and new steps: "_get_value_representation". This function is used to manipulate the value displayed in the summary. Within the UI a Yes / No Selection Field is used, therefore only "Yes" or "No" would be displayed in the summary.

Feedback

What do you think about the function: "_get_value_representation"?

How to review this Pull Request
Link to Confluence (internal)

Oh, and of course change the config back as we discussed, right?


How to add blob extension and use it for webauthn client?

I am wondering if I want to store user-relevant info how I can do it with the use of an extension? Is there an example?

@djaffer you can try to use the largeBlob extension, but honestly support for it is all but non-existent across the major browsers. At this moment in time there's nothing in the WebAuthn spec that I would advise anyone try to use for storing arbitrary data with a credential.


I created some plugins and directive, should I create a PR

directives

tabset: https://github.com/teedoc/teedoc/blob/main/plugins/teedoc-plugin-markdown-parser/teedoc_plugin_markdown_parser/plugin_tabset.py

(note that a blank line is required here)
.. tabset::tab title (optional)
    :id: tabset1

    ## Label one

    Content 1, you can use Markdown syntax
    ```kotlin
      fun main() {
          println("Hello World")
      }
    ```

    ## Label two

    Content 2, you can use Markdown syntax
    ```java
      public class Main {
          public static void main(String[] args) {
              System.out.println("Hello World");
          }
      }
    ```

details: https://github.com/teedoc/teedoc/blob/main/plugins/teedoc-plugin-markdown-parser/teedoc_plugin_markdown_parser/plugin_details.py

.. details::Title, click to expand

    Content 1, you can use Markdown syntax
    ```kotlin
      fun main() {
          println("Hello World")
      }
    ```

.. details:: title, expanded by default
    :open:true

    Content 1, you can use Markdown syntax
    ```kotlin
      fun main() {
          println("Hello World")
      }
    ```

plugins

superscript: https://github.com/teedoc/teedoc/blob/main/plugins/teedoc-plugin-markdown-parser/teedoc_plugin_markdown_parser/plugin_superscript.py

y = x^2^

subscript: https://github.com/teedoc/teedoc/blob/main/plugins/teedoc-plugin-markdown-parser/teedoc_plugin_markdown_parser/plugin_subscript.py

Water: H~2~O

@Neutree from v3, we have a community file to list 3rd party plugins. You can add your plugin here: https://mistune.lepture.com/en/latest/community.html
But in v3, we have built-in plugins for superscript and subscript. Please see: https://mistune.lepture.com/en/latest/plugins.html
I've just released v3.0.0rc1, you can upgrade teedoc to mistune v3 for the powerful plugins. It is quite stable now, I'm using v3 in production in Typlog.


Edits to "Request a Change"

We would like to make the following changes to the "Request a Change" section of the website (right side on resource detail: http://aashe-hub-dev.herokuapp.com/browse/academicprogram/2/Applied-Ecology-and-Environmental-Science-BS).
Change text from:
Request a change
If you think this resource needs to be improved, please let us know.
To:
Request a Change
Please contact us at<EMAIL_ADDRESS>to suggest changes to this resource.
We would also like to change the icon from a lightning bolt (which signifies instant results) to something else: 1st choice: Delta symbol; 2nd choice: lightbulb icon. Also, please update the color of the icon to be the same shade of green used throughout the hub (e.g. hyperlink text and "go" button after search)

The review team pointed out that the "download" button (example here: http://aashe-hub-dev.herokuapp.com/browse/material/16/Sustainable-Design) and "apply filters" button at the bottom of all filter pages do not match the green that is throughout.
Please also check that the blue used for the blue icons used for "authors" and "website" are one of the AASHE blue brand approved colors. (example: http://aashe-hub-dev.herokuapp.com/browse/material/16/Sustainable-Design)

Matching the colors is addressed in a different ticket: #129.
For the content, let's use django-block-content. It's used on the homepage, if you want an example.

Re-opening due to Jessica's comment: I was actually requesting that we use the same shade of green throughout instead of having multiple shades of green. I was suggesting that we use the same shade of green that is used on the tabs at the top. (toolkit, resources, STARS, etc.) The "Download" button, "Request a Change" buttion and "Apply Filters" buttons all appear to be different shades of green. Could you make them the same green used throughout the hub.

Can someone give me a link to a page where this Download button occurs? I can't seem to find any to test with.
The rest are fixed, but I might as well get all of them at once.

Disregard, figured it out. But to clarify, do we want to change those icons to be green or leave them blue @jamstooks?

Where I see this icon, it is already green. We want the green to match the green lettering on most pages. See screenshot below.

From a UI standpoint, that Request a Change area, isn't super friendly. Could we make it all one button? Right now it's a weird-looking oval that isn't clickable. Is there any way we could make it all one button
[Request a Change] with the light bulb icon embedded?

Yeah that's really strange actually, it looked way different locally. I agree, making it all one button is way better.

Re-fixed finally. Will piggyback on next PR.

I need to pass this off to @jamstooks, I need to troubleshoot why styling is behaving differently in production than on my local machine. Screenshots:
Local: http://i.imgur.com/Qpd7Vnl.png
Production: http://i.imgur.com/4AC4U52.png

Fixed for real this time!


refactor(service/tikv): add tikvConfig to implement ConfigDeserializer

Part of https://github.com/apache/incubator-opendal/issues/3240

I'm sorry that I've committed so many commits that take up CLI resources, I just started learning Rust, thinking that if cargo build is fine, it means that the syntax is fine, things don't seem to be what I thought, and I can only use CLI to correct my compilation errors

You don't have to close and open the PR constantly. A PR  can be converted to a draft.

You don't have to close and open the PR constantly. A PR can be converted to a draft.

Thank you for the reminder, next time I start to take such measures, it has been done so far, and it is time to review

if cargo build is fine, it means that the syntax is fine, things don't seem to be what I thought

Service TiKV is not enabled by default which means cargo build doesn't build the code you have changed. You can check your code via cargo clippy --features services-tikv.

if cargo build is fine, it means that the syntax is fine, things don't seem to be what I thought

Service TiKV is not enabled by default which means doesn't build the code you have changed. You can check your code via .cargo build``cargo clippy --features services-tikv

Thank you very much

cc @Xuanwo

@Xuanwo Hello, I find that this part of feature is inconsistent among different methods of backend. This may be due to different developers. I would like to try to organize this part


how to edit in android studio

Hi there
i rly like this project: the idea, the features amazing. and i would love to to localize it and modify to my need but the problem is i'm kinda new to Android studio and i can't seems to be able to open and edit the files. so would you be so kind and give me some tips.
thanks in advance :)

Hi @youngrichu
Just follow the following steps

Clone this repository.
In Android Studio, Go to File -> New -> Import Project; and navigate to 'Android' subdirectory of this project
Build the project, and install the missing dependencies
Run it on your device or virtual device.

Feel free to ping if you face any error. :smile:

HI
first i would like to thank you for your replay :smile: and  i just did exacly as you told me , but i run into some errors with the styles.xml file.

Well, you shouldn't get this error
I will recommend checking out the answers on this page.
http://stackoverflow.com/a/31980495


Adding solution for 88

Fixes #88

My code sample is in :

[ ] CPP
[x] Java

Screenshot of working code sample  :

Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] My code sample is formatted and works correctly

LGTM , thanks for the contribution . (Star the repo if it helped you ).


Transformby for all entities (for scale)

Hi,
I am trying to do the following (Autocad) using netdxf
// Build a transformation matrix
Matrix3d xform = Matrix3d.Scaling(25.4, Point3d.Origin);
DocumentLock loc = doc.LockDocument();
using (loc)
{
ed.WriteMessage("\nIn scale drawings, locked");
// Start a Transaction
using (Transaction tr = db.TransactionManager.StartTransaction())
{
ed.WriteMessage("\nIn scale drawings, transaction");
// Open the drawing ModelSpace BlockTableRecord
BlockTable bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForRead);
BlockTableRecord mspace = (BlockTableRecord)tr.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForRead);
                // Iterate through each entity
                foreach (ObjectId id in mspace)
                {
                    // Open the Entity for write
                    //ed.WriteMessage("\nIn scale drawings, Foreach");
                    Entity ent = (Entity)tr.GetObject(id, OpenMode.ForWrite);
                    // Scale the Entity
                    ent.TransformBy(xform);
                    ed.WriteMessage("\nIn scale drawings, after transform");
                }

                // Commit the changes
                tr.Commit();
            }
        }

I have tried the following
Dim block As Block = Block.Load(item)
Dim insert As Insert = New Insert(block) With {
.Scale = New Vector3(25.4)
}
Dim explode As List(Of EntityObject) = insert.Explode()
Dim doc As DxfDocument = New DxfDocument()
doc.AddEntity(insert)
doc.AddEntity(explode)
doc.Save(strFileToExport)
as well as
Dim xform = Matrix3.Scale(25.4)
Dim oDxfDoc As DxfDocument = DxfDocument.Load(item)
Dim block As Block = oDxfDoc.Blocks.Item("*Model_Space")
            For Each blockRecord As EntityObject In block.Entities
                blockRecord.TransformBy(xform, Vector3.Zero)
            Next
            oDxfDoc.Save(strFileToExport)

I have attached the before and after dxf's
PartsBook - METRIC.zip
Thanks,
Shaun

Apologies for my late reply, thank you for the code you gave. It seems I was still using the old dll instead of the new compiled dll. Sorry for the hassle :-(. Thanks for a great API and keep up the good work.
Shaun


create packet_transport config

resolved: #25
details:
UDPTransport implementation named PacketTransport
(maybe TCPTransport as StreamTransport? @hihiboss suggest..)
I thought that for transport work as expected, transport necessarily needs address and port.
So both address, port are refactored to PacketTransportConfig
This config fields can be appended later as needed

create PacketTransportConfig

@junbeomlee @zeroFruit
I have already modified them!


fix #78153: can't create folder on newly created folder

Resolves #78153.
The problem here was that, when right-clicking on a newly-created, still-selected folder and selecting 'New Folder', the folder name entry would disappear immediately. This fixes that issue by making sure we still have the temporary folder name entry child when we fire ExplorerService._onDidChangeEditable. I don't know this codebase one bit, but I think it's because _onDidChangeEditable somehow leads to a rerender.

Thanks for the PR however due to comments in https://github.com/microsoft/vscode/issues/78153
I will not mrege this in.


"Donation Web View" button missing on donation account

Test Device: iPhone. 12 Pro Max and iPhone 11 Sim
App Version: v1.4.0 # 179, 181 and 182
The donation account does not have the donation web view button

Need the correct UX for this


[Operator] Sign

Support for Sign in relay.
Thanks for contributing to TVM!   Please refer to guideline https://docs.tvm.ai/contribute/ for useful information and tips. After the pull request is submitted, please request code reviews from Reviewers.

Thanks @srkreddy1238 @ashutoshparkhi this is now merged


Tatin web server does not have a file robot.txt

It should!

The file robot.txt should restrict crawlers to index only packages, deprecated packages, groups, usage data and the documentation.
Version information, licensing and the credential report should be ignored by crawlers.

Fixed in 0.117.0


[1.10]Block Lag/Texture Error

It seems when the factories are running full tilt there's a great deal of lag.
At first I thought it was the sheer amount of machines running (I have a tier 3/x4 factory running)
but it was running smoothly, all of a sudden the production stopped and I had to vent the excess sodium I had. When I started doing it I got a massive FPS drop (down to the teens from over 100) and tried breaking every one of them. It wasn't until I had mined away every machine including the Evap. plant controller did it actually stop. (Let me know what/if any logs can help. I had around 10g of memory allocated, was only at about 30%.)
Also I noticed some startup errors with textures, might have something to do with an issue I noticed where when I used a configurator on a pipe the pipe actually looked like it was porting in from the wrong direction and left the gas texture exposed.
http://pastebin.com/2fEvnU0V

Merging with #3572.


Controller Multiple Directory Levels (on default_controller)

Multiple directory controller levels work, until you use it as the $route['default_controller']
Example:
$route['default_controller']   = 'page/home';
This sends back "The page you requested was not found."
Directory setup: /controllers/page/Home.php
In the url, if you go to /page/home/index or /page/home (both work perfectly), the issue only appears to not function as expected when using the default_controller within a multi-level directory setup, like going to the base url " / ", it doesnt know how to get into the default controller.

Does nobody ever read documentation?

I'm not saying that $route['default_controller'] doesn't work, I'm saying it does not work "as expected" when using routing to a sub-directory as the default controller.
These do not describe how to use sub-directories within the default controller, when you are located on the base url, they only describe the use of default_controller when your url is specified with directories.
http://www.codeigniter.com/user_guide/general/controllers.html#defining-a-default-controller
http://www.codeigniter.com/user_guide/general/controllers.html#organizing-your-controllers-into-sub-directories
Maybe I am missing something, or the documentation isn't clear. But as of the code, default_controller isn't working like the rest of the routing on the base url.
If you could please, kindly link the documentation that specifies the specific configuration I would need to have the default_controller work within sub-directories just like the normal routes do, that would be great. Thank you.
Example:
If I have controller directory setup like this:
controllers/page/home
controllers/home
If I go to the URL of /home or /page/home, I see the results of each controller
if I go to the base URL of the domain /, the default_controller takes over,
if the default_controller is setup for home it shows me the controllers/home
if the default_controller is setup for page/home it shows me 404

Yea, I didn't misunderstand what you're saying.
I'd link as you asked, if I wasn't on my mobile right now, but I can tell you this as a fact: the very same document that you linked has never suggested that you could use a directory as part of the default_controller.
The only officially documented variation has always been controller/method, the fact that directories have ever worked in pre-3.0 versions was a bug and even despite it being a bug, it is explicitly mentioned (fairly detailed even) in the 3.0.0 upgrade instructions. I am literally explaining this for at least the 50th time in public.
Despite all that, somebody always argues that it doesn't work as expected. It does!

Okay thanks for the explanation, I found the upgrade information here
http://www.codeigniter.com/user_guide/installation/upgrade_300.html
that describes the bug you are talking about, and that default_controller is not meant to have directory functionality. I think I was used to using it from a past project when I used the pre-release version of 3.
Thanks again!

Improved the docs: ee2ece8f59338087cef911073d16b2ee407a31bb
Also, marking this as yet another duplicate of #2849.


Acs/readd wasm target

Remaking this PR

This PR hangs significantly on parsing introit. I suspect this is could be because of excessive cloning of Defs. We need to always wrap Defs inside of an Rc


Code fix for missing imports

Implement codefix for adding missing imports.
Ping @riknoll

@mhegazy updated, can you take another look

ping @mhegazy @billti @paulvanbrenk @aozgaa

how does this codefix work?


Function key problems

My funtion keys do not work, it would be good to be able to remap the buttons that activate the overlay

You know we're actually dealing with pretty esoteric piece of software here but in any case it would be reasonable to assume our end users have a working keyboard.


Separate config for each useSWRV() invocation on the same key

On version 1.0.0-beta.8.
Calling useSWRV on the same key twice with different configs seems not to honor them.
Example:
const { data: refreshingData } = useSWRV('/foos/42', fetch)
const { data: stableData } = useSWRV('/foos/42', fetch, { revalidateOnFocus: false })

Here both refreshingData and stableData gets refreshed on focus. Expected behavior would be to refresh refreshingData on focus, but leave stableData as-is.
(Why: Stable data serves as the basis for user-editable form. It must not change while the user is in the middle of editing it. Refreshing data, on the other hand, is read-only and it should update asap when there's been a change in the meantime.)

just dropping a note that I wont' be getting to this soon, but tagged "help wanted" and appreciate any PR's!

So I wrote a test exposing this issue. A couple of log statements later I realized the configs in fact are separate and honored correctly.
The issue with the code above is that the same key means the newly refreshed value is replaced in the cache for the key which is shared between both invocations and therefore even the stableData then gets refreshed although it didn't cause the fetch.
The solution here is to use separate keys. One has to have a custom fetcher then to use the same URL even though the keys are different.
I'm offering the test, if you find it useful: https://github.com/Kong/swrv/pull/276.
This being a bit tricky issue (not only me thought it was a bug), it might be a good idea to smh try to explain this in the docs to preempt future confusions.


Classifying Handwritten Digits with TF.Learn - Machine Learning(jupyter notebook on docker)

InvalidArgumentError                      Traceback (most recent call last)
/opt/conda/lib/python3.7/site-packages/tensorflow/python/client/session.py in _do_call(self, fn, *args)
1333     try:
-> 1334       return fn(*args)
1335     except errors.OpError as e:
/opt/conda/lib/python3.7/site-packages/tensorflow/python/client/session.py in _run_fn(feed_dict, fetch_list, target_list, options, run_metadata)
1318       return self._call_tf_sessionrun(
-> 1319           options, feed_dict, fetch_list, target_list, run_metadata)
1320
/opt/conda/lib/python3.7/site-packages/tensorflow/python/client/session.py in _call_tf_sessionrun(self, options, feed_dict, fetch_list, target_list, run_metadata)
1406         self._session, options, feed_dict, fetch_list, target_list,
-> 1407         run_metadata)
1408
InvalidArgumentError: tensor_name = linear//weight; shape in shape_and_slice spec [1,10] does not match the shape stored in checkpoint: [784,10]
[[{{node save/RestoreV2}}]]
During handling of the above exception, another exception occurred:
InvalidArgumentError                      Traceback (most recent call last)
/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/saver.py in restore(self, sess, save_path)
1275         sess.run(self.saver_def.restore_op_name,
-> 1276                  {self.saver_def.filename_tensor_name: save_path})
1277     except errors.NotFoundError as err:
/opt/conda/lib/python3.7/site-packages/tensorflow/python/client/session.py in run(self, fetches, feed_dict, options, run_metadata)
928       result = self._run(None, fetches, feed_dict, options_ptr,
--> 929                          run_metadata_ptr)
930       if run_metadata:
/opt/conda/lib/python3.7/site-packages/tensorflow/python/client/session.py in _run(self, handle, fetches, feed_dict, options, run_metadata)
1151       results = self._do_run(handle, final_targets, final_fetches,
-> 1152                              feed_dict_tensor, options, run_metadata)
1153     else:
/opt/conda/lib/python3.7/site-packages/tensorflow/python/client/session.py in _do_run(self, handle, target_list, fetch_list, feed_dict, options, run_metadata)
1327       return self._do_call(_run_fn, feeds, fetches, targets, options,
-> 1328                            run_metadata)
1329     else:
/opt/conda/lib/python3.7/site-packages/tensorflow/python/client/session.py in _do_call(self, fn, *args)
1347       message = error_interpolation.interpolate(message, self._graph)
-> 1348       raise type(e)(node_def, op, message)
1349
InvalidArgumentError: tensor_name = linear//weight; shape in shape_and_slice spec [1,10] does not match the shape stored in checkpoint: [784,10]
[[node save/RestoreV2 (defined at :2) ]]
Caused by op 'save/RestoreV2', defined at:
File "/opt/conda/lib/python3.7/runpy.py", line 193, in _run_module_as_main
"main", mod_spec)
File "/opt/conda/lib/python3.7/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/opt/conda/lib/python3.7/site-packages/ipykernel_launcher.py", line 16, in
app.launch_new_instance()
File "/opt/conda/lib/python3.7/site-packages/traitlets/config/application.py", line 658, in launch_instance
app.start()
File "/opt/conda/lib/python3.7/site-packages/ipykernel/kernelapp.py", line 505, in start
self.io_loop.start()
File "/opt/conda/lib/python3.7/site-packages/tornado/platform/asyncio.py", line 148, in start
self.asyncio_loop.run_forever()
File "/opt/conda/lib/python3.7/asyncio/base_events.py", line 539, in run_forever
self._run_once()
File "/opt/conda/lib/python3.7/asyncio/base_events.py", line 1775, in _run_once
handle._run()
File "/opt/conda/lib/python3.7/asyncio/events.py", line 88, in _run
self._context.run(self._callback, *self._args)
File "/opt/conda/lib/python3.7/site-packages/tornado/ioloop.py", line 690, in
lambda f: self._run_callback(functools.partial(callback, future))
File "/opt/conda/lib/python3.7/site-packages/tornado/ioloop.py", line 743, in _run_callback
ret = callback()
File "/opt/conda/lib/python3.7/site-packages/tornado/gen.py", line 781, in inner
self.run()
File "/opt/conda/lib/python3.7/site-packages/tornado/gen.py", line 742, in run
yielded = self.gen.send(value)
File "/opt/conda/lib/python3.7/site-packages/ipykernel/kernelbase.py", line 357, in process_one
yield gen.maybe_future(dispatch(*args))
File "/opt/conda/lib/python3.7/site-packages/tornado/gen.py", line 209, in wrapper
yielded = next(result)
File "/opt/conda/lib/python3.7/site-packages/ipykernel/kernelbase.py", line 267, in dispatch_shell
yield gen.maybe_future(handler(stream, idents, msg))
File "/opt/conda/lib/python3.7/site-packages/tornado/gen.py", line 209, in wrapper
yielded = next(result)
File "/opt/conda/lib/python3.7/site-packages/ipykernel/kernelbase.py", line 534, in execute_request
user_expressions, allow_stdin,
File "/opt/conda/lib/python3.7/site-packages/tornado/gen.py", line 209, in wrapper
yielded = next(result)
File "/opt/conda/lib/python3.7/site-packages/ipykernel/ipkernel.py", line 294, in do_execute
res = shell.run_cell(code, store_history=store_history, silent=silent)
File "/opt/conda/lib/python3.7/site-packages/ipykernel/zmqshell.py", line 536, in run_cell
return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)
File "/opt/conda/lib/python3.7/site-packages/IPython/core/interactiveshell.py", line 2848, in run_cell
raw_cell, store_history, silent, shell_futures)
File "/opt/conda/lib/python3.7/site-packages/IPython/core/interactiveshell.py", line 2874, in _run_cell
return runner(coro)
File "/opt/conda/lib/python3.7/site-packages/IPython/core/async_helpers.py", line 67, in _pseudo_sync_runner
coro.send(None)
File "/opt/conda/lib/python3.7/site-packages/IPython/core/interactiveshell.py", line 3049, in run_cell_async
interactivity=interactivity, compiler=compiler, result=result)
File "/opt/conda/lib/python3.7/site-packages/IPython/core/interactiveshell.py", line 3214, in run_ast_nodes
if (yield from self.run_code(code, result)):
File "/opt/conda/lib/python3.7/site-packages/IPython/core/interactiveshell.py", line 3296, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "", line 2, in
print ("Predicted %d, Label: %d" % (classifier.predict(test_data[0]), test_labels[0]))
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/util/deprecation.py", line 574, in new_func
return func(*args, **kwargs)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/util/deprecation.py", line 574, in new_func
return func(*args, **kwargs)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/contrib/learn/python/learn/estimators/linear.py", line 539, in predict
as_iterable=as_iterable)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/util/deprecation.py", line 574, in new_func
return func(*args, **kwargs)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/contrib/learn/python/learn/estimators/linear.py", line 574, in predict_classes
as_iterable=as_iterable)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/util/deprecation.py", line 507, in new_func
return func(*args, **kwargs)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/contrib/learn/python/learn/estimators/estimator.py", line 670, in predict
iterate_batches=iterate_batches)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/contrib/learn/python/learn/estimators/estimator.py", line 974, in _infer_model
config=self._session_config))
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/monitored_session.py", line 934, in init
stop_grace_period_secs=stop_grace_period_secs)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/monitored_session.py", line 648, in init
self._sess = _RecoverableSession(self._coordinated_creator)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/monitored_session.py", line 1122, in init
_WrappedSession.init(self, self._create_session())
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/monitored_session.py", line 1127, in _create_session
return self._sess_creator.create_session()
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/monitored_session.py", line 805, in create_session
self.tf_sess = self._session_creator.create_session()
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/monitored_session.py", line 562, in create_session
self._scaffold.finalize()
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/monitored_session.py", line 217, in finalize
self._saver = training_saver._get_saver_or_default()  # pylint: disable=protected-access
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/saver.py", line 604, in _get_saver_or_default
saver = Saver(sharded=True, allow_empty=True)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/saver.py", line 832, in init
self.build()
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/saver.py", line 844, in build
self._build(self._filename, build_save=True, build_restore=True)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/saver.py", line 881, in _build
build_save=build_save, build_restore=build_restore)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/saver.py", line 507, in _build_internal
restore_sequentially, reshape)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/saver.py", line 385, in _AddShardedRestoreOps
name="restore_shard"))
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/saver.py", line 332, in _AddRestoreOps
restore_sequentially)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/saver.py", line 580, in bulk_restore
return io_ops.restore_v2(filename_tensor, names, slices, dtypes)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/ops/gen_io_ops.py", line 1572, in restore_v2
name=name)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/framework/op_def_library.py", line 788, in _apply_op_helper
op_def=op_def)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/util/deprecation.py", line 507, in new_func
return func(*args, **kwargs)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/framework/ops.py", line 3300, in create_op
op_def=op_def)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/framework/ops.py", line 1801, in init
self._traceback = tf_stack.extract_stack()
InvalidArgumentError (see above for traceback): tensor_name = linear//weight; shape in shape_and_slice spec [1,10] does not match the shape stored in checkpoint: [784,10]
[[node save/RestoreV2 (defined at :2) ]]
During handling of the above exception, another exception occurred:
InvalidArgumentError                      Traceback (most recent call last)
 in
1 # here's one it gets right
----> 2 print ("Predicted %d, Label: %d" % (classifier.predict(test_data[0]), test_labels[0]))
3 display(0)
/opt/conda/lib/python3.7/site-packages/tensorflow/python/util/deprecation.py in new_func(*args, **kwargs)
572                   func.module, arg_name, arg_value, 'in a future version'
573                   if date is None else ('after %s' % date), instructions)
--> 574       return func(*args, **kwargs)
575
576     doc = _add_deprecated_arg_value_notice_to_docstring(
/opt/conda/lib/python3.7/site-packages/tensorflow/python/util/deprecation.py in new_func(*args, **kwargs)
572                   func.module, arg_name, arg_value, 'in a future version'
573                   if date is None else ('after %s' % date), instructions)
--> 574       return func(*args, **kwargs)
575
576     doc = _add_deprecated_arg_value_notice_to_docstring(
/opt/conda/lib/python3.7/site-packages/tensorflow/contrib/learn/python/learn/estimators/linear.py in predict(self, x, input_fn, batch_size, outputs, as_iterable)
537           input_fn=input_fn,
538           batch_size=batch_size,
--> 539           as_iterable=as_iterable)
540     return super(LinearClassifier, self).predict(
541         x=x,
/opt/conda/lib/python3.7/site-packages/tensorflow/python/util/deprecation.py in new_func(*args, **kwargs)
572                   func.module, arg_name, arg_value, 'in a future version'
573                   if date is None else ('after %s' % date), instructions)
--> 574       return func(*args, **kwargs)
575
576     doc = _add_deprecated_arg_value_notice_to_docstring(
/opt/conda/lib/python3.7/site-packages/tensorflow/contrib/learn/python/learn/estimators/linear.py in predict_classes(self, x, input_fn, batch_size, as_iterable)
572         batch_size=batch_size,
573         outputs=[key],
--> 574         as_iterable=as_iterable)
575     if as_iterable:
576       return _as_iterable(preds, output=key)
/opt/conda/lib/python3.7/site-packages/tensorflow/python/util/deprecation.py in new_func(*args, **kwargs)
505                 'in a future version' if date is None else ('after %s' % date),
506                 instructions)
--> 507       return func(*args, **kwargs)
508
509     doc = _add_deprecated_arg_notice_to_docstring(
/opt/conda/lib/python3.7/site-packages/tensorflow/contrib/learn/python/learn/estimators/estimator.py in predict(self, x, input_fn, batch_size, outputs, as_iterable, iterate_batches)
668         outputs=outputs,
669         as_iterable=as_iterable,
--> 670         iterate_batches=iterate_batches)
671
672   def get_variable_value(self, name):
/opt/conda/lib/python3.7/site-packages/tensorflow/contrib/learn/python/learn/estimators/estimator.py in _infer_model(self, input_fn, feed_fn, outputs, as_iterable, iterate_batches)
972               checkpoint_filename_with_path=checkpoint_path,
973               scaffold=infer_ops.scaffold,
--> 974               config=self._session_config))
975       if not as_iterable:
976         with mon_sess:
/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/monitored_session.py in init(self, session_creator, hooks, stop_grace_period_secs)
932     super(MonitoredSession, self).init(
933         session_creator, hooks, should_recover=True,
--> 934         stop_grace_period_secs=stop_grace_period_secs)
935
936
/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/monitored_session.py in init(self, session_creator, hooks, should_recover, stop_grace_period_secs)
646         stop_grace_period_secs=stop_grace_period_secs)
647     if should_recover:
--> 648       self._sess = _RecoverableSession(self._coordinated_creator)
649     else:
650       self._sess = self._coordinated_creator.create_session()
/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/monitored_session.py in init(self, sess_creator)
1120     """
1121     self._sess_creator = sess_creator
-> 1122     _WrappedSession.init(self, self._create_session())
1123
1124   def _create_session(self):
/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/monitored_session.py in _create_session(self)
1125     while True:
1126       try:
-> 1127         return self._sess_creator.create_session()
1128       except _PREEMPTION_ERRORS as e:
1129         logging.info('An error was raised while a session was being created. '
/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/monitored_session.py in create_session(self)
803       """Creates a coordinated session."""
804       # Keep the tf_sess for unit testing.
--> 805       self.tf_sess = self._session_creator.create_session()
806       # We don't want coordinator to suppress any exception.
807       self.coord = coordinator.Coordinator(clean_stop_exception_types=[])
/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/monitored_session.py in create_session(self)
569         init_op=self._scaffold.init_op,
570         init_feed_dict=self._scaffold.init_feed_dict,
--> 571         init_fn=self._scaffold.init_fn)
572
573
/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/session_manager.py in prepare_session(self, master, init_op, saver, checkpoint_dir, checkpoint_filename_with_path, wait_for_checkpoint, max_wait_secs, config, init_feed_dict, init_fn)
279         wait_for_checkpoint=wait_for_checkpoint,
280         max_wait_secs=max_wait_secs,
--> 281         config=config)
282     if not is_loaded_from_checkpoint:
283       if init_op is None and not init_fn and self._local_init_op is None:
/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/session_manager.py in _restore_checkpoint(self, master, saver, checkpoint_dir, checkpoint_filename_with_path, wait_for_checkpoint, max_wait_secs, config)
193
194     if checkpoint_filename_with_path:
--> 195       saver.restore(sess, checkpoint_filename_with_path)
196       return sess, True
197
/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/saver.py in restore(self, sess, save_path)
1310       # We add a more reasonable error message here to help users (b/110263146)
1311       raise _wrap_restore_error_with_msg(
-> 1312           err, "a mismatch between the current graph and the graph")
1313
1314   @staticmethod
InvalidArgumentError: Restoring from checkpoint failed. This is most likely due to a mismatch between the current graph and the graph from the checkpoint. Please ensure that you have not altered the graph expected based on the checkpoint. Original error:
tensor_name = linear//weight; shape in shape_and_slice spec [1,10] does not match the shape stored in checkpoint: [784,10]
[[node save/RestoreV2 (defined at :2) ]]
Caused by op 'save/RestoreV2', defined at:
File "/opt/conda/lib/python3.7/runpy.py", line 193, in _run_module_as_main
"main", mod_spec)
File "/opt/conda/lib/python3.7/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/opt/conda/lib/python3.7/site-packages/ipykernel_launcher.py", line 16, in
app.launch_new_instance()
File "/opt/conda/lib/python3.7/site-packages/traitlets/config/application.py", line 658, in launch_instance
app.start()
File "/opt/conda/lib/python3.7/site-packages/ipykernel/kernelapp.py", line 505, in start
self.io_loop.start()
File "/opt/conda/lib/python3.7/site-packages/tornado/platform/asyncio.py", line 148, in start
self.asyncio_loop.run_forever()
File "/opt/conda/lib/python3.7/asyncio/base_events.py", line 539, in run_forever
self._run_once()
File "/opt/conda/lib/python3.7/asyncio/base_events.py", line 1775, in _run_once
handle._run()
File "/opt/conda/lib/python3.7/asyncio/events.py", line 88, in _run
self._context.run(self._callback, *self._args)
File "/opt/conda/lib/python3.7/site-packages/tornado/ioloop.py", line 690, in
lambda f: self._run_callback(functools.partial(callback, future))
File "/opt/conda/lib/python3.7/site-packages/tornado/ioloop.py", line 743, in _run_callback
ret = callback()
File "/opt/conda/lib/python3.7/site-packages/tornado/gen.py", line 781, in inner
self.run()
File "/opt/conda/lib/python3.7/site-packages/tornado/gen.py", line 742, in run
yielded = self.gen.send(value)
File "/opt/conda/lib/python3.7/site-packages/ipykernel/kernelbase.py", line 357, in process_one
yield gen.maybe_future(dispatch(*args))
File "/opt/conda/lib/python3.7/site-packages/tornado/gen.py", line 209, in wrapper
yielded = next(result)
File "/opt/conda/lib/python3.7/site-packages/ipykernel/kernelbase.py", line 267, in dispatch_shell
yield gen.maybe_future(handler(stream, idents, msg))
File "/opt/conda/lib/python3.7/site-packages/tornado/gen.py", line 209, in wrapper
yielded = next(result)
File "/opt/conda/lib/python3.7/site-packages/ipykernel/kernelbase.py", line 534, in execute_request
user_expressions, allow_stdin,
File "/opt/conda/lib/python3.7/site-packages/tornado/gen.py", line 209, in wrapper
yielded = next(result)
File "/opt/conda/lib/python3.7/site-packages/ipykernel/ipkernel.py", line 294, in do_execute
res = shell.run_cell(code, store_history=store_history, silent=silent)
File "/opt/conda/lib/python3.7/site-packages/ipykernel/zmqshell.py", line 536, in run_cell
return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)
File "/opt/conda/lib/python3.7/site-packages/IPython/core/interactiveshell.py", line 2848, in run_cell
raw_cell, store_history, silent, shell_futures)
File "/opt/conda/lib/python3.7/site-packages/IPython/core/interactiveshell.py", line 2874, in _run_cell
return runner(coro)
File "/opt/conda/lib/python3.7/site-packages/IPython/core/async_helpers.py", line 67, in _pseudo_sync_runner
coro.send(None)
File "/opt/conda/lib/python3.7/site-packages/IPython/core/interactiveshell.py", line 3049, in run_cell_async
interactivity=interactivity, compiler=compiler, result=result)
File "/opt/conda/lib/python3.7/site-packages/IPython/core/interactiveshell.py", line 3214, in run_ast_nodes
if (yield from self.run_code(code, result)):
File "/opt/conda/lib/python3.7/site-packages/IPython/core/interactiveshell.py", line 3296, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "", line 2, in
print ("Predicted %d, Label: %d" % (classifier.predict(test_data[0]), test_labels[0]))
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/util/deprecation.py", line 574, in new_func
return func(*args, **kwargs)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/util/deprecation.py", line 574, in new_func
return func(*args, **kwargs)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/contrib/learn/python/learn/estimators/linear.py", line 539, in predict
as_iterable=as_iterable)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/util/deprecation.py", line 574, in new_func
return func(*args, **kwargs)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/contrib/learn/python/learn/estimators/linear.py", line 574, in predict_classes
as_iterable=as_iterable)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/util/deprecation.py", line 507, in new_func
return func(*args, **kwargs)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/contrib/learn/python/learn/estimators/estimator.py", line 670, in predict
iterate_batches=iterate_batches)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/contrib/learn/python/learn/estimators/estimator.py", line 974, in _infer_model
config=self._session_config))
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/monitored_session.py", line 934, in init
stop_grace_period_secs=stop_grace_period_secs)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/monitored_session.py", line 648, in init
self._sess = _RecoverableSession(self._coordinated_creator)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/monitored_session.py", line 1122, in init
_WrappedSession.init(self, self._create_session())
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/monitored_session.py", line 1127, in _create_session
return self._sess_creator.create_session()
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/monitored_session.py", line 805, in create_session
self.tf_sess = self._session_creator.create_session()
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/monitored_session.py", line 562, in create_session
self._scaffold.finalize()
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/monitored_session.py", line 217, in finalize
self._saver = training_saver._get_saver_or_default()  # pylint: disable=protected-access
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/saver.py", line 604, in _get_saver_or_default
saver = Saver(sharded=True, allow_empty=True)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/saver.py", line 832, in init
self.build()
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/saver.py", line 844, in build
self._build(self._filename, build_save=True, build_restore=True)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/saver.py", line 881, in _build
build_save=build_save, build_restore=build_restore)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/saver.py", line 507, in _build_internal
restore_sequentially, reshape)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/saver.py", line 385, in _AddShardedRestoreOps
name="restore_shard"))
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/saver.py", line 332, in _AddRestoreOps
restore_sequentially)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/saver.py", line 580, in bulk_restore
return io_ops.restore_v2(filename_tensor, names, slices, dtypes)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/ops/gen_io_ops.py", line 1572, in restore_v2
name=name)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/framework/op_def_library.py", line 788, in _apply_op_helper
op_def=op_def)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/util/deprecation.py", line 507, in new_func
return func(*args, **kwargs)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/framework/ops.py", line 3300, in create_op
op_def=op_def)
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/framework/ops.py", line 1801, in init
self._traceback = tf_stack.extract_stack()
InvalidArgumentError (see above for traceback): Restoring from checkpoint failed. This is most likely due to a mismatch between the current graph and the graph from the checkpoint. Please ensure that you have not altered the graph expected based on the checkpoint. Original error:
tensor_name = linear//weight; shape in shape_and_slice spec [1,10] does not match the shape stored in checkpoint: [784,10]
[[node save/RestoreV2 (defined at :2) ]]

Please provide details about what platform you are using (operating system, architecture). Also include your TensorFlow version. Also, did you compile from source or install a binary?
Make sure you also include the exact command if possible to produce the output included in your test case. If you are unclear what to include see the issue template displayed in the Github new issue template.
We ask for this in the issue submission template, because it is really difficult to help without that information. Thanks!

Automatically closing due to lack of recent activity. Please update the issue when new information becomes available, and we will reopen the issue. Thanks!


PouchDB still at 5.3.2  after Merge pull request #171 from ralphtheninja/master

Just did a fresh install of superlogin and notice that PouchDB is still at 5.3.2 maybe you need to update the superlogin version to 0.6.2?

Confirmed that the NPM package has not been updated and is still at version 0.6.1 as of October 1, 2017.  Until the NPM package is updated you would need to manually reference the git repo commit in your package.json and then update with npm install.  See comments from @micky2be on this issue referenced


Add Game Pipeline (Tic-Tac-Toe)

If you would like to see a game run, navigate into the game-pipeline directory and run cabal run match-handler -- -g "cabal run game-engine" -b "cabal run simple-bot" -b "cabal run simple-bot".
The output should look as follows:
Num Players:2
Game:Player 0 3
Game->Bot:
Game->Bot:
Game->Bot:
Bot->Game:0 0
Game:Player 1 3
Game->Bot:X
Game->Bot:
Game->Bot:
Bot->Game:0 1
Game:Player 0 3
Game->Bot:X O
Game->Bot:
Game->Bot:
Bot->Game:0 2
Game:Player 1 3
Game->Bot:X O X
Game->Bot:
Game->Bot:
Bot->Game:1 0
Game:Player 0 3
Game->Bot:X O X
Game->Bot:O
Game->Bot:
Bot->Game:1 1
Game:Player 1 3
Game->Bot:X O X
Game->Bot:O X
Game->Bot:
Bot->Game:1 2
Game:Player 0 3
Game->Bot:X O X
Game->Bot:O X O
Game->Bot:
Bot->Game:2 0
Game:Done [1.0,-1.0]
1.0 -1.0

Thoughts:

could use structure in the game handler (json, rpc terminology, etc)

data passed around should be json?
game log should be json jsonl?
rename variables better

Here's an example of how we can use jsonl for the game history:
// File metadata
{ "type": "metadata", "game_type": "tic_tac_toe", "history_format_version": 2 }

// Type 1
{ "type": "game_loop", "round_number": 1 }
{ "type": "player_action", "player": 1, "placed_cell": 5, "chat": "Got ya!" }
{ "type": "player_action", "player": 2, "placed_cell": 4 }
{ "type": "game_loop", "round_number": 2 }

// Type 2
{ "type": "player_actions", "turn_number": 1, "players": [ { "player": 1, "action": "blah" }, { "player": 2, "action": "foo" } ] }

// Others
{ "type": "debug_msg", "description": "yada yada" }

i like type 2 because it's grouped in a logical way. To read type 1, we would need to read the file sequentially to properly construct all the events that happened in a single turn. Also, it's a little less noisy.


Cache jwks_uri response

Hi @nov,
First I would like to thank you for maintaining this great library.
I'm using omniauth_openid_connect and it seems to always fetch the keys from the jwks_uri.
https://github.com/omniauth/omniauth_openid_connect/blob/b4965d09f0ec096517d25a7e7a1e23ebc57172f7/lib/omniauth/strategies/openid_connect.rb#L204-L206
I can see that the config.jwks is memoised and that there is already a cache if config.jwk(kid) is used but omniauth_openid_connect simply uses the result of the jwks_uri.
Given that there is a cache for the config itself and for the individual jwk when using kid would you open for a change to also cache the jwks_uri response? If accepted would you have any hints on how to achieve this? SWD and JSON::JWK::Set::Fetcher have their own cache stores but they don't seem to fit the bill here 🤔.
I considered opening an issue on omniauth_openid_connect to use config.jwk(kid) but AFAIK kid is an optional/hint field so systems might not provide it and the usual fallback approach is trying to find a key with the specified alg.
Another option is to introduce a cache on omniauth_openid_connect for the config.jwks piece 🤔
Thanks in advance

JSON::JWK::Set::Fetcher can be used for it too.

Caching by kid is intended behaviour, and I'm not willing to remove kid requirement here.


react-inifinite-calendar not working in IE11

I was trying to see if this component would work for an implementation I am contributing to, but realized that it has an issue rendering in IE11 (and IE10). I checked the demo site for this component and realized that was broken in IE11 as well. Here is there error I encountered:
SCRIPT5007: Unable to get property '__reactInternalInstance$he17twt1w9hj' of undefined or null reference
Any idea if this may be fixed in the future?

Hi. Tested in IE11 and it's working.
Versions:
"react-infinite-calendar": "^2.2.0"
"date-fns": "^1.28.4"
"react-addons-css-transition-group": "^15.5.2"

Hey @mitchellcunha, thanks for pointing out this issue. This is just an issue with the demo site, forgot to include babel-polyfill. IE10 and IE11 don't support certain features such as Object.assign, but you can easily solve this in your application by polyfilling them.

Thanks for looking into that, I appreciate it.


Migrated selectors to return elementList instead of elementWrapper

@luciferankon Please resolve the conflicts on this PR.

@luciferankon Please resolve the conflicts on this PR.

@nehashri done

@NivedhaSenthil Please recheck this PR. I have made the required changes.
PS: Please squash this PR


[Fancy Zones] Add Full Screen zone across multiple displays

I want the ability to add a single full screen zone across multiple displays in a multi-monitor configuration
I use Visual Studio across 2 x 4K 32" monitors.  I want to maximize the application across both displays, and treat both displays as a single screen/zone.  Currently, I need to open the app, and manually align TopLeft/BottomRight.
The application would act as if it had been maximized (currently maximizing an app in a dual display configuration means it maximizes to a single screen).  I can, of course, configure the NVidia display driver to appear as a single display device - but this gets a bit jenky when you introduce DisplayPort sleep/power/disconnection issues, and I don't want a single display for all applications - only this one (and maybe Davinci Resolve, when I'm doing a bit of video edition)

@dacowan
the tracker for this feature is https://github.com/microsoft/PowerToys/issues/480
Closing this as duplicate.
Thanks.


kubectl error when loading with zplug

I just installed zplug (switching from oh-my-zsh) and I now get the following error (and I can show that kubectl is installed:
Section 'kubectl' have not been loaded.

~ 'kubectl' not found
➜ which kubectl
/usr/local/bin/kubectl

~ 'kubectl' not found
➜

my .zshrc:
source ~/.zplug/init.zsh

zplug "denysdovhan/spaceship-prompt", use:spaceship.zsh, from:github, as:theme

zplug load

Which version are you using ? The master branch is recommend.

Which version of spaceship-prompt? zplug loads the latest master branch by default

Run ll ~/.zplug/repos/denysdovhan/spaceship-prompt/sections | grep kubectl to find if kubectl.zsh exists

~
❯ ls ~/.zplug/repos/denysdovhan/spaceship-prompt/sections | grep kubectl
kubectl.zsh
kubectl_context.zsh
kubectl_version.zsh

Does kubectl exist in your ~/.zshrc  ?
SPACESHIP_PROMPT_ORDER=(
    # ...
    kubectl       # Kubectl context section
    # ...
)

I faced the same issue using https://getantibody.github.io/.
My ~/.zshrc:
# Load antibody plugin manager
source <(antibody init)

# Theme
SPACESHIP_PROMPT_ORDER=(
  ...
)

SPACESHIP_RPROMPT_ORDER=(
  kubectl       # Kubectl context section
)

antibody bundle denysdovhan/spaceship-prompt


OOP school library: Create Classes

Pull Request Summary:
Title: Implement Separate person, student, and teacher Classes
Description:
In this pull request, I have created separate classes for person, student, and teacher. The changes are summarized as follows:

person Class:

The person class has been refactored and moved into a new file named person.rb.
The class now includes instance variables @id, @name, and @age, along with corresponding getters and setters for each of them.
The constructor has been updated to include optional parameters for name and parent_permission, with default values of "Unknown" and true, respectively.
A private method generate_id has been implemented to assign a random ID to each person object, ensuring uniqueness.
The can_use_services? method has been modified to check if the person is 18 years or older or has parent permission, returning true or false accordingly.

student Class:

A new student class has been created in the file student.rb, inheriting from the person class.
The student class extends the parent's constructor by adding the @classroom instance variable and a parameter to set it during object creation.
The class includes a new method play_hooky, which returns the fun response "¯(ツ)/¯" when invoked.
The can_use_services? method in the student class has been overridden to behave similarly to the person class, allowing students to use services if they are 18 years or older or have parent permission.

teacher Class:

A new teacher class has been implemented in the teacher.rb file, also inheriting from the person class.
The teacher class extends the parent's constructor by adding the @specialization instance variable and a parameter to set it during object creation.
The can_use_services? method in the teacher class has been overridden to always return true, granting teachers unrestricted access to services.

These changes significantly improve the code's organization, maintainability, and reusability. The modular design allows for better separation of concerns, making it easier to manage and extend the codebase. Please review this pull request at your earliest convenience. Your feedback is highly valued and will contribute to the project's improvement. Thank you.
Best regards,
Junaid

Hi @DeliceLydia. Thanks for the thorough review😊. I have made the requested changes.


[Bug] Substreams Block Ingestor sleep times

Bug report
Noticed that Substreams Block Ingestor backoff instance is never reset in the loop. So the sleep time drops to 30 seconds eventually on an instance with connectivity issues, and never recovers.
Reproduce:

Start indexing a substreams subgraph locally
Shutdown Postgres docker container and wait until time between retries drops to 30 seconds
Start Postgres container back up
Shut it down again. It will continue to sleep for 30 seconds between retries even though it would make sense to recover back to 250ms wait times

Should be an easy fix - just reset it every time new cursor is different from latest_cursor
Relevant log output
No response
IPFS hash
No response
Subgraph name or link to explorer
No response
Some information to help us out

[ ] Tick this box if this bug is caused by a regression found in the latest release.
[ ] Tick this box if this bug is specific to the hosted service.
[X] I have searched the issue tracker to make sure this issue is not a duplicate.

OS information
None

Same thing with Firehose Block Ingestor


Add support for rom2 instancing coreir.mem with init

See #932
TODO: add test for rom2

Thanks. Want to make sure the verilog is good for Dillon then I will merge.

It seems like a general pass like flatten_types to convert all parameters into "POD"s would be a way to do it. Of course what a "POD" is may depend on the context (verilog vs sv).

@rdaly525 @rsetaluri can we merge this? I have down_sample, cascade, pointwise, gaussian, and strided conv working in coreir verilog simulation, and I'd like to add camera pipeline to that list.


ENH: Adds NeuralNetBinaryClassifier

Resolves #200. I made the following design choices when creating NeuralNetBinaryClassifier:

Uses BCEWithLogitsLoss by default, which means self.module must output the logit of probability. Based on the pytorch documentation, BCEWithLogitsLoss is more numerical stable to use than BCELoss.

self.module is expected to output values with shape: (batch_size, ). I am open to changing this to (batch_size, 1).

Subclassed NeuralNetClassifier since the predict, predict_proba, and fit docstrings are relevant for  NeuralNetBinaryClassifier.

NeuralNetClassifier.check_data is reused, combined with a check on the y's dimension.

I had to override get_loss and use NeuralNet.get_loss instead. In its current form, NeuralNetBinaryClassifier should not need to take the log of any values. This is the downside of subclassing NeuralNetClassifier.

Thank you for your contribution.
Some general comments:

Uses BCEWithLogitsLoss by default

Makes sense. Users can change this if they like.

self.module is expected to output values with shape: (batch_size, )

I wonder whether we could accept both and squeeze on the other end if necessary.

Subclassed NeuralNetClassifier

I'd rather have that all net classes inherit from NeuralNet. There will be some code duplication, but if it mostly affects docstrings, I'm fine with it. If it affects actual methods, we can think about using mixins. The disadvantage of subclassing NeuralNetClassifier is that it can get tedious and confusing to find out where methods actually come from. Flatter hierarchies should keep things simple (or at least simple-ish).

I agree with delaying this PR for #240. net.py is getting pretty long.

With #240, you could now move your code to classifier.py.
I saw that you hardcoded the threshold to 0.5. Do you think that making this a parameter would be useful?

This PR has been updated:

Adds NeuralNetBinaryClassifier to classifier.py.
NeuralNetBinaryClassifier subclasses NeutralNet.
Adds threshold to predict: predict(self, X, threshold=0.5).

Could you please add a test for the case that BCEWithLogitsLoss is not used? Then we should be fine.

Added tests to check that torch.nn.functional.sigmoid is not called for criterion that is not BCEWithLogitsLoss.


Replace the SnapshotOptions object with the behavior enum.

Instead of calling
get(field, SnapshotOptions.serverTimestampBehavior(.estimate))
call
get(field, serverTimestampBehavior: .estimate)

Note that this is based on wilhuff/remove-query-listen-options. Before merging I'll retarget at master.


Updates for Feature #55, remove runhelm.sh

Remove the runhelm.sh the installation script and refactor everything to use straight helm.
resolves #55

Blocked by https://github.com/helm/helm/issues/8137


added wireframe to images, added bulma css, started designing landing…

Wireframes added to an images folder in assets.
Bulma CSS framework added to head.
Fixed BadUrl Request to display our page in js.
Added and began to style landing page.

didnt merge


Update backup client to accept scene pks and add debugging methods

@woswos
Firstly, do make sure to set assignee and reviewer. Otherwise people will not see the pull request.

I once heard that Ziyan was reluctant to add debug api. Is that cleared?
Is DebugPk correct term? At least it is different from clientcpp.

@cielavenir Hi, I did not assign a reviewer yet because I was trying to fix CI errors.

I think Ziyan is OK with the debug API now, since he asked me to use debug API specifically for backup.
I'm not sure if DebugPk is the best term to use. I used it because debug API refers to each item as pk or name. Do you have a suggestion for a better term?

controllerclientcpp uses DebugInfo term (anyway please check with Ziyan)


Admin can view all tickets

Uses URL: /ContactUs/Browse
Administrator can view all submitted tickets in tabular format:

Ticket Id
Title
Last Activity Date
Status
action that can taken

452b21
Buy milk
2015-09-09
New
Accept (button)

c42ffd
Fix printer
2015-09-10
Accepted
Reject, Close

Closed by pull request #4


Batched tile tests

Batched tile tests. Due to the changes in #3259 there are no cases where the model's promise is rejected for Batched tiles, so I'm missing that code coverage.

Part of #3177.

This looks really good.  Just that one question.


Restarting the service from the program

Good day.
Is it possible to orbinize the restart of the service, without restarting esp32, for example, after erasing the data, I want to be able to pair with the phone again, now I am doing a power reset for this.

No, it is not possible at the moment. Implementation is not hard, but I couldn't find any practical use case for this.

Got it, thanks for the answer. My use case is as follows: after removing the accessory on the phone and erasing the data in esp32, a new device cannot be added without restarting esp32.

So, what's the problem restart the device?

Then restart the device.

There are no problems to reboot the device, but my esp is used as a gateway for a multichannel relay and controls channels via modbus, https://youtu.be/7YfrBtO3Dos?t=144
and in some cases information will be lost and the relay will be reset. In principle, I have already taken into account this point and now all states are remembered before rebooting, so there are no problems.


Extend upload API to support both tar and zip, and update client, backend, etc.

With the old implementation only tar.gz seems to work when doing the 'push' form the ui. When supply a zip file the /store and /stage calls both succeed however the call to /complete fails with a 500 error
Server Backtrace: Tasks Completed: 4 (Failed: 1, Cancelled 0), Skipped: 0\ngithub.com/epinio/epinio/internal/api/v1/application.Controller.Staged.func1\n\t/go/src/github.com/epinio/internal/api/v1/application/stage.go:285

It would help the usability of the UI if both tar.gz and zip file types were supported.
Supporting zip would also make it easier to support the 'folder' source as well (it's much easier client side to create a zip file from a local folder).

The request is to support both tar.gz and zip. That would remove the need for converting from or to zip in the frontend.

Updated the title

The endpoints involved in running an application are

create app resource
upload sources (store to s3)
stage sources (read from s3, save image to registry)
deploy (read image from registry)

Of these only step 3 has to know the format the sources are in, and there only the unpack step. The download sub-step does not care about the format, like step 2. While both nominally handle the uploaded sources the only thing they do is passing it into and out of the configured S3 for storage. Neither does care about the format the sources are in. The buildpack step expects the unpacked sources, i.e. a directory hierarchy.
Step 1 obviously has nothing to do with sources at all, and step 4 knows to expect an OCI image.
So, primary focus has to be on https://github.com/epinio/epinio/blob/bbb0412d2761c612d25562249b167c554c78f8d2/internal/api/v1/application/stage.go#L367
Regarding the cli client I see no need for updating it. It currently supports specification of sources as directory, or git repository. That it uses tar internally to package these up is immaterial and does not have to change. It would be different if it would already support specification as tarball instead of as directory. In that case adding support for zip would make sense.
Thus, no secondary focus is required.
Note, I expect the unpack script to become complicated enough that #1175 will gain priority.

The part

unpack-blob Tar?
unpack-blob Tar: tar: invalid tar magic
unpack-blob OK

of the log seems to indicate that the unpack script did not test the other formats after it failed for tar ...
I will look into this again.

Note that the scripts for staging are in the epinio helm chart, see epinio/templates/stage-scripts.yaml.
They are saved in the cluster as config map. That means you can edit them on the fly in the cluster.

Note that the scripts for staging are in the epinio helm chart, see epinio/templates/stage-scripts.yaml. They are saved in the cluster as config map. That means you can edit them on the fly in the cluster.

@andreas-kupries I'm flip-flopping between projects again but if there's anything you'd like me to try or validate just let me know

Not yet. Had a quick look at the relevant code, i.e.
   mkdir /workspace/source/app
    (  cd /workspace/source/app
       ( echo Tar? ; tar -xvf  "../${BLOBID}" 2>&1 | sed -e 's/^/Tar: /' ) || \
       ( echo Zip? ; unzip     "../${BLOBID}" 2>&1 | sed -e 's/^/Zip: /' ) || \
       ( echo Tgz? ; tar -xvzf "../${BLOBID}" 2>&1 | sed -e 's/^/Tgz: /' ) || \
       ( echo Tbz? ; tar -xvjf "../${BLOBID}" 2>&1 | sed -e 's/^/Tbz: /' ) || \
       ( echo Txz? ; tar -xvJf "../${BLOBID}" 2>&1 | sed -e 's/^/Txz: /' ) || \
       ( echo "Unable to unpack. No supported archive file format found" ; exit 1 )
       echo OK
    )

and it still looks ok to me with || to chain attempts at unpacking.
I will have to trial this locally.
From the log it jumped from Tar directly to ok, ignoring all the remaining clauses.

:disappointed: I confirm local failure of this code. Now why/how was this working when I wrote it ?
Regardless, now working on a fix.
work@tagetarl:~/SUSE/dev/epinio> ./z.sh x/docs.tar
Tar?
Tar: ./
Tar: ./epinio.png
Tar: ./howtos/
Tar: ./howtos/acceptance_tests.md
Tar: ./howtos/custom-python-builder.md
Tar: ./howtos/development.md
Tar: ./howtos/README.md
Tar: ./howtos/new-api-user.md
Tar: ./references/
Tar: ./references/api/
Tar: ./references/api/swagger.json
Tar: ./explanations/
Tar: ./explanations/configuration-management-internals.md
Tar: ./explanations/futureplans.md
Tar: ./README.md
OK

work@tagetarl:~/SUSE/dev/epinio> ./z.sh x/docs.zip
Tar?
Tar: tar: This does not look like a tar archive
Tar: tar: Skipping to next header
Tar: tar: Exiting with failure status due to previous errors
OK

It seems that it is the ... | sed ... parts which break it.
That would also explain why it worked first.
Because the sed part was added later.
And not fully re-tested (my bad).
I believe I now understand. While the tar command fails, the sed does not, and that is the state of the clause, so it stops.
And only ever executes the first clause.
I will now remove the sed parts and make a chart PR for that.
For immediate testing in your env edit the config map and the replace the code mentioned in https://github.com/epinio/epinio/issues/1149#issuecomment-1070615355 with
mkdir /workspace/source/app
    (  cd /workspace/source/app
       ( echo Tar? ; tar -xvf  "../${BLOBID}" ) || \
       ( echo Zip? ; unzip     "../${BLOBID}" ) || \
       ( echo Tgz? ; tar -xvzf "../${BLOBID}" ) || \
       ( echo Tbz? ; tar -xvjf "../${BLOBID}" ) || \
       ( echo Txz? ; tar -xvJf "../${BLOBID}" ) || \
       ( echo "Unable to unpack. No supported archive file format found" ; exit 1 )
       echo OK
    )

Beware indentation (yaml!)

Chart PR https://github.com/epinio/helm-charts/pull/141
Epinio PR https://github.com/epinio/epinio/pull/1303


--cwd not working

from directory without commitlint config files, lets suppose home (~)
 ~  echo "foo" | commitlint --cwd /home/bjorn/.config/dotfiles/commitlint/
⧗   input: foo
✔   found 0 problems, 0 warnings

expected some error
 ~/.config/dotfiles/commitlint   master ●  tree -a.
├── .commintlint.json
├── node_modules
│   ├── conventional-changelog-lint-config-canonical
│   │   ├── conventional-changelog-lintrc.json
│   │   ├── index.js
│   │   ├── LICENSE
│   │   ├── .npmignore
│   │   ├── package.json
│   │   └── README.md
│   └── .yarn-integrity
├── package.json
└── yarn.lock

2 directories, 10 files

.commitlint.json
{
  "extends": ["canonical"]
}

P.S. what I want is to fallback on my personal .commintlint.json  if current direcory has no .commintlint.json

made some script, to lint and commit if all is fine (I don't like cz-cli)
#!/usr/bin/env ruby
# Author - Sergey Homa<EMAIL_ADDRESS># License - none

# lint commit message using commitlint, commit if valid
# usage:
# - in bash
#   alias lc="linted-git-commit -m"
#   alias lc!="linted-git-commit --amend -m"
# - in console
#   gaa && lc "feat: added linted-git-commit"

# options
dir_with_commitlint_config = '/home/bjorn/.config/dotfiles/commitlint/'

# run
options = ARGV
message_pointer_index = options.index('-m')

unless message_pointer_index
  puts 'Message is required'
  exit false
end

message = options.delete_at(message_pointer_index + 1)
options.delete_at(message_pointer_index)

lint = "commitlint --cwd #{dir_with_commitlint_config}"
cmd = "echo \"#{message}\" | #{lint}"

return unless system(cmd)

`git commit #{options.join(' ')} -m \"#{message}\"`

linted-git-commit in dotfiles
commitlint.config.js in dotfiles
P.S. it would be very helpful to allow some sort of  commitlint.config.js in home directory

Hey @BjornMelgaard, have you tried  @commitlint/prompt-cli for your usecase?
--cwd is intended to tell commitlint where to read commit history and or edit files from if applicable (if the -e, --from or --to flags are set).
If you want to have a global fallback for commit configuration you could install the configuration you need globally:
npm install -g commitlint-config-angular

commitlint.config.js is read from every directory that is above your current cwd, e.g.:
// in ~/projects
echo "foobar" | npx commitlint

will pick up
// ~/commitlint.config.js
module.exports = {
  extends: ['angular']
}

have you tried @commitlint/prompt-cli for your usecase?
same as cz-cli, its not saving my commit message if something goes wrong (zsh history does), but thanks))

ok, I have updated my dotfiles here and here
and what I found is that commitlint not working in directories with git :astonished:
example
 ~  ls -lAFh | grep commit
lrwxrwxrwx   1 bjorn users   45 Oct 18 20:41 .commitlintrc.yml -> /home/bjorn/.config/dotfiles/commitlintrc.yml
 ~  echo "foo" | commitlint
⧗   input: foo
✖   scope may not be empty [scope-empty]
✖   message may not be empty [subject-empty]
✖   type may not be empty [type-empty]
⚠   header must not be shorter than 30 characters [header-min-length]
✖   found 3 problems, 1 warnings
 ✘  ~  cd Documents
 ~/Documents  echo "foo" | commitlint
⧗   input: foo
✖   scope may not be empty [scope-empty]
✖   message may not be empty [subject-empty]
✖   type may not be empty [type-empty]
⚠   header must not be shorter than 30 characters [header-min-length]
✖   found 3 problems, 1 warnings
 ✘  ~/Documents  pjdot
 ~/.config/dotfiles   master  echo "foo" | commitlint
⧗   input: foo
✔   found 0 problems, 0 warnings

 ~/.config/dotfiles   master  ls -lAFh | grep commit
-rw-r--r-- 1 bjorn users 1.1K Oct 18 20:42 commitlintrc.yml
 ~/.config/dotfiles   master  pj psc-ide-vim
 ~/projects/psc-ide-vim   fix ●  echo "foo" | commitlint
⧗   input: foo
✔   found 0 problems, 0 warnings

 ~/projects/psc-ide-vim   fix ●  echo "foo" | npx commitlint
⧗   input: foo
✔   found 0 problems, 0 warnings

 ~/projects/psc-ide-vim   fix ●  ..
 ~/projects  echo "foo" | npx commitlint
⧗   input: foo
✖   scope may not be empty [scope-empty]
✖   message may not be empty [subject-empty]
✖   type may not be empty [type-empty]
⚠   header must not be shorter than 30 characters [header-min-length]
✖   found 3 problems, 1 warnings

Ok my bad - commitlint currently stops searching upwards for config files on the git root (if any) we probably should change that to stops at the git root if there is a a file found there.

Wow, looking forward to fix)

Concerning @commitlint/prompt-cli: Would you consider using a commit prompt if it injected the equivalent git commit into history?

@marionebl , first of all, thanks for fix

Would you consider using a commit prompt if it injected the equivalent git commit into history?

not sure how it will work
basically what I want is:

to reapply commit if it failed in midway. Consider project with tests running on precommit hook. I've made message, I press enter, test failed, I have to reenter message
make new commit with slightly modified message of previous commit. (so I just searching command in zsh history starting with a gaa && lc in this case)


Add type to diff ingester protobuf

The diff ingester was initially just coded to support a diff in dependencies.
Howver, this ingester is very handy for other things such as full diffs or
diffs of github actions.
This introduces a type to the protobuf which allows us to set the diff
type as needed.
This also introduces validation which makes sure that a user can only set
an empty or dep diff type. Empty keeps backwards compatibility.

@jhrozek @teodor-yanev from today's conversation.


fix #3594 discounts aren't applied if sale doesn't have an end date

I want to merge this change because...
Addresses #3594
the active() helper method of identify current sales was not working if no end date was set.
This change also includes a refactor of the tests to allow for selection of start/end dates
Pull Request Checklist

[ ] Privileged views and APIs are guarded by proper permission checks.
[ ] All visible strings are translated with proper context.
[ ] All data-formatting is locale-aware (dates, numbers, and so on).
[x] Database queries are optimized and the number of queries is constant.
[x] Database migration files are up to date.
[x] The changes are tested.
[ ] The code is documented (docstrings, project documentation).
[x] GraphQL schema and type definitions are up to date.
[ ] Changes are mentioned in the changelog.

Thanks for contributing to Saleor @cprinos!


[NuGet.org Bug]: NuGet.org tampers with the uploaded package, making attestation difficult

Impact
It bothers me. A fix would be nice
Describe the bug
I recently implemented GitHub Attestations for the NuGet packages I produce. This was pretty annoying to do, because NuGet.org inserts a signature file into any(?) nupkg you upload to it. So the only flow I can make work is:

upload the package;
wait for it to become available;
download the package;
unzip it and verify that its contents are byte-for-byte identical after removing the .signature file;
attest the package I downloaded.

This is awkward!
Repro Steps
Upload a package to NuGet. Download it again. Observe that its contents have changed.
Expected Behavior
It surprised me greatly that NuGet.org tampers with uploaded packages. (The obvious thing to do would have been to have NuGet serve a certificate separately from the package, but that ship has presumably long since sailed. "NuGet.org attests that this package was uploaded by someone capable of impersonating ThisParticularUser" is not information that belongs in the package; other package repositories do exist and it would be nice not to require each one to tamper incompatibly with the packages that get uploaded to it to attest to it!)
No solution comes to mind; it may be possible for NuGet.org not to tamper with uploaded packages, but I can't see how without either duplicating large swathes of API or breaking compatibility.
Screenshots
No response
Additional Context and logs
It is of course possible to sign NuGet packages, but this has exactly the same secrets-management problems that NuGet API keys have. The whole point is to attest meaningfully that this package was produced from this source; having to trust that package producers are correctly handling their certificates is a very big and unnecessary ask. (Of course, better would be to have reproducible NuGet packs, because then we could attest verifiably that a package was built from a particular source tree without a bunch of custom logic.)

(This isn't really a bug, but I didn't think any of the labels were appropriate. "Design decisions are making things much harder than they needed to be".)

My purpose in attestation here is to credibly claim that an open-source package has the contents it appears to have. I can claim that package Foo.Bar was built from Git source abc123 without modification, but (as far as I know) the NuGet ecosystem provides no way for me to make this claim credibly. It is possible in principle for me to use the existing NuGet signature mechanism to assert that I produced the package contents, but as far as I can tell there is no existing way for me to assert that the package contents are what I claim they are.
However, with GitHub's artifact attestations, I can credibly claim that this package was produced by this automated pipeline run from this git source tree which anyone can audit. GitHub's artifact attestations are of the form "an artefact with this SHA256 has this provenance", and as far as I can tell it does not admit special-casing for NuGet; it would take bespoke tooling to phrase "these packages are equal modulo bundled signature files" in this form.

To be extremely concrete, I have some packages that I wrote myself which I wish to use in a context where the integrity of the code we're running is important: it's unacceptable for us to run packages for whose contents we have only my word. We could clone the packages from source, run parallel publishing pipelines in contexts that we trust, and so on; or we could remove the need to trust me, and instead only trust GitHub (which is much simpler).

Thanks for the additional information.
In the NuGet signing "parallel universe" this credible claim you mention is analogous to NuGet author signatures. If you, the package author, use dotnet nuget sign I can credibly claim that the package was signed by the owner of that author signing certificate. To avoid trusting you, your organization (presumably the "we" in your last message) could entrust a code signing certificate to GitHub Actions (however you choose) and author sign the package. The package will be modified on NuGet.org but you can still verify the original author signature is valid. Of course you need to trust NuGet client tooling in this case.
A workaround for this difference in approach could be to simply not publish the NuGet package to a repository which supports repository signing (NuGet.org is the only I know of which does). For your concrete case, this could take the form of publishing the packages once to NuGet.org (if desired) for external/OSS consumption. Then you would publish the original packages to another feed, perhaps Azure Artifacts or GitHub Package Registry, and consuming from there for your highly sensitive context.
What's not clear to me is how you are performing the "verify" step of the consumed artifacts. Are you using both NuGet restore from NuGet.org and additionally gh attestation verify (per docs)?
Where is the verify happening in your consumption workflow? I assume you are using actions/attest-build-provenance@v1 against the .nupkg after dotnet pack in your GitHub Actions workflow.

If you are populating and then consuming from an intermediate cache, then I imagine the source to populate the cache is less important.
If you don't consume directly from your cache, there is no guarantee the content fetched from the original source has the same attestation state at the time of package restore (dotnet restore). Therefore you'll need to set your NuGet package source as the cache.
This leaves just the matter of populating the cache, in which case NuGet.org doesn't seem to be unique. You just need some tooling (perhaps NuGet itself with an overridden NUGET_PACKAGES environment variable) to download your dependency graph from somewhere. Then the attest step. Then the nuget restore from your cache dir.
It seems like there are some open questions on how the end-to-end will work. It appears to me that non-trivial custom tooling is needed as well as new mappings (e.g. associating repository X with .nupkg Y). It's also not clear how transitive dependencies that you don't own will be attested.
I'll leave this issue open since it is indeed true, attestation based on trivial file hash is indeed hard to do with repository-signed NuGet packages.

Yeah, the obvious proof-of-concept for this is the standard .NET workflow on NixOS, which fetches every package from a lockfile into an isolated environment and sets the NuGet source to that environmnet before build. This also asserts the contents of the package as a side-effect.
Transitive dependencies that I don't own are certainly important, and it would be great to see an attestation solution across the ecosystem! Some dependencies we're happy to accept on faith - e.g. FSharp.Core is already author-signed, and we are happy to assume its author is taking care of the certificate - but most dependencies are currently only dubiously acceptable or (e.g. in my case, an insider who is the sole author of an opaque binary blob) are completely unacceptable. That's why I was so excited to learn about attestations: it finally gives me the technology to prove that my binary blob corresponds to a given reviewable source, which makes it in principle acceptable to consume.
If I had god perms to the universe, I'd allow NuGet.org to associate packages with repos. Packages already can declare their source, and NuGet.org provides links to the source; it would (for example) be trivial for NuGet to check with GitHub at upload time that the uploaded package has been attested at the version it claims to have. (But for this feature to be useful enough to implement, it would require massive vendor lock-in to GitHub - I'm not aware of other ecosystems which allow such trivial attestation - and would require "most" package authors to have unusually secure/trustworthy publishing workflows.)

The instability of NuGet package SHAs, by the way, is aesthetically displeasing for Nix as well. It should, morally, be the case that I can build a package from source and have the result be equal to the package I obtain from NuGet; if that were true and if dotnet pack were reproducible, I could build the package into my Nix store from source and then immediately consume it without waiting for a round-trip to NuGet.org to find a SHA to update.

Even without package signing, I don't believe building .NET packages from source is byte-for-byte reproducible, but this is not an area I have investigated very much. I found https://github.com/dotnet/reproducible-builds via a Google search so perhaps you can give that a try. In general, I think byte-for-byte (i.e. hash equivalent) building of a package from source is not something that many customers have asked for so I don't have the experience of trying it and seeing what works and what doesn't.

Even without package signing, I don't believe building .NET packages from source is byte-for-byte reproducible, but this is not an area I have investigated very much.

In my opinion, this byte-for-byte reproducible approach may work in the short term, but most likely will not work after a few months. Most NuGet package dependencies are version ranges, so the package dependencies you have today may change at any time when older dependencies are unlisted and a new patched version is published. Of course, you can set a specific version and use a lock file to ensure you're using the same upstream package, but it requires quite an effort to make it happen for an end-to-end scenario. Many dotnet repositories that are a few years old are not rebuildable at all nowadays from source code.

Yeah, NixOS's setup gives that stuff for free. I guarantee the "isolated" property of the Dotnet.ReproducibleBuilds.Isolated package by packaging with Nix, and I lock the SDK and all NuGet packages by hash at the Nix level for the build; it works pretty seamlessly. ContinuousIntegrationBuild=true and Deterministic=true appear in my experience to be enough to keep the output stable under those conditions, so it's only the timestamps in the .nupkg file that are nondeterministic.

Is there anywhere I can see NuGet.org's logic for adding this signature file? Empirically I have observed it to be the case that zip -d "$downloaded_package" .signature.p7s recovers precisely the original file, but there doesn't seem to be any particular reason to expect that would be true; in principle the whole thing could be recompressed when the .signature.p7s is added. I've completely failed to find the relevant logic in NuGetGallery. (It would be very helpful if we could reliably obtain the original package, given the one NuGet serves us.)

Empirically I have observed it to be the case that zip -d "$downloaded_package" .signature.p7s recovers precisely the original file, but there doesn't seem to be any particular reason to expect that would be true

This can be true. zip -d would need to implement file removal in a specific way, as to not disturb the other file entries in a way that changes the NuGet content hash. If you are seeing that behavior, it is a fortunate coincidence.
For packages that have an existing .signature.p7s file, this would not work. This most often occurs when the package is author signed. In this case the .signature.p7s file is modified to contain a repository counter signature.

in principle the whole thing could be recompressed when the .signature.p7s is added.

This would be a breaking change because the stable "content hash" that is included in the signature (and is part of the NuGet package signing contract) would change.

I've completely failed to find the relevant logic in NuGetGallery.

NuGetGallery open source code will not show this part. We have a small closed source integration with Microsoft internal signing systems which provides repository signing. This closed source integration does internally use the code you linked (via MSSignCommand I think), but there are a couple of layers of abstraction between NuGet.org and the code link you found.

It would be very helpful if we could reliably obtain the original package, given the one NuGet serves us.

This is an interesting request and, if you want it, should probably be its own issue. Feel free to open this other issue and cross link it to this one! If I remember correctly, we do store the original artifact before repository signing so we could theoretically make this available for both existing and new packages. But there may be caveats that I don't know of right now, not found until such a feature request is designed and implemented.

Thanks, that comment clarifies something that in hindsight was fuzzy in my mind. I care about determinism, not about retrieving the original package per se; so stripping all signatures is fine for my purposes.
I dug through zip and, as long as the original package was unsigned, zip -d does seem to be simply inverting what NuGet does (although I can't say I fully understand that code). I think for nixpkgs we can work with what we have! (But only because in nixpkgs we get the chance to intervene before any consumer sees the nupkg; that's not really true in other contexts.)


Add meson as build system

Meson is a build system very wildely used in the open source
community and gainning traction.
This aims at replacing setuptools completely as it builds the c++
code as well as handling setuptools/python files.
We can keep both build system for a while to see if meson works for
the community (hoping you like the idea of using Meson :-))
This port supports usage of otio in an 'uninstalled' environment only
requiring to set the PYTHONPATH, as explained at the end of the
configuration. We could add an helper in the future to make it even
simpler.
The difference in term of build compared to setuptools is that it
statically links libopentime[lineio] into the python bindings when
the libs are not installed, making the setup simpler.
There still is a OTIO_CXX_NOINSTALL option which works the same way
as with CMake. Two more options are provided:

python: A feature to enable or disable python bindings
python_version: The python version to use, valid values are
['2', '3']

This build also generate .pc files for consumption with pkg-config
so libopentimelineio can be more easily consumed by other open source
components.
This port builds everything but the swift bindings.
The port as only been tested on linux right now, but meson has been
proven to work on all platforms (for example we build GStreamer on
all platforms and with all major C compilers without any problem) so
I do not forsee any major issue for that port to work on other
targeted platforms.
It also includes the same targets as the Makefile:

lint
doc-model-update
test (you can run ninja test or meson test)

Codecov Report

Merging #546 into master will increase coverage by <.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #546      +/-   ##
==========================================
+ Coverage   81.28%   81.29%   +<.01%
==========================================
  Files          72       72
  Lines        2731     2726       -5
==========================================
- Hits         2220     2216       -4
+ Misses        511      510       -1

Flag
Coverage Δ

#py27
81.29% <ø> (ø)
:arrow_up:

#py36
?

#py37
?

Impacted Files
Coverage Δ

...eio/opentimelineio-bindings/otio_anyDictionary.cpp
100% <0%> (ø)
:arrow_up:

...elineio/opentimelineio-bindings/otio_anyVector.cpp
100% <0%> (ø)
:arrow_up:

...ntimelineio/opentimelineio-bindings/otio_utils.cpp
85.88% <0%> (+0.65%)
: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 1407f4a...6eb1b8d. Read the comment docs.

Tested on mac OSX and it works there too.

Meson looks appealing, particularly in that it simplifies the way that the python and C++ build system interoperate, but given that CMake appears to be the build system for most of the projects that ASWF has adopted, we'd like to stick with CMake for now. Thanks for the suggestion!

Well, you are not only using CMake right now, but setuptools and some CMake, meson could also consume the CMake part as a subproject and only replace setuptools, but to me it doesn't make so much sense as meson can replace it all in a clean integrated way.

We can revisit this when we switch to the ASWF CI system, as that will likely require some changes as well.


Provide an example of how you would integrate it into a web app?

Hi,
Thanks for the great effort.
Could you provide an example of how you would integrate it into a web app?

@princemaple Ha good question. I'm trying to figure that out myself. I'm new to all this encryption stuff. Have you found out anything since you've asked that question? I'm wondering if I only need to run the registration once or every time the app boots?

Not really, I haven't looked into this since. I have other solutions, so this isn't a priority for me. Sorry mate.

You'll only need to register once per letsencrypt account private key. You also only have to agree with the terms once.
If you have the private key stored somewhere, you can re-initialize the Acme.Client and use it to authorize domains/request certificates.


C++ radix sort implementation

Implementation of a radix sort in C++ using templates.
For issue #37

same implementation of an algorithm is submitted by someone else and it gets accepted
Thanks for contributing