Basically, when an attribute is read in the HDF5 file, it will be added to the internal list of atts. But if the type is invalid, it will be immediately deleted again. This is so netCDF-4 can ignore reference types.
The following code from nc4file.c (around line 100) has the memory problem. If nc4_att_list_del() is called on the att, then the memory is deallocated. Then the code tries to set att->created, which is referring to now-deallocated memory.
      /* Read the rest of the info about the att,
       * including its values. */
      if ((retval = read_hdf5_att(att_info->grp, attid, att)))
	{
	  if (NC_EBADTYPID == retval)
            {
	      if ((retval = nc4_att_list_del(&att_info->var->att, att)))
		BAIL(retval);
            }
	  else
	    BAIL(retval);
	}

	  att->created = NC_TRUE;

The fix sets the att pointer to NULL if it is deleted, and checks the att pointer before setting the created field.
      /* Read the rest of the info about the att,
       * including its values. */
      if ((retval = read_hdf5_att(att_info->grp, attid, att)))
	{
	  if (NC_EBADTYPID == retval)
            {
	      if ((retval = nc4_att_list_del(&att_info->var->att, att)))
		BAIL(retval);
	      att = NULL;
            }
	  else
	    BAIL(retval);
	}

      if (att)
	  att->created = NC_TRUE;

Now att->created is only set if the att was not deleted.
I will submit a PR with this fix shortly.


Update changelog in master

This updates the changelog in master with the changes from the 1.11 bump branch;
https://github.com/docker/docker/pull/21434 (https://github.com/docker/docker/commit/e651c1b2b92ccfcf3b075999e2427773a9b3dbdf)
https://github.com/docker/docker/pull/21450 (https://github.com/docker/docker/commit/76489af40f40385b3fd9f0a669fdc8cf3640e188)
https://github.com/docker/docker/pull/21500 (https://github.com/docker/docker/commit/32a5308237858cc5b7bcac16cc16286fc7996a9b)
https://github.com/docker/docker/pull/21827 (https://github.com/docker/docker/commit/c774c390b199ef59079cd1dc95260d1672625e50)
https://github.com/docker/docker/pull/21832 (https://github.com/docker/docker/commit/99589731ac1e5d901436e6d0d8c03e9eddb5cccc)
https://github.com/docker/docker/pull/21936 (https://github.com/docker/docker/commit/2153d9ec9d32b882be929a79997c326d516fc44a)
https://github.com/docker/docker/pull/22006 (https://github.com/docker/docker/commit/2535db86781f2731024c945ecabd59199de0c727)

LGTM :angel:

LGTM


How to get date with event DatePicker change ?

How to get date value with event DatePicker change ?

@soulideth Just added a new event handler onDateChange in my Typescript upgrade, see: https://github.com/emulienfou/react-mui-scheduler


Add pod template support

fix #31 #19

/hold

/hold rebase on main branch of kubeedge/sedna

/hold cancel
rebase and squash on main branch of kubeedge/sedna

/lgtm

I'm going to merge this one now.

/approve


Make log out redirect to home

#10

Current coverage is 95.07% (diff: 100%)

Merging #14 into master will increase coverage by <.01%

@@             master        #14   diff @@
==========================================
  Files            55         55
  Lines          1135       1136     +1
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           1079       1080     +1
  Misses           56         56
  Partials          0          0

Powered by Codecov. Last update 7f041fb...3216588


Cant use Markdown-it

I just have installed markdown-it using:
npm install --save markdown-it
Then inside the .tsx I have:
import * as MarkdownIt from 'markdown-it';
const result = MarkdownIt().render(src);
Can't build the code:
ERROR in ./-/entities/maps/entities.json
Module parse failed: C:...\node_modules\entities\maps\entities.json Unexpected token (1:9)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected token (1:9)
@ ./-/markdown-it/lib/common/entities.js 6:17-55

This question doesn't seems to be related to this repo. Code works as needed and all commits are tested on travis.


Update dropdown.ts

Proposed changes
Un-commented the code that closes the drop-down menu on a second click on its opener link.
This change fixes a bug where the drop-down menu would enter an "infinite" buggy mode and become unusable if clicked twice while still open instead of the expected behavior closing the drop-down.
Types of changes

[x ] Bug fix (non-breaking change which fixes an issue).
[ ] New feature (non-breaking change which adds functionality).
[ ] Breaking change (fix or feature that would cause existing functionality to change).

Checklist:

[x ] I have read the CONTRIBUTING document.
[ x] My commit messages follows the conventional commit format
[ ] My change requires a change to the documentation, and updated it accordingly.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

Hey thanks for the quick fix. Does this also solve the behaviour of the Select Component? Thanks!

Thanks for the effort. I'll send you an invitation if you want to join us.


Library cannot be used with modern moduleResolution TypeScript settings

Description
It is not possible to import any type exported internally from the lib directory when your TS project is set to any of the modern values of moduleResolution: "Node16", "NodeNext" or "Bundler"
Explanation
The reason for that is filename clash between ./dist/lib.js and ./dist/lib/ directory -- modern resolution algorithms resolve the './lib' in
export * from './lib'

in the ./dist/index.d.ts file to the ./dist/lib.js , not ./dist/lib/index.d.ts.
The quickest way to resolve the issue is to change the lib.js filename to something like lib.web.js, so that there is no confusion between the file name and the directory name.
Reproduction
Prerequisites

A TS Project  with a compilerOption "moduleResolution" set to "Node16", "NodeNext" or "Bundler"

Steps to reproduce

Try to import things like

import { CasperClient, CLPublicKey, DeployUtil } from 'casper-js-sdk';

Expected behavior
The import is correct.
Actual behavior
TypeScript error 2305:
Module '"casper-js-sdk"' has no exported member 'DeployUtil'

Screenshots

Additional context
The bug does not have any runtime implications, but it's not possible to write code for devs that rely on current TS defaults.
Defect Type

[ ] Regression
[x] New
[ ] Escape

I'll try to address that in a PR in a moment

A workaround for Node devs is to remove the dist/lib.js file from the pacakge after installation -- Node is going to import dist/lib.node.js, as defined in package.json#node, and TypeScript will start resolving import from ./lib to `dist/lib/index.d.ts.

Hi @akwodkiewicz , thanks for filing this issue, will take a look.

Fixed in release-2.15.4.


Unable to trigger input on v-text-field

Subject of the issue
I am trying to test a component that takes input from a vuetify control (v-text-field) and using the wrapper trigger to simulate data entry with data commited to a vuex store.
Steps to reproduce
Sample code:
Input.vue
<template>
  <div>
  <v-text-field
    v-model="input">
  </v-text-field>
  </div>
</template>

<script>
export default {
  computed: {
    input: {
      get() {
        return this.$store.state.input;
      },
      set (value) {
        this.$store.commit("input", value);
      }
    }
  }
}
</script>

spec.js
import { mount, createLocalVue } from "@vue/test-utils";
import Vuex from "vuex";
import Vuetify from "vuetify";
import Input from "./Input";

const localVue = createLocalVue();
localVue.use(Vuex);
localVue.use(new Vuetify());

describe("Input.vue", () => {
  const sandbox = sinon.createSandbox();
  let store;
  let mutations;

  beforeEach(() => {
    mutations = {
      "input": () => {}
    };
    sandbox.spy(mutations, "input");
    store = new Vuex.Store({
      state: {
        input: null
      },
      mutations
    });
  });

  afterEach(() => {
    sandbox.restore();
  })

  it("commits input", () => {
    // arrange
    const wrapper = mount(Input, { store, localVue });
    // action
    const input = wrapper.find("input[type=\"text\"]");
    input.setValue("input");

    // assert
    expect(mutations.import.callCount).to.equal(1);
    expect(mutations.import.getCall(0).args[1]).to.equal("input");
  });

})

Expected behaviour
Test should pass (or fail)
Actual behaviour
Error: [vue-test-utils]: find did not return input[type="text"], cannot call setValue() on empty Wrapper
at throwError (webpack:///node_modules/@vue/test-utils/dist/vue-test-utils.js:1731 <- index.js:39098:9)
at ErrorWrapper.setValue (webpack:///node_modules/@vue/test-utils/dist/vue-test-utils.js:8932 <- index.js:46299:3)
Possible Solution

Some additional context:
Trigger uses selector as per the recommendation on this thread: [(https://github.com/vuejs/vue-test-utils/issues/957#issuecomment-419217970)]

Hi!
I believe this is a configuration issue; localVue.use(new Vuetify()); seems a bit off. I'm quite sure your console output tells you something about "Unknown custom element: ". That means Vuetify is not properly loaded.
You might want to check out Vuetify docs on how to properly set up unit tests.
Long story short, it should be .use(Vuetify) (without the class instantiation), and also I think it should be attached to Vue,  not localVue to avoid warnings on readonly attributes.
Hope it helps!

Thank you for the swift response @afontcu. The Vuetify setup instructions seem a little ambiguous or might be out of date, however adding vue.use(Vuetify) fixed the problem.


[DOCS] [Hotfix] [Delta Lake] Break data skipping optimizations into different section.

This PR breaks the data skipping optimizations into a separate section, to give it a stronger emphasis.

@clarkzinzow @jaychia good to merge?


[Design Review] Issue #1107: Serializer for clustered

Refactor PersistableResourceService and LocalPersistenceService
Add StateRepository
Update implicit Serializer constructor contract

I am interested in having comments on the high level design.
Future task in this context:

Implement the StateRepository for disk and clustered
Rework the CompactPersistentJavaSerializer and the DefaultSerializationProvider

Conversation with @lorban @chrisdennis @cljohnso @AbfrmBlr @albinsuresh concluded this is good wrt design - closing to work on proper implementation


Update README.md

Update notice about node.js compatibility

The difference was removed in https://github.com/feross/buffer/pull/143, thanks @awerlang


Develop model outputs methods

All endpoints in https://github.com/CABLE-LSM/meorg_client/blob/main/meorg_client/data/openapi.json to date have been implemented. We will reopen this issue if it looks like there is going to be an endpoint that addresses this issue.


feat: support prepare statement

Which issue does this PR close?

Closes https://github.com/apache/arrow-datafusion/issues/4426

[x] This PR  generates a LogicalPlan for PREPARE SELECT ...
[ ] EXECUTE statement will be done in a follow-on PR

Which prepare statements supported in this PR:

[x] Params in WHERE clause including both column > $1 and column in [$1, $2, ...]
[x] Params in HAVING clause including both AGG(column) > $1 and AGG(column) in [$1, $2, ...]
[x] Params in VALUES table in  SELECT. Eg: SELECT * FROM  (VALUES(1, $1), (2, $2)) AS t (num, letter);

Those are all I can think of for SELECT. Let me know if you think of other ones and I will add them in the tests. This PR does NOT support params in UPDATE and INSERT
What changes are included in this PR?

Add LogicalPlan::Prepare
Support Expr::Placeholder as it is a part of Prepare stmt
Generate LogicalPlan::Prepare for PREPARE stmt
Generate corresponding protobuf messages for LogicalPlan::Prepare
Map given data types of the PREPARE stmt to their corresponding Placeholders in the stmt

Are these changes tested?
Yes
Are there any user-facing changes?
Yes, they can use PREPARE stmt now

I plan to review this carefully tomorrow morning

LGTM. As far as I can see, we do not store the plans, just use them immediately after we prepare. I hope I am not missing anything.

I will take a look at this PR carefully tomorrow.
Generally, Prepared Statement and Plan Cache support is quite complex in RDBMS.

I am working on adding more tests which I think the last piece of this PR

@alamb : I have addressed all your comments. Can you re-review it?
Notes: If you run queries in DataFusion-cli, you will get error Internal("Unsupported logical plan: Prepare"). I think this means we are successfully create a LogicalPlan::Prepare (the purpose of this PR) but since we have not store it anywhere and have not implement physical plan for it, we get this error naturally.
Example:
cd datafusion-cli
cargo run
DataFusion CLI v15.0.0
❯ PREPARE my_plan(INT) AS SELECT $1
;
Internal("Unsupported logical plan: Prepare")
❯

BTW, do we support this case ?
Plain SQL:
SELECT * FROM tab WHERE col_a is null;
Prepared Stmt:
REPARE my_plan_1(INT) AS
   SELECT * FROM tab WHERE col_a is $1;

I plan to merge this as soon as the CI checks complete


Erroneous example for getEventsObservableFromJournal in README.md

README of the project includes an example for "Using the poller for journalling", which suggests invocation of .unsubscribe on object returned by RxJS' Observable.subscribe's returned by EventsCoreAPI.getEventsObservableFromJournal.
Expected Behaviour
journalling.unsubscribe should stop the stream of events being emitted after the timeout expires.
Actual Behaviour
  setTimeout(() => this.subscription.unsubscribe(), 1000)
                                     ^

TypeError: Cannot read property 'unsubscribe' of undefined
    at Timeout._onTimeout (/Users/ashishc/repo/aio-journal-consumer/journalConsumer.js:20:38)
    at listOnTimeout (internal/timers.js:549:17)
    at processTimers (internal/timers.js:492:7)

Reproduce Scenario (including but not limited to)
Execution of the sample-code for project README is sufficient to demonstrate the issue.
Steps to Reproduce
"Using the poller for journalling" sample-code from README, set a valid timeout and wait for that duration to pass after invocation of the code.
Platform and Version
macOS 10.15.4
node v13.13.0
npm v6.16.4
Sample Code that illustrates the problem
"Using the poller for journalling" sample-code from README
Logs taken while reproducing problem
N/A

Thanks for reporting this issue. I will take a look at it.

This issue has been fixed. Please try it out.


CUDA dll import error

Hi,
When i try and run the python main.py file, i get this error under the environment logs. I can't install CUDA 8.0 as it's too old for my Nvidia driver and CUDA 11.0 (Current version) leads to the same error.
Any advice on how it can be fixed? Thanks a lot in advance.

Hello,
Can you check if its a generic error running the following in python
import tensorflow as tf
I remember having issues regarding installing the correct CUDA version. I can check and share details on which version I used if you want.

Hi Aqeel,
Run this in the virtual env or just in the general install?

I meant execute in the python shell. In short, use the following commands

Open a terminal and activate your environment
 conda activate myenv
Start python shell
python
Type the following command and enter
import tensorflow as tf

My apologies, Here is the output

I use CUDA 9.0 on my GTX1080. May be try installing that.
Yes, the code will work on your GPU.

Tried 9.0, same issue. But found this https://www.tensorflow.org/install/source_windows tutorial. Should I try and install tensorflow using these instructions and check if that fixes it?

Yes. You should try that

Alright, I had to install CUDA 8.0 and then cuDNN 6.0. that fixed everything.

I have solved this particular problem by creating a Conda environment "python3.6".
Tested on both Windows 11 and Ubuntu 20 & 22


Issue using firebase_ml_vision

When using firebase_ml_vision on IOS I receive an error for Firebase Auth.
On android I receive an output that no faces were detected no matter if I use portrait or landscape.
The output is:
W/DynamiteModule(14227): Local module descriptor class for com.google.android.gms.vision.dynamite.face not found.
I/DynamiteModule(14227): Considering local module com.google.android.gms.vision.dynamite.face:0 and remote module com.google.android.gms.vision.dynamite.face:0
D/FaceNativeHandle(14227): Cannot load feature, fall back to load whole module.
W/DynamiteModule(14227): Local module descriptor class for com.google.android.gms.vision.dynamite not found.
I/DynamiteModule(14227): Considering local module com.google.android.gms.vision.dynamite:0 and remote module com.google.android.gms.vision.dynamite:1800
I/DynamiteModule(14227): Selected remote version of com.google.android.gms.vision.dynamite, version >= 1800
V/DynamiteModule(14227): Dynamite loader version >= 2, using loadModule2NoCrashUtils
I/Vision  (14227): Loading library libmobile_vision_face.so
I/Vision  (14227): libmobile_vision_face.so library load status: true

Flutter Doctor:
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel master, v0.10.1-pre.25, on Mac OS X 10.13.6 17G65, locale en)
[✓] Android toolchain - develop for Android devices (Android SDK 28.0.0-rc2)
[✓] iOS toolchain - develop for iOS devices (Xcode 10.0)
[✓] Android Studio (version 3.2)
[✓] IntelliJ IDEA Community Edition (version 2018.1.4)
[✓] VS Code (version 1.27.2)
[✓] Connected device (3 available)

• No issues found!
Process finished with exit code 0

So after the update to version 0.2.0+1 the package works on IOS but in android it still does not detect faces at all
I/flutter (13932): /storage/emulated/0/Android/data/com.nexttechphilly.fluttercrushn/cache/1539441270673_compressed3355293034334504468.jpg I/DynamiteModule(13932): Considering local module com.google.android.gms.vision.dynamite.face:0 and remote module com.google.android.gms.vision.dynamite.face:0 D/FaceNativeHandle(13932): Cannot load feature, fall back to load whole module. W/DynamiteModule(13932): Local module descriptor class for com.google.android.gms.vision.dynamite not found. I/DynamiteModule(13932): Considering local module com.google.android.gms.vision.dynamite:0 and remote module com.google.android.gms.vision.dynamite:1800 I/DynamiteModule(13932): Selected remote version of com.google.android.gms.vision.dynamite, version >= 1800 V/DynamiteModule(13932): Dynamite loader version >= 2, using loadModule2NoCrashUtils W/zygote64(13932): Skipping duplicate class check due to unrecognized classloader I/Vision  (13932): Loading library libmobile_vision_face.so I/pittpatt(13932): wrapper.cc:442] JNI_OnLoad successful I/Vision  (13932): libmobile_vision_face.so library load status: true I/flutter (13932): empty!!!!!

Any update on this? This is delaying my application.

@rlee1990 I had the same issue, taking a picture sideways seem to make it detect faces. So It could be because of the orientation of your image.

@mazzonem how would I rotate the image after its taken. There is currently an issue with the camera plugin with landscape.

This is now working after the version update.

@rlee1990
This issue has been moved to https://github.com/FirebaseExtended/flutterfire/issues/612. Any further collaboration will be done there.


Add epsilon to point on plain side calculation

Adds epsilon value when calculating Plane.getSide(point).  This is useful when floating point precision makes it near impossible to correctly identify when a point is on the plain.   For example, binary space partition tree calculation.

Looks good, thanks.


Add Shadcn UI configuration

Add shadcn ui configuration
Add usefull components like input, button, dropdown, modal, tooltip, toast (use sonner) and more...
For installation refer : https://ui.shadcn.com/docs/installation

working on this rn


Menu width increasing while toggling disabled command

ContextMenu width is increasing when the toggle option is clicked.
Source:http://medialize.github.io/jQuery-contextMenu/demo/disabled-changing.html
Try clicking on the toggle option again and again to see increase in menu width.

Yes, I also noticed this.
Is there any way of fixing this?

I was able to fix this here: https://github.com/medialize/jQuery-contextMenu/pull/262

Fixed, thanks for pointing in the right direction dgc2002


[usd] build failure on Linux

Host Environment

OS: Ubuntu 20.04
Compiler: gcc 9.3.0

To Reproduce
./vcpkg --triplet x64-linux install usd
Failure logs
/home/sh/dev/vcpkg/buildtrees/usd/src/2cd10d91c8-6bd873f966/pxr/usd/ar/packageUtils.cpp:202:41: error: ‘find_if’ is not a member of ‘std’; did you mean ‘find’?
202 |         auto innermostCloseRevIt = std::find_if(
Additional context
#include <algorithm> seems to be missing somewhere

Hi @shauser67
Thanks for posting this issue.
I will try to fix this later.


not working

i could not get to work with angular 1.2.18. I noticed that i description it says no dependencies yet there is a module called 'pasvaz.bindonce' included

Thanks for opening the issue. We're sorry to say that we've stopped maintaining this project in favor of angular-mighty-datepicker. We encourage you to check it out instead.


make stylus-loader official

Feature to document
Need to add style-loader as official loader https://github.com/webpack-contrib/stylus-loader
Author(s)
Any
Additional information
No
[ ] I am willing to work on this issue and submit a pull request.

wip


Adding BrokerProperties when sending message to queue or topic

Following this documentation : https://learn.microsoft.com/en-us/rest/api/servicebus/message-headers-and-properties#message-headers
I would like the possibility to set an ScheduledEnqueueTimeUtc (other option could be added in the future)
I updated the existing send_message method, making to modification a breaking change. Do you think it's ok like this ?
Should I create a new method for sending messages with options set ?
Thanks

Thank you for making the requested changes!


Add additional My Projects tests

Are changes other than the test necessary?

Yes, I added the Request Change button to the project information page and hide the Edit App button for users who aren't coaches.


added experimental tag

#16
Adding the template to the module_main.tf template
Added it as static since its not changing and is more clean for a new developer to look

Codecov Report

Merging #17 (563e33d) into main (31e5fe0) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #17   +/-   ##
=======================================
  Coverage   88.65%   88.65%
=======================================
  Files           1        1
  Lines          97       97
=======================================
  Hits           86       86
  Misses          9        9
  Partials        2        2

Flag
Coverage Δ

unittests
88.65% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


How can I structure  prompt temple for RetrievalQAWithSourcesChain with ChatOpenAI model

Hello, I and deploying RetrievalQAWithSourcesChain with ChatOpenAI model right now.
Unlike OpenAI model, you can provide system message for the model which is a great complement.
But I tried many times, it seems the prompt can not be insert into the chain.
Please suggest what should I do to my code:
#Prompt Construction
template="""You play as {user_name}'s assistant,your name is {name},personality is {personality},duty is {duty}"""
system_message_prompt = SystemMessagePromptTemplate.from_template(template)

human_template="""
Context: {context}
Question: {question}
please indicate if you are not sure about answer. Do NOT Makeup.
MUST answer in {language}."""
human_message_prompt = HumanMessagePromptTemplate.from_template(human_template)

chat_prompt = ChatPromptTemplate.from_messages([system_message_prompt, human_message_prompt])
ChatPromptTemplate.input_variables=["context", "question","name","personality","user_name","duty","language"]

#define the chain
chain = RetrievalQAWithSourcesChain.from_chain_type(llm=llm,
                                                    combine_documents_chain=qa_chain,
                                                    chain_type="stuff",
                                                    retriever=compression_retriever,
                                                    chain_type_kwargs = {"prompt": chat_prompt}
                                                    )

I am not really sure what the goal is? RetrievalQAWithSourcesChain is a specialized chain that doesn't really work well in a conversational setting standalone.
Imho the right approach is to use a Chat Conversation Agent as I´ve just described here:
https://github.com/hwchase17/langchain/issues/3523#issuecomment-1523936882

I am not really sure what the goal is? RetrievalQAWithSourcesChain is a specialized chain that doesn't really work well in a conversational setting standalone.
Imho the right approach is to use a Chat Conversation Agent as I´ve just described here:
#3523 (comment)
There you can easily modify the System prompt an input variables as desired and the Agent will use all this when doing QA with sources:
https://github.com/hwchase17/langchain/blob/85dae78548ed0c11db06e9154c7eb4236a1ee246/langchain/agents/conversational_chat/base.py#L59
EDIT: There is also a conversational version of the chain, but as far as I see that doesn't leverage chat prompt templates as well and imho the solution mentioned above will work better for your use case: https://python.langchain.com/en/latest/modules/chains/index_examples/chat_vector_db.html#conversationalretrievalchain-with-question-answering-with-sources

thanks, I will try the agent approach. Checked the document you send, this should be the right way.


add custom squeeze encode option (just for testing atm)

Currently the encoder always uses the default squeeze parameters.
This adds an encode option (only in cparams, not exposed in cjxl or api) to use custom squeeze parameters instead.
At the moment, it just does some random fixed custom squeeze, just for testing (improving code coverage a bit, checking that things roundtrip also with custom params). Perhaps at some point alternatives to the default squeeze params can be explored, e.g. to achieve better trade-offs between density and progressiveness.

Changed the cparam to a param vector and moved the test to modular_test.cc.


show all clusters of maxClusterRadius without zooming in ?

Hi,
Sorry, for urgent help I am posting it in issue.
How to show all clusters of maxClusterRadius without zooming in ?
I would like to view all 3 clusters having maxClusterRadius to be shown on map without zooming in.
Please help me.
Map before zooming in shows one cluster with 12 markers as below

Map after zooming in show 3 clusters having 7, 3 and 2 markers respectively

Thanks,
Kiran.

Hi, great to hear that you find Leaflet useful!
However, this issue tracker is used for reporting bugs and discussing new features. For questions on using Leaflet, please use gis.stackexchange.com or stackoverflow.


Link to pajbot/pajbot1-doc in the repository/readme

Maybe delete the old wiki pages and beautify pb1doc a bit?

readme has been updated to link to the pajbot1-doc repo
all applicable wiki pages now also point to the pajbot1-doc repo


KiloLimaFoxtrot Cleaned Up Point Class

Cleaned up the Point Class by implementing an inverse method that serves as a reference to translate from SGF to Point. Minimized and condensed code lines, and removed relics from old code. The Point Test error substring is possibly incomplete, need clarification on that functionality. Code from our new Italian friend ilmanzo remains. Also created nested return blocks in translation methods to reverse and correct the error check logic path.
Fixes: https://github.com/otrego/clamshell/issues/93

Added a point test error sub-string initial structure. Placed a slot for an error sub-string in the test structs, and one commented out error test case. Will need some additional clarification to complete the error sub-string.

fixes: https://github.com/otrego/clamshell/issues/93

This is pretty old, so I'm going to close. Feel free to re-initiate pull request with update path.


Feature/pytorch export

This PR introduces the current pytorch exporting functions.

It creates pytorch exporters that handle classifiers and taggers
It creates a Torchscript viterbi decoder to use for tagger
It moves common exporting functions into mead.utils
It creates sub files for dy and keras exporting so that the exporters can be loaded by the mead tasks backend object the same way the embeddings are
It creates example c++ pytorch files that can read from the exported bundle and perform inference with that model on command line input
It removes things that would try to trigger a multigpu create when exporting
It updates pytorch loading to give an optional device argument. This lets use reload a model that was saved on gpu on the cpu.
It converts the length argument to pack_padded_sequence from a list to a tensor (needed for exporting)
It updates pytorch models to also save out their labels when saving (needed for remote models)
It refactors remote models into baseclasses that are separated by transport protocol and moves backend specific implementations into baseline.backend.remote. It introduces the registry idea used elsewhere to create the specific remote models.
It adds an http server preproc remote model for tensorflow

Please resolve conflicts and Ill merge


AnimationTreePlayer OneShot node mode selection area too small and un-aligned

Godot version:

3.1.dev.custom_build.eaa5dfb, also 3.0 stable
OS/device including version:

Arch Linux, but happens on other OSs as well AFAIK.
Issue description:

When using a Oneshot node in the the AnimationTreePlayer, a mode can be selected that determines wheter or not two animations will blend together or mix "additively". The selection of those modes is difficult as the trigger area for the options is a lot smaller and also slightly displaced.
(sorry for the large GIF, I don't know how to "scissor" the video properly before converting to GIF, click to see it in full size)

Related to #17519
Steps to reproduce:
In an AnimationTreePlayer while using an Oneshot node try to select one of the modes, notice how it's almost impossible to select "Blend" and pretty hard to select "Mix".
Also the rest of that popup looks kinda off as well.
Minimal reproduction project:

AnimationTreePlayer is deprecated in Godot 3.1 and will be removed in Godot 3.2. It is replaced by AnimationTree, which was written from scratch and likely fixes/deprecates this issue.
If the issue is still relevant in some form with AnimationTree in Godot 3.1, please open a new issue about it (potentially linking this one if there is relevant discussion to keep track of).


Updated JSDoc for media query

What does this PR do?

Updates the JSDoc example to match the new breakpoints

Description of Task to be completed?

This is an update to #15

How should this be manually tested?

Check that properties of the Breakpoints in src/constants/Breakpoints.js are consistent with JSDoc @example in src/styles/utils.js(md, lg) instead of using devices(laptop, tablet).

What are the relevant Trello Card stories?

 Trello Card Item

Pull Request Type (check one)

[ ] Feature
[ ] Bug Fixes
[x] Chore

Developer Checklist

[x] New code has been scanned for eslint issues
[x] I have tested my code locally
[x] I made sure that there are no other pull requests that solve for this issue
[x] My code follows the same structure within the guildlines

Screenshots (if appropriate)

@Easybuoy Kindly check this.


Shiny, basic map doesn't update with only changing data files

Describe the bug
In the Shiny app if change the data files the map doesn't change.
To Reproduce
See above
Expected behavior
Each data file should trigger an update to the map.
Screenshots
NA
Additional context
Code was set to filter only on changing map Layer.
Add trigger for filtering on all user selection boxes.
Advanced maps not affected.

When completed update to next version number (from 1.2.5 to 1.2.6 or 1.3) since "fixing" an issue.

Changes in server.R.


Add LICENSE and SUPPORT docs

@jputrino
What issues does this address?
Fixes #3
What's this change do?
Adds standard projects docs, including LICENSE, SUPPORT, README, and git commit template.
Where should the reviewer start?
Review docs to ensure they are the correct ones.
Any background context?
Standard docs used in all F5 OpenStack projects.

PR can be merged once the minor text edit is made. @jlongstaf, let me know if you'd like me to take care of it.


how to change view angle?

Is it possible to change the view angle? By default its 360 degreeds, but my lidar has only 120 degreeds

In theory, this should be possible. You could modify the content of lidar after this line and eliminate all points outside the 120 deg field of view during training.


Document the ability to run multiple instances simultaneously

What do you want
I'd like to logically separate my keybindings, based on what they are associated with.
I wasn't aware that I could run multiple instances of dxhd to use multiple configs at the same time, until I tried it.
Why
Documentation is good, and this is a great feature.
Implementation hints
Maybe put it in the README, and/or a wiki page.

:+1: good one. Never thought of mentioning it actually. I'll document it in the readme.


How do I link my program in Debug with Release packages?

I would like to link my program in Debug configuration with Release version of vcpkg packages. Is it possible? In particular in

Visual Studio
Linux/Cmake

If yes, please suggest how.

Hmm. so you should manually find the libraries because we always provide the suitable configuration.

Yes, it would be nice to get an answer.

For Visual Studio, there is no way to solve your question.
For cmake, you should implement find_library manually.
I don't know why you need to do this.

@JackBoosY On Linux systems, it is fairly common to build projects in debug mode but link to release versions of 3rd-party components (unless you really want to debug into a particular component). That's probably the reason why it is soooooooo alien to vcpkg newbies that it builds both release and debug variants, significantly increasing build time and disk space. I would even say it is a barrier to wider adoption of vcpkg.

@ras0219 @ras0219-msft what do you think about this?

Agree with @dg0yt . This was the primary reason of asking this question for Linux.
On Windows one can try this way:

But it is necessary to override macro _ITERATOR_DEBUG_LEVEL=0 and still one can get errors from static library linking:
1>cpr.lib(cprtypes.cpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug'
1>gdcmDSED.lib(gdcmMediaStorage.cxx.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug'

We hope your question was answered to your satisfaction; if it wasn't, you can reopen with more info.


conda installed libreadline fails R to start

Currently, rpy2 requires libreadline.so.6 package, which is also provided by conda (https://github.com/conda-forge/rpy2-feedstock/blob/master/recipe/meta.yaml#L43).
But after install rpy2, R will not start due to /opt/conda/lib/R/bin/exec/R: symbol lookup error: /opt/conda/lib/R/bin/exec/../../lib/../../libreadline.so.6: undefined symbol: PC.
This bug is also mentioned in these issues:

https://github.com/IRkernel/IRkernel/issues/204
https://github.com/ContinuumIO/anaconda-issues/issues/152

Although other users provide some workarounds, e.g.:cp -p /lib/x86_64-linux-gnu/libreadline.so.6 $CONDA_DIR/lib/libreadline.so.6, but why is conda's readline different from the system's default libreadline.so.6 ? Or maybe conda should allow users to use their libreadline.so.6 if it already exists in system's lib directory instead of install one in $CONDA_DIR/lib ?
Environment:
Current conda install:

               platform : linux-64
          conda version : 4.3.21
       conda is private : False
      conda-env version : 4.3.21
    conda-build version : not installed
         python version : 3.6.1.final.0
       requests version : 2.18.1
       root environment : /opt/conda  (writable)
    default environment : /opt/conda
       envs directories : /opt/conda/envs
                          /root/.conda/envs
          package cache : /opt/conda/pkgs
                          /root/.conda/pkgs
           channel URLs : https://repo.continuum.io/pkgs/free/linux-64
                          https://repo.continuum.io/pkgs/free/noarch
                          https://repo.continuum.io/pkgs/r/linux-64
                          https://repo.continuum.io/pkgs/r/noarch
                          https://repo.continuum.io/pkgs/pro/linux-64
                          https://repo.continuum.io/pkgs/pro/noarch
                          https://conda.anaconda.org/conda-forge/linux-64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://conda.anaconda.org/r/linux-64
                          https://conda.anaconda.org/r/noarch
            config file : /root/.condarc
             netrc file : None
           offline mode : False
             user-agent : conda/4.3.21 requests/2.18.1 CPython/3.6.1 Linux/4.4.0-77-generic debian/stretch/sid glibc/2.23
                UID:GID : 0:0

https://github.com/ContinuumIO/anaconda-recipes/issues/56
https://github.com/ContinuumIO/anaconda-recipes/pull/60
Good luck.

conda install readline from conda-forge worked for me.

conda install -c conda-forge readline=6.2

conda install -c conda-forge readline=6.2
Didn't work for me.  As 6.2 was already installed.
conda upgrade -c conda-forge readline
upgraded readline to 7.0 for the win!


Make StrMap.size return an integer instead of a float

This is a breaking change.

Seems sensible. I guess we don't need to worry about StrMaps with more than 2^31 keys?

I think we don't. Likewise we don't worry about arrays with 2^31 elements.


feat: BitString set API

What this PR changes/adds
adds the method BitString#set for changing the underlying bitstring + writer
Why it does that
testability

Codecov Report
Attention: Patch coverage is 94.87179% with 2 lines in your changes are missing coverage. Please review.

Project coverage is 74.76%. Comparing base (7f20ba5) to head (b94cf9e).
Report is 214 commits behind head on main.

Files
Patch %
Lines

...blecredentials/spi/model/statuslist/BitString.java
94.87%
2 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4112      +/-   ##
==========================================
+ Coverage   71.74%   74.76%   +3.02%
==========================================
  Files         919      982      +63
  Lines       18457    20179    +1722
  Branches     1037     1137     +100
==========================================
+ Hits        13242    15087    +1845
+ Misses       4756     4597     -159
- Partials      459      495      +36

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


⚠ Ruby Warnings

This PR eliminates several Ruby warnings.
require 'raven'  has been removed here and there in order to fix the circular require warning, which is totally safe because require 'raven' has to be already performed by bundler => lib/sentry-raven.rb.

Thank you so much @amatsuda!

:beers:


unable to use IAP tunnel to GKE hosted cloud-proxy

Running cloud-proxy in a GKE private cluster, which is exposed through a nodePort.  When attempting to create an IAP tunnel from my local machine to the nodePort pointing to the port for cloud-proxy, the IAP tunnel does not seem able to connect to the cloud-proxy entry-point.
I have verified that if I use a kubectl port forward to the exposed service that connectivity is available to the DB.  Have also verified that a tcpecho app running on the same GKE node can be connected too through an IAP tunnel.

Sorry I'm not of more help, but I'm totally unfamiliar with the IAP tunnel for GKE (and this question is pretty unrelated to the proxy itself, so I'm going to mark as closed.)
It might be worth pointing out that there really isn't any advantage to using an IAP tunnel on top of the Cloud SQL proxy - the proxy only provides IAM authentication (so special connection paths), so it's somewhat redundant to stack them.


#64: Fixing sequentially-descending order of heading elements

Closes #64

📝Changed routes:

/cookies

(view full size)

Commit d9fb932a53c68e0cd01a0b93cae52d454b9c75d0 (https://next-project-setup-6asqo97yz-josbroers.vercel.app).


[Design] Provide a hook to add custom labels to log entries

Initial design for #1937.
The idea is to provide a hook (ILogEntryLabelProvider) to augment labels of log entries being logged. These providers are resolved using the container available in IHttpContextAccessor.
What are your thoughts @iantalarico @jskeet?

I signed it!

@henkmollema Thanks for the PR :-)  I left comments in #1937

I'll keep this closed until #1948 is sorted out.


Update README

Include Gradle snippet + links to download latest artifact and
Sonatype SNAPSHOT repo
/cc @hallucinogen @wangmengyan95 @nlutsenko


Jina2 Async - Error when loop is already running

Expected Behavior
When rendering a template when running on an existing loop, Jinja2 should render the template asynchronously. It should use the existing, running event loop.
Actual Behavior
Jinja2 tries to start the event loop anyway, it doesn't seem to check wether the event loop is already running: (asyncsupport.py line 77)
loop = asyncio.get_event_loop()
return loop.run_until_complete(self.render_async(*args, **kwargs))

Im not sure if this is because I'm running on uvloop, I will double check with the normal asyncio event loop soon.
Could we just check if the loop is already running?
Full Traceback
2017-03-25 22:37:09,051: INFO: Goin' Fast @ http://<IP_ADDRESS>:8000
2017-03-25 22:37:09,056: INFO: Starting worker [2159]
2017-03-25 22:37:12,085: ERROR: Traceback (most recent call last):
  File "/Users/tom/.virtualenvs/async_personal/lib/python3.6/site-packages/sanic/app.py", line 391, in handle_request
    response = await response
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/asyncio/coroutines.py", line 109, in __next__
    return self.gen.send(None)
  File "/Users/tom/python/async_personal/personal/home/views.py", line 14, in home
    rendered_template = await home_template.render()
  File "/Users/tom/.virtualenvs/async_personal/lib/python3.6/site-packages/jinja2/asyncsupport.py", line 78, in render
    return loop.run_until_complete(self.render_async(*args, **kwargs))
  File "uvloop/loop.pyx", line 1198, in uvloop.loop.Loop.run_until_complete (uvloop/loop.c:25480)
  File "uvloop/loop.pyx", line 1191, in uvloop.loop.Loop.run_until_complete (uvloop/loop.c:25324)
  File "uvloop/loop.pyx", line 1100, in uvloop.loop.Loop.run_forever (uvloop/loop.c:24056)
  File "uvloop/loop.pyx", line 355, in uvloop.loop.Loop._run (uvloop/loop.c:11384)
RuntimeError: this event loop is already running.

For convenience I printed the loop object and got: <uvloop.Loop running=True closed=False debug=True>
Your Environment

Python version: 3.6 MacOS with the UVLoop event loop
Jinja version: 2.9.5

Does using render_async() directly do what you want? I think render is always supposed to be sync.

It does, I feel silly now.
To avoid this in future could the render_async method be added to the documentation under Async Support?
Its not immediately obvious you need to call a different method.


support format cast on ascend

Thanks for your contribution and we appreciate it a lot. The following instructions would make your pull request more healthy and more easily get feedback. If you do not understand some items, don't worry, just make the pull request and seek help from maintainers.
Motivation and Context
Support tensor  convert memory format on ascend.
Description

Extents diopiMemoryFormat

Add format_cast api

Use cases (Optional)

diopiFormatCast(tensor, diopiMemoryFormat)
BC-breaking (Optional)

Checklist
Before PR:

[ ] I have read and followed the workflow indicated in the Contributors.md to create this PR.
[ ] Pre-commit or linting tools indicated in Contributors.md are used to fix the potential lint issues.
[ ] Bug fixes are covered by unit tests, the case that causes the bug should be added in the unit tests.
[ ] New functionalities are covered by complete unit tests. If not, please add more unit test to ensure the correctness.
[ ] The documentation has been modified accordingly, including docstring or example tutorials.

After PR:

[ ] CLA has been signed and all committers have signed the CLA in this PR.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

我先revert掉，等dipu和diopi都就绪后，再合并。


[BUG] Disable or make optional MSVC tests

MSVC is broken after update and we don't fix it. We should disable it.

https://github.com/jfalcou/eve/pull/1621


Add x

What would you say it's special about this plug-in? Why should I add it to this list?

So first I'm sorry for open a new pr without clear explaination.
The plugin I added is basically a port of extract plugin in oh my zsh,tho this port is still very naive,still WIP but it can work.

What would you say it's special about this plug-in? Why should I add it to this list?

I developed this just because I need it,so I suppose that someone else will need it as well.And then I wanna post it here.

Good job on porting the plugin and thank you for your PR. Unfortunately, I can't accept this request right now.
Currently, your plugin lacks a nice README, documentation, and tests. I see no PRs or issues raised yet. No stars or forks either. Perhaps nobody knows about it yet. A great place to present your Fish projects is the /r/fishshell subreddit.
Another excellent way to share your project with the community is via GitHub topics, e.g.: #fish-plugin.


Error

Error message displays when login.
Message : Check your mobile number
Installed python to PATH : python 3.11
( I think heroku applications are not working. Try posting them on different service )

The error msg you are referring to indicates that you are entering your mobile number in a non-international format. You can fix this by replacing the leading 0 of your mobile number with +94 (ex: 077123456 → +9477123456). This will fix the error, but as this repo has not been maintained for a long time, the program may not be as it should be 🙂


edge-raw-image with custom partition mount points does not boot after upgrade

We have been testing locally RHEL 9: Filesystem customizations for edge-raw-image #255 RHEL-9.4
osbuild-104-1.20240108gitc62e555.el9.noarch
osbuild-composer-98-1.20240108git0169b7b.el9.x86_64
weldr-client-35.9-1.el9.x86_64
With blueprint:
[[customizations.filesystem]]
mountpoint = "/foo/bar"
size=2147483648

[[customizations.filesystem]]
mountpoint = "/foo"
size=8589934592

[[customizations.filesystem]]
mountpoint = "/var/myfiles"
size= "1 GiB"

After booting the image both in BIOS and UEFI mode, we see the corresponding logical volumes created.
changed: [<IP_ADDRESS>] => {"changed": true, "cmd": ["df", "-h"], "delta": "0:00:00.010319", "end": "2024-01-05 07:41:20.280108", "msg": "", "rc": 0, "start": "2024-01-05 07:41:20.269789", "stderr": "", "stderr_lines": [], "stdout": "Filesystem                        Size  Used Avail Use% Mounted on
devtmpfs                          4.0M     0  4.0M   0% /dev
tmpfs                             1.5G     0  1.5G   0% /dev/shm
tmpfs                             578M  936K  577M   1% /run
/dev/mapper/rootvg-rootlv         9.0G  1.7G  7.3G  19% /sysroot
/dev/mapper/rootvg-foolv          8.0G   89M  7.9G   2% /foo
/dev/mapper/rootvg-var_myfileslv  960M   39M  922M   5% /var/myfiles
/dev/mapper/rootvg-foo_barlv      2.0G   47M  1.9G   3% /foo/bar
/dev/vda3                         320M  126M  195M  40% /boot
/dev/vda2                         127M  7.0M  120M   6% /boot/efi
tmpfs                             289M     0  289M   0% /run/user/1000"

Nevertheless, the system is not able to boot the deployment ostree:0 after upgrade.

BdsDxe: loading Boot0002 "redhat" from HD(2,GPT,68B2905B-DF3E-4FB3-80FA-49D1E773AA33,0x1000,0x3F800)/\EFI\redhat\shimx64.efi
BdsDxe: starting Boot0002 "redhat" from HD(2,GPT,68B2905B-DF3E-4FB3-80FA-49D1E773AA33,0x1000,0x3F800)/\EFI\redhat\shimx64.efi

                               GRUB version 2.06

 ┌────────────────────────────────────────────────────────────────────────────┐
 │*Red Hat Enterprise Linux 9.4 Beta (Plow) (ostree:0)                        │
 │ Red Hat Enterprise Linux 9.4 Beta (Plow) (ostree:1)                        │
 │                                                                            │

[2024-01-05T07:53:10-05:00] 🗳 Upgrade ostree image/commit
+ sudo ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectTimeout=5 -i /tmp/tmp.ANADTsJY96/id_rsa<EMAIL_ADDRESS>'echo '\''foobar'\'' |sudo -S rpm-ostree upgrade'
Warning: Permanently added '<IP_ADDRESS>' (ED25519) to the list of known hosts.
[sudo] password for admin: 1 delta parts, 3 loose fetched; 21197 KiB transferred in 1 seconds; 79.9 MB content written
Staging deployment...done
Added:
  wget-1.21.1-7.el9.x86_64
Run "systemctl reboot" to start a reboot
+ sudo ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectTimeout=5 -i /tmp/tmp.ANADTsJY96/id_rsa<EMAIL_ADDRESS>'echo '\''foobar'\'' |nohup sudo -S systemctl reboot &>/dev/null & exit'
Warning: Permanently added '<IP_ADDRESS>' (ED25519) to the list of known hosts.
+ sleep 10
+ greenprint '🛃 Checking for SSH is ready to go'
++ date -Isecond
+ echo -e '\033[1;32m[2024-01-05T07:53:34-05:00] 🛃 Checking for SSH is ready to go\033[0m'
[2024-01-05T07:53:34-05:00] 🛃 Checking for SSH is ready to go
++ seq 0 30
+ for _ in $(seq 0 30)
++ wait_for_ssh_up <IP_ADDRESS>
+++ sudo ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectTimeout=5 -i /tmp/tmp.ANADTsJY96/id_rsa<EMAIL_ADDRESS>'/bin/bash -c "echo -n READY"'
ssh: connect to host <IP_ADDRESS> port 22: Connection timed out
++ SSH_STATUS=
++ [[ '' == READY ]]
++ echo 0
+ RESULTS=0
+ [[ 0 == 1 ]]
+ sleep 10
+ for _ in $(seq 0 30)
++ wait_for_ssh_up <IP_ADDRESS>
+++ sudo ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectTimeout=5 -i /tmp/tmp.ANADTsJY96/id_rsa<EMAIL_ADDRESS>'/bin/bash -c "echo -n READY"'
ssh: connect to host <IP_ADDRESS> port 22: Connection timed out

On the other hand, system deployment ostree:1 is able to boot with no problem, as a matter of fact is possible to see the custom lvs.
[admin@mcattamo-rhel-9-4-240105 cases]$ sudo ssh -i /tmp/tmp.ANADTsJY96/id_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null<EMAIL_ADDRESS>Warning: Permanently added '<IP_ADDRESS>' (ED25519) to the list of known hosts.
Script '01_update_platforms_check.sh' FAILURE (exit code '1'). Continuing...
Boot Status is GREEN - Health Check SUCCESS
Last login: Fri Jan  5 07:43:39 2024 from <IP_ADDRESS>
[admin@vm-uefi ~]$ lsblk
NAME                                          MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINTS
vda                                           252:0    0 20.5G  0 disk
├─vda1                                        252:1    0    1M  0 part
├─vda2                                        252:2    0  127M  0 part  /boot/efi
├─vda3                                        252:3    0  384M  0 part  /boot
└─vda4                                        252:4    0   20G  0 part
  └─luks-608f702f-1e37-409f-bdd0-6f67b0e8b6e6 253:0    0   20G  0 crypt
    ├─rootvg-rootlv                           253:1    0    9G  0 lvm   /var
    │                                                                   /sysroot/ostree/deploy/redhat/var
    │                                                                   /usr
    │                                                                   /etc
    │                                                                   /
    │                                                                   /sysroot
    ├─rootvg-foo_barlv                        253:2    0    2G  0 lvm   /foo/bar
    ├─rootvg-foolv                            253:3    0    8G  0 lvm   /foo
    └─rootvg-var_myfileslv                    253:4    0    1G  0 lvm   /var/myfiles

Due to virsh console not showing any useful output, it has been difficult to track the root cause of the issue.
May you please help to check this issue when you have time?

cc: @say-paul @runcom @7flying

@mcattamoredhat what upgrade is done that caused the new deployment(ostree: 0)?

seems the custom lvm : /foo and /foo/bar failed to mount.
Jan 09 07:54:40 localhost systemd[1]: Reached target Preparation for Local File Systems.
Jan 09 07:54:40 localhost systemd[1]: foo.mount: Failed to check directory /foo: No such file or directory
Jan 09 07:54:40 localhost systemd[1]: Mounting /foo...
Jan 09 07:54:40 localhost systemd[1]: var.mount: Directory /var to mount over is not empty, mounting anyway.
Jan 09 07:54:40 localhost systemd[1]: Mounting /var...
Jan 09 07:54:40 localhost mount[734]: mount: /foo: mount point does not exist.
Jan 09 07:54:40 localhost systemd[1]: Starting Rule-based Manager for Device Events and Files...
Jan 09 07:54:40 localhost systemd[1]: foo.mount: Mount process exited, code=exited, status=32/n/a
Jan 09 07:54:40 localhost systemd[1]: foo.mount: Failed with result 'exit-code'.
Jan 09 07:54:40 localhost systemd[1]: Failed to mount /foo.
Jan 09 07:54:40 localhost systemd[1]: Dependency failed for /foo/bar.
Jan 09 07:54:40 localhost systemd[1]: Dependency failed for Local File Systems.
Jan 09 07:54:40 localhost systemd[1]: Dependency failed for Mark the need to relabel after reboot.
Jan 09 07:54:40 localhost systemd[1]: selinux-autorelabel-mark.service: Job selinux-autorelabel-mark.service/start failed with result 'dependency'.
Jan 09 07:54:40 localhost systemd[1]: local-fs.target: Job local-fs.target/start failed with result 'dependency'.
Jan 09 07:54:40 localhost systemd[1]: local-fs.target: Triggering OnFailure= dependencies.
Jan 09 07:54:40 localhost systemd[1]: foo-bar.mount: Job foo-bar.mount/start failed with result 'dependency'.

The workaround  mentioned in 337 works ,
Adding the following customization to upgrade blueprint.
[[customizations.files]]
path = "/etc/systemd/system/remount-lvm.service"
data = "[Unit]\nDescription=remount lvm\nDefaultDependencies=no\n[Service]\nType=oneshot\nRemainAfterExit=yes\nExecStartPre=chattr -i /\nExecStart=mkdir -p /foo/bar\nExecStopPost=chattr +i /\n[Install]\nWantedBy=remote-fs.target\n"

[customizations.services]
enabled = ["remount-lvm.service"]

It needs to be embedded inside osbuild to ensure lvs are mounted correctly

The workaround mentioned in 337 works , Adding the following customization to upgrade blueprint.
[[customizations.files]]
path = "/etc/systemd/system/remount-lvm.service"
data = "[Unit]\nDescription=remount lvm\nDefaultDependencies=no\n[Service]\nType=oneshot\nRemainAfterExit=yes\nExecStartPre=chattr -i /\nExecStart=mkdir -p /foo/bar\nExecStopPost=chattr +i /\n[Install]\nWantedBy=remote-fs.target\n"

[customizations.services]
enabled = ["remount-lvm.service"]

It needs to be embedded inside osbuild to ensure lvs are mounted correctly

I wonder if we should add it transparently ourselves when filesystem customizations are needed so that the user doesn't need to remember that the service is needed.

I bet what's going on here is the osbuild pipeline is only making these directories on top of the deployed disk image (i.e. equivalent of anaconda %post - and actually because we're not using https://github.com/ostreedev/ostree/pull/3094 I bet we're losing the immutable bit on the deployment root / which would have otherwise stopped this incorrect behavior.
The osbuild pipelines need to change to create this directory as part of the ostree commit instead.

okay,  We have enabled filesystem customization for deployments(raw.image, iso) only. Image builder actually consumes the base-commit(which does not have any data about lvm )  to build the deployments with the lvm data.
So, if obuild: edge-commit and edge-container works the way @cgwalters  suggested. Then it would be a matter of enabling fs.customization for commits also.  cc @achilleas-k
The caveat to that is: it will not provide integrity of having same base image for various applications requiring various lvm.Also I suspect it will bring complexity in-terms , deployment and upgrade.
@nullr0ute @runcom @7flying

okay, We have enabled filesystem customization for deployments(raw.image, iso) only. Image builder actually consumes the base-commit(which does not have any data about lvm ) to build the deployments with the lvm data.

If I understand this problem correctly this is about creating the mount points in the filesystem for custom mounts (eg /data)?

@nullr0ute it fails on upgrade, as dirs gets deleted, needs to be created explicitly to mount the volume, else system does not boot and plunges into emergency shell.

So based on the :+1: whether it's a LVM partition (or NFS or some other storage) is irrelevant here. The user has to know where they want to mount things and the mount point should be created as part of the ostree stage as not as part of raw/iso etc. otherwise as @cgwalters says it's going to be a problem.
How we fix that I don't know, maybe we need to interpret the blueprint for both stages, maybe we need a "custom mount points" blueprint to ensure the directories are created (including the correct permissions).
Any other solution, such as custom systemd services are just working around the problem and will no doubt cause other issues.

So there are two things that's biting me:

Will the deployment(raw,iso) blueprint need the file-system customization again if that's already is applied in the base-commit itself
Does the file-system customization in upgrade commit needs to match that of base commit.

I guess it can be tested out but if @achilleas-k or @cgwalters  you are already aware of the process, please share your thoughts.

So there are two things that's biting me:

Will the deployment(raw,iso) blueprint need the file-system customization again if that's already applied in the base-commit itself
I wouldn't think so in this case.
Does the file-system customization in upgrade commit needs to match that of base commit.
That is a good question

I guess it can be tested out but if @achilleas-k or @cgwalters you are already aware of the process, please share your thoughts.

Either way, we need to test this to decide how we are going to tackle the rest.

So I tested it  by bypassing the fs.customization not allowed part  for commit and container. but didn't workout with initial deployment nor with upgrade commit.
There's few more things that I need to test by tweaking the filesystem creation to see if I can make it work.

I bet what's going on here is the osbuild pipeline is only making these directories on top of the deployed disk image (i.e. equivalent of anaconda %post - and actually because we're not using https://github.com/ostreedev/ostree/pull/3094 I bet we're losing the immutable bit on the deployment root / which would have otherwise stopped this incorrect behavior.

Even we apply them to a  commit pipelines, I am bit unsure if it would be of much use and user may want different  mount-points from same base commit.

How we fix that I don't know, maybe we need to interpret the blueprint for both stages, maybe we need a "custom mount points" blueprint to ensure the directories are created (including the correct permissions).

Its wont be possible to sync both the stages which will render system unbootable,
Solution can be:
Modifying into osbuild deployment pipeline: layering fs.customization as new commit then building raw/iso. Can work.. :thinking:

So I tested it by bypassing the fs.customization not allowed part for commit and container. but didn't workout with initial deployment nor with upgrade commit.

Overriding the customization checker to pass these through doesn't help because the customizations have no effect on ostree commits.  IB doesn't do anything with that customization when it's building a commit.
Which brings me to

Then it would be a matter of enabling fs.customization for commits also. cc @achilleas-k

What would that do?  Is it just a matter of creating the directories?  The user would have to know that they will have to add the partitions/mountpoints to the image blueprint as well, so we'd have to document this at least.  Also the same fs customizations would have to be added to any upgrade blueprints for the same reason.  Not an issue, just making sure I understand all the implications.

Does running post-copy on the initial deployment solve the issue?

This means that we'd still have the problem that we allow uncontrolled mutation of the toplevel filesystem root for disk images.

Do we want to disallow this?  Adding partitions and mountpoints to the root of ostree-based disk images was enabled somewhat recently as a feature requirement for edge.  If this is in conflict with ostree's rules, or if it "more correct" to move that configuration to the commit/container and block filesystem customizations on disk builds, then we should do that.
My main question is: What does a filesystem customization look like when applied to a commit?  Is it just about creating directories?  We've talked about some form of metadata describing a partition table for containers, but afaik there's nothing like that for the base ostree case that we're using now for R4E and Fedora IoT.

Do we want to disallow this? Adding partitions and mountpoints to the root of ostree-based disk images was enabled somewhat recently as a feature requirement for edge. If this is in conflict with ostree's rules

The rule basically is "the commit should be source of truth", with local state in /etc and /var.
Now except, we just added a giant ability to relax this in https://github.com/ostreedev/ostree/pull/3114 ...but that still has the semantic that content placed there is dropped on upgrades.

or if it's "more correct" to move that configuration to the commit/container and block filesystem customizations on disk builds, then we should do that.

I wouldn't say block all filesystem customizations on disk builds.  Today for example, we (should) support configuring e.g. subdirectories of /var like /var/home just in a disk image, without requiring changes to the commit/image.
A simple way to look at this is for cases like Fedora CoreOS where the commit/image is shipped from upstream, we still allow choose their backing filesystem type and create sub-mounts of /var.
The problem case comes more about toplevel mounts.
I should also clarify that we enabled root.transient in current centos-bootc, which again basically avoids this issue as it allows uncontrolled mutation of / by default, so custom systemd units which mount other devices in a toplevel mount will generally Just Work.
Since this is about toplevel mounts, I'd today disallow them in disk image builds, unless root.transient is enabled.   The subtlety in all this really wants us to use the same technology at build time that we do at upgrade time.  (And aligning the container/runtime state was the rationale behind root.transient).

Does running post-copy on the initial deployment solve the issue?
No,
I talked to alexlarsson regarding this , but it does not  help our cause.

So even  we add a directory in commit it will be lost in the upgrade if the upgrade blueprint doesn't have the same fs/directory customization.
So unless we have a fix for 337  I think we can:
1 . add the above service auto-add in blueprint directly when fs-customization is added. User can be see this  using composer-cli blueprints show blueprint.toml or
2. use something like greenboot to create the directories

So even we add a directory in commit it will be lost in the upgrade if the upgrade blueprint doesn't have the same fs/directory customization.
So unless we have a fix for 337 I think we can: 1 . add the above service auto-add in blueprint directly when fs-customization is added. User can be see this using composer-cli blueprints show blueprint.toml or 2. use something like greenboot to create the directories

I think that we have already internally discussed with the team that greenboot has a defined use case and that it mustn't deviate from that role.

Thoughts regarding option 1?

My main question is: What does a filesystem customization look like when applied to a commit? Is it just about creating directories?

Yes.  Except...there's also the approach of moving the partition creation to firstboot, and injecting logic to do that into the commit.  This is the approach taken by Ignition and [systemd-repart](https://www.freedesktop.org/software/systemd/man/latest/systemd-repart.service.html.   In general I prefer that approach because it keeps the disk image simpler - or stated another way, it more strongly enforces the decoupling of the commit (container image) and disk image.
If there's a way to enforce that the corresponding toplevel directories are exist in the commit when specifying disk customizations, that seems like a decent fix.  In a container flow that's basically just podman run <input> test -d /mntpoint, with ostree commits as input there's ostree ls etc that work on a fetched commit.

but rather detect that the user is requesting filesystem customizations in the deployment blueprint and add the required service file for those to work internally in a transparent way.

The transparent way - I imagine is to magically make it appear in the blueprint show  when user adds the fs customization.
OR can be added to logs  when creating the image- somewhat translucent.

.there's also the approach of moving the partition creation to firstboot,

That's the idea,  to be implement by a unit file that creates the mountpoint.

but rather detect that the user is requesting filesystem customizations in the deployment blueprint and add the required service file for those to work internally in a transparent way.

The transparent way - I imagine is to magically make it appear in the blueprint show when user adds the fs customization. OR can be added to logs when creating the image- somewhat translucent.

No, just adding it internally programatically, if we show a blueprint that is different from what the user has requested that is going to cause problems too. When we see in the blueprint that file customizations are added, we also include the service file internally.

@achilleas-k @ondrejbudai just FYI if you have any inputs/recommendations given the way we build commit/disk in osbuild

So the approach we decided is,
When user adds fs-customization in deployment blueprint, osbuild will add and enable unit file , something like this in background

The workaround mentioned in 337 works , Adding the following customization to upgrade blueprint.
[[customizations.files]]
path = "/etc/systemd/system/remount-lvm.service"
data = "[Unit]\nDescription=remount lvm\nDefaultDependencies=no\n[Service]\nType=oneshot\nRemainAfterExit=yes\nExecStartPre=chattr -i /\nExecStart=mkdir -p /foo/bar\nExecStopPost=chattr +i /\n[Install]\nWantedBy=remote-fs.target\n"

[customizations.services]
enabled = ["remount-lvm.service"]

It needs to be embedded inside osbuild-composer to ensure lvs are mounted correctly

Question is how we enable it,

having an [install] section - can be easily disabled by systemd
remove the [install] section and create a symlink to remote-fs.target.wants/   - seems bit more robust

I would say doing it "properly" (with an install section) is preferable.  I agree, it means it can be disabled and break the system, but it also means it can be disabled the right way if necessary (like if the user decides they don't want/need the partition anymore).  We would have to document this of course but I'd rather it behaved like any other unit.
On the topic of creating the unit itself: I would be in favour of making an osbuild stage for this.  A very specific stage that creates this service file for a set of mountpoints.  But we can do it with file customizations in this repository first, for development, testing, and to get it out quickly, and move it down to osbuild later.

there's also the approach of moving the partition creation to firstboot, and injecting logic to do that into the commit. This is the approach taken by Ignition and systemd-repart. In general I prefer that approach because it keeps the disk image simpler - or stated another way, it more strongly enforces the decoupling of the commit (container image) and disk image.

I think we should do this.  On the composer level it would mean enabling filesystem customizations for ostree commit types.  But we would have to consider what to do with the same customizations for deployment types (disks).  Do we keep them?  Do we handle conflicts?  Or should we deprecate them and inform users that they should be putting their partitioning info in the commit?

Or should we deprecate them and inform users that they should be putting their partitioning info in the commit?

this, to me, is really counter intuitive :/ I understand it could be the way to go, but I kind of expect partitioning decisions to be made in deployment right?
anything, I don't dislike it completely, if this is something the osbuild team is in favor of doing we can adapt I think cc @mrguitar

I understand it could be the way to go, but I kind of expect partitioning decisions to be made in deployment right?

Don't get me wrong, I'm more on this side too.  It makes more sense to me as well that given a base ostree commit or container, you can deploy it in any number of scenarios with different partitioning layouts.
I'm trying to reconcile the user experience with the technology decisions we're making here (so I too would love to hear what Ben has to say).  I admit I'm not completely aware of what expectations we've created for users and how we can change that (or even if we should).  But I do think we should be thinking ahead about what it means when we make these changes.
So, more concretely: If the decision here is "partitioning decisions should be made at ostree base image creation time", what does that mean for the existing image building process of:

Create ostree commit
Create disk image
Create upgrade commit
Upgrade system

Questions:

Is partitioning at step 2 still supported?  Will it be something like "Choose mountpoints in step 1, but create partition sizes and filesystems in step2"?  How do we reconcile those two steps to make sure builds don't fail when the two configurations are incompatible?
Should the mountpoints be preserved in the step 3 build configuration?  Do mountpoints get removed if they're not included?  (Similar to what happens with users)
Do we need to figure out a mechanism that preserves mountpoints in step 3 given the original commit from step 1 as a "parent" (again, like we do with uids and gids)?

I could probably come up with more qs but that's a good starter for now I think :laughing:

The thing is: We can't change user partitions across upgrades by default no matter what.  So remember, even if partitioning is specified in a disk image today, in-place upgrades won't get any changes made there.
This architecture is pretty clear with e.g. Anaconda and kickstart - Anaconda is only used once, and not thereafter.  Ignition is also designed to run just once partly for this reason, but Ignition also does support "initialize idempotently" - i.e. if the partition already exists in the expected format, it is reused (and hence data is preserved).
The x-systemd.makefs option has existed for a really long time in systemd .mount units that has a similar semantic. What only exists much more recently is systemd-repart which pairs with that to handle partition creation dynamically.  Now, systemd-repart is its own universe.  In theory today, both could be used today without osbuild doing anything by just having the user inject the configuration to do so into the filesystem tree.
I don't have a strong opinion about this; if we were to take a dependency on repart it'd need some analysis.  It could also be done by injecting custom systemd units to create the partitions, and mount units using x-systemd.makefs.  I don't have a really strong opinion here myself.

Is partitioning at step 2 still supported?

It will probably have to continue to be if it was before, right?

Will it be something like "Choose mountpoints in step 1, but create partition sizes and filesystems in step2"?

No, all that state would best be computed on firstboot (as is done with ignition and repart).

How do we reconcile those two steps to make sure builds don't fail when the two configurations are incompatible?

In the end, moving the logic to firstboot necessarily implies some difficulty in trying to make that a "build" time check.  Honestly I would focus more on making it convenient for people to have an edit-compile-debug cycle (where "debug" means booting for real).

Should the mountpoints be preserved in the step 3 build configuration?  Do we need to figure out a mechanism that preserves mountpoints in step 3 given the original commit from step 1 as a "parent" (again, like we do with uids and gids)?

You're asking what happens if a user specifies a mountpoint a blueprint for creating a commit at one point, and then removes it later?  I'd expect the mountpoint to drop out, yes.

Having this the filesystem customization in commit comes with difficulties:

can not be used for multiple applications requiring different fs

you can deploy it in any number of scenarios with different partitioning layouts.

wont be poosible

Decoupling initial commit and upgrade commit blueprints wont be possible as any mismatch in mount points  will cause the system to not boot

I don't have a strong opinion about this; if we were to take a dependency on repart it'd need some analysis. It could also be done by injecting custom systemd units to create the partitions, and mount units using x-systemd.makefs. I don't have a really strong opinion here myself.

I would prefer repart or x-systemd.makefs over custom systemd unit, probably there are more tried and tested , repart's implementation seems to be straightforward but analysis will be to see if the other mountpoints remains intact,  modifying  /etc/fstab  can be done too but I am not sure about all the params - need some more learning for me.

#399 should fix the issue.


Flownet2CSS weight mismatch issue

Hello, first of all, thank you very much for your excellent work content.
However, I am having some weight mismatch issues when trying to generate optical flow files using the Flownet2CSS pre-trained weights you provided, the error is reported as follows:
Traceback (most recent call last):
  File "main.py", line 214, in <module>
    model_and_loss.module.model.load_state_dict(checkpoint['state_dict'])
  File "/home/dyq/miniconda3/envs/flownet2/lib/python3.8/site-packages/torch/nn/modules/module.py", line 2041, in load_state_dict
    raise RuntimeError('Error(s) in loading state_dict for {}:\n\t{}'.format(
RuntimeError: Error(s) in loading state_dict for FlowNet2CSS:
        Unexpected key(s) in state_dict: "flownets_d.conv0.0.weight", "flownets_d.conv0.0.bias", "flownets_d.conv1.0.weight", "flownets_d.conv1.0.bias", "flownets_d.conv1_1.0.weight", "flownets_d.conv1_1.0.bias", "flownets_d.conv2.0.weight", "flownets_d.conv2.0.bias", "flownets_d.conv2_1.0.weight", "flownets_d.conv2_1.0.bias", "flownets_d.conv3.0.weight", "flownets_d.conv3.0.bias", "flownets_d.conv3_1.0.weight", "flownets_d.conv3_1.0.bias", "flownets_d.conv4.0.weight", "flownets_d.conv4.0.bias", "flownets_d.conv4_1.0.weight", "flownets_d.conv4_1.0.bias", "flownets_d.conv5.0.weight", "flownets_d.conv5.0.bias", "flownets_d.conv5_1.0.weight", "flownets_d.conv5_1.0.bias", "flownets_d.conv6.0.weight", "flownets_d.conv6.0.bias", "flownets_d.conv6_1.0.weight", "flownets_d.conv6_1.0.bias", "flownets_d.deconv5.0.weight", "flownets_d.deconv5.0.bias", "flownets_d.deconv4.0.weight", "flownets_d.deconv4.0.bias", "flownets_d.deconv3.0.weight", "flownets_d.deconv3.0.bias", "flownets_d.deconv2.0.weight", "flownets_d.deconv2.0.bias", "flownets_d.inter_conv5.0.weight", "flownets_d.inter_conv5.0.bias", "flownets_d.inter_conv4.0.weight", "flownets_d.inter_conv4.0.bias", "flownets_d.inter_conv3.0.weight", "flownets_d.inter_conv3.0.bias", "flownets_d.inter_conv2.0.weight", "flownets_d.inter_conv2.0.bias", "flownets_d.predict_flow6.weight", "flownets_d.predict_flow6.bias", "flownets_d.predict_flow5.weight", "flownets_d.predict_flow5.bias", "flownets_d.predict_flow4.weight", "flownets_d.predict_flow4.bias", "flownets_d.predict_flow3.weight", "flownets_d.predict_flow3.bias", "flownets_d.predict_flow2.weight", "flownets_d.predict_flow2.bias", "flownets_d.upsampled_flow6_to_5.weight", "flownets_d.upsampled_flow6_to_5.bias", "flownets_d.upsampled_flow5_to_4.weight", "flownets_d.upsampled_flow5_to_4.bias", "flownets_d.upsampled_flow4_to_3.weight", "flownets_d.upsampled_flow4_to_3.bias", "flownets_d.upsampled_flow3_to_2.weight", "flownets_d.upsampled_flow3_to_2.bias", "flownetfusion.conv0.0.weight", "flownetfusion.conv0.0.bias", "flownetfusion.conv1.0.weight", "flownetfusion.conv1.0.bias", "flownetfusion.conv1_1.0.weight", "flownetfusion.conv1_1.0.bias", "flownetfusion.conv2.0.weight", "flownetfusion.conv2.0.bias", "flownetfusion.conv2_1.0.weight", "flownetfusion.conv2_1.0.bias", "flownetfusion.deconv1.0.weight", "flownetfusion.deconv1.0.bias", "flownetfusion.deconv0.0.weight", "flownetfusion.deconv0.0.bias", "flownetfusion.inter_conv1.0.weight", "flownetfusion.inter_conv1.0.bias", "flownetfusion.inter_conv0.0.weight", "flownetfusion.inter_conv0.0.bias", "flownetfusion.predict_flow2.weight", "flownetfusion.predict_flow2.bias", "flownetfusion.predict_flow1.weight", "flownetfusion.predict_flow1.bias", "flownetfusion.predict_flow0.weight", "flownetfusion.predict_flow0.bias", "flownetfusion.upsampled_flow2_to_1.weight", "flownetfusion.upsampled_flow2_to_1.bias", "flownetfusion.upsampled_flow1_to_0.weight", "flownetfusion.upsampled_flow1_to_0.bias".

Personally, I think this is because the weights are not the model weights of Flownet2CSS, because after I changed the model to Flownet2, the program ran smoothly to generate the optical flow file.

Also in the weights you provided, the name of the weight is written as FlowNet2 instead of FlowNet2CSS
I am confused about this, are you providing the wrong weights? Or I didn't find the right way to use it?
Lastly, I wish you the best of luck with your work and look forward to hearing from you!

I didn't provide the code for FlowNet2 in this repo, if I remember correctly.
Maybe you could submit a issue in the FlowNet2's repo.

I don't think I included the code and pretrained model for FlowNet2 in this repository. You should submit an issue in the FlowNet2 repository.

No, I think you may have misunderstood me.
I mean, I have tried to download the pre-training weights you provided, but this weight doesn't work on the Flownet2CSS mod, he can only run it on Flownet2, and I tried to run
python main.py --inference --model FlowNet2 \
--resume /home/dyq/PythonProject/flownet2-pytorch-master/saves/FlowNet2_checkpoint.pth.tar \

That's correct, but this --model FlowNet2  doesn't look like it uses Flownet2CSS , and when I switch to the --model FlowNet2CSS  program it reports an error that the weights don't match. I think maybe the weights you provided are for the FlowNet2  model and not the FlowNet2CSS  model?

In this script. There is no script named main.py. The pretrained weights is not provided by me but NVIDIA.

Thank you very much for your answer!
This main.py script comes with Flownet2 and I want to run this script to generate flo optical flow files.
Now my aim is to generate DAVIS photostream files to be stored in the OpticalFlows folder.
If the weights are not provided by you, can I do it this way: use the Flownet2CSS weights provided by the Flownet code to generate DAVIS optical flow files?

But I'm still confused, it's only logical that the weights file you provided should be correct

At the released time, I confirmed that the given link in the README is correct.
Maybe the authors of FlowNet2 changed the code.

You can do that.

At the released time, I confirmed that the given link in the README is correct. Maybe the authors of FlowNet2 changed the code.

Thank you very much for replying to my query in your busy schedule, now I completely understand!


Send email using smtp caused infinite loop

Hi,
I just notice in some situation, send email using CI Email library by SMTP will cause the code drop into an infinite loop.
The problem is caused by file: \system\libraries\Email.php, function _send_data($data)
for ($written = 0, $length = strlen($data); $written < $length; $written += $result)
{
	if (($result = fwrite($this->_smtp_connect, substr($data, $written))) === FALSE)
	{
		break;
	}
}

If the connection is terminated during the process of send email, then the fwrite will always return "FALSE" (0)
$written += $result will always stuck at 0
$written < $length will never be happened.
Therefore the for loop will never been end.
The worse thing is my script is running by CLI, means no timeout, and the infinite loop will use 100% of one CPU core, forever, unless I kill it manually.

The purpose of that if condition in there is to prevent exactly this - if fwrite() returns FALSE, the loop will be broken. Whatever is causing your issue, it's not this piece of code.

http://php.net/manual/en/function.fwrite.php
Please read the first comment.
That's the exactly problem I have currently.

Are you using the same operator "===" because 0 === false is false. however, 0 == false is true

@vibbow So you're saying fwrite() returns int(0) instead of bool(false) in case of a broken connection?

Yes, sorry for my first comment didn't describe clearly.
And if the connection is broken, PHP will throw a Notice for fwrite().

What's the notice message?
It should be that $this->_smtp_connect isn't a valid resource, in which case it's also an invalid parameter for fwrite() and in that case boolean FALSE should be returned ...

There are two different notice:

An established connection was aborted by the software in your host machine
An existing connection was forcibly closed by the remote host.

I think it's kind mean the $this->_smtp_connect is still a resource, just this resource's network is closed.

Well, that's a quite strange behavior ...
This bug report seems to explain it to an extent: https://bugs.php.net/bug.php?id=39598

What I'm doing now as a work around for this problem are:

check the fwrite's response, if the response is 0, then usleep a little while, so it won't loop too fast.
implement a timeout for the for loop.

Great, thanks for the report & the suggestions! See the linked commit for the fix.


Hide / show rows

Use case: filtering down a table based on user input.
It would be great to be able to hide / show row by index.

Currently you can use TableExt’s set_row_height(row_num, 0);
It would also be useful to add to the TableOpts, maybe as a slice of values and ranges.

Hi
The latest release also add remove_row(idx), thanks to this PR.


v0.1.0 Release

With the new feature added of the settings menu allowing varying board size, I will publish a new version to PyPI.

[x] Update version in pyproject.toml
[x] Update CHANGELOG
[x] Update dist files (python3 -m build)
[x] Publish to TestPyPI (twine upload -r testpypi dist/*)
[x] Upload to PyPI (twine upload dist/*)
[x] Publish Release on GH

completed steps and published release to PyPI, and tested install on my local machine.

removed match-case syntax
reformatted home menu to left/right align the item description from the statistic/selector
currently researching changes in Python 3.9 and 3.8 to make sure that I am truly compatible now with 3.7. Unfortunately, I couldn't get 3.7 downloaded on my machine due to a different architecture on my Mac M1 (x86_64 required, ARM used)

reformatted settings menu to match new format of main menu

reviewed "What's New" for 3.8 and 3.9 and so nothing introduced in these versions that I am using.
Worth noting is that 3.8 introduced the syntax return a, b vs. previous requirement to use parentheses (return (a, b)). I confirmed I am not relying on this newer syntax.


Support mapping from classification records

Move code for extraction of mappings from 7XX from authority records to
all types of records. This required addition of vocabulary codes to
mc2skos/vocabularies.yml. Tested with an RVK record mapped to GND.
This fixes feature request #51.

Codecov Report

Merging #52 into master will increase coverage by 0.03%.
The diff coverage is 91.17%.

@@            Coverage Diff             @@
##           master      #52      +/-   ##
==========================================
+ Coverage   79.54%   79.57%   +0.03%
==========================================
  Files           6        6
  Lines         743      754      +11
==========================================
+ Hits          591      600       +9
- Misses        152      154       +2

Impacted Files
Coverage Δ

mc2skos/record.py
88.1% <91.17%> (-0.16%)
:arrow_down:

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 c472cf5...3ecee88. Read the comment docs.

So make this a new issue, independent from this pull request?
Jakob Voß via Android

Yeah, agree.


Command line length limit for gcc linking

Version of SCons

3.0.4

Version of Python

2.7 through 3.7

Which python distribution if applicable (python.org, cygwin, anaconda, macports, brew,etc)

All

How you installed SCons

apt-get install on Debian, and inline copy of source code.

What Platform are you on? (Linux/Windows and which version)

Windows 10, Debian Linux and others. Nuitka is used by various people.

How to reproduce your issue?  Please include a small self contained reproducer. Likely a SConstruct should do for most issues.

I lack a SCCE, and did the fix for Nuitka without one, but compiling Tensorflow on Linux with Nuitka seems to do it. It is however not necessary to see that the linker command is unbound, unlike with mslink.

How you invoke scons (The command line you're using "scons --flags some_arguments")

We do only these:
        "--warn=no-deprecated",
        # Don't load "site_scons" at all.
        "--no-site-dir",

To work around the issue, I have added code in Nuitka like this:
if gcc_mode:
    tmp_linker_filename = os.path.join(source_dir<EMAIL_ADDRESS>
    env["LINKCOM"] = env["LINKCOM"].replace(
        "$SOURCES", "@%s" % env.get("ESCAPE", lambda x: x)(tmp_linker_filename)
    )

    with open(tmp_linker_filename, "w") as tmpfile:
        for filename in source_files:
            filename = ".".join(filename.split(".")[:-1]) + ".o"
            tmpfile.write('"%s"\n' % filename)

        tmpfile.write(env.subst("$SOURCES"))

Default(target)

I didn't have the skills to produce a proper scons patch here, as they way it's done for mslink seems to involve more Scons knowledge than I have. But I think it's still valuable to point out that the flaw exists in Scons.
The issue occurs most often with MingGW64 due to the lower limits on Windows I think, but people have managed to hit it with gcc on Linux too, where 32k is the limit I believe.

Which platform are you having this issue on? (Not which platforms do the software build on)
There's already logic in SCons to deal with lines to long by placing in a temp file.
Also I guess you ignored the request to bring this issue to the scons users mailing list.
Try:
env["LINKCOM"] = "${TEMPFILE %s"%env['LINKCOM']
env['TEMPFILEPREFIX'] = '@'

I think though that by default, the long line stuff is only applied for Windows. At least for MongoDB, we had to do some work to apply it more generally:

https://github.com/mongodb/mongo/blob/master/SConstruct#L769-L775
https://github.com/mongodb/mongo/blob/master/SConstruct#L1482-L1500

I think though that by default, the long line stuff is only applied for Windows. At least for MongoDB, we had to do some work to apply it more generally:
* https://github.com/mongodb/mongo/blob/master/SConstruct#L769-L775

* https://github.com/mongodb/mongo/blob/master/SConstruct#L1482-L1500

Yes. And the logic above should effectively do what you've done in your build for LINKCOM which was the only one mentioned

I am having the issue with gcc on all platforms, @bdbaddog and it depends on the linker used. Only with MSVC I am seeing the temp file trick being done (and for we have another fix in another issue) and it seems to be pretty involved, and non generic.
For my naive eyes, putting things in a batch file ought to not help. Instead the @file must be used, similar to what is done in mslink.

I am having the issue with gcc on all platforms, @bdbaddog and it depends on the linker used. Only with MSVC I am seeing the temp file trick being done (and for we have another fix in another issue) and it seems to be pretty involved, and non generic.
For my naive eyes, putting things in a batch file ought to not help. Instead the @file must be used, similar to what is done in mslink.

Did you try the code I posted to see if it works for your issue?

@bdbaddog When I did it, it was giving me errors:

scons: *** [Mini.bin] SyntaxError invalid syntax (<string>, line 1)' trying to evaluate ${TEMPFILE $LINK -o $TARGET $LINKFLAGS $__RPATH $SOURCES $_LIBDIRFLAGS $_LIBFLAGS}'

The code I used, fixing what I think it s typo:
    env["LINKCOM"] = "${TEMPFILE %s}"%env['LINKCOM']     env['TEMPFILEPREFIX'] = '@'


Setup doc testing for Python APIs

Doc test cases should serve as

guiding example to show users the most typical use cases of the APIs
actual test cases like other unit tests

@xushiyan happy to contribute
What do you expect from this, a few e2e doctests that show how to create and read from HudiTable ?

@kazdy yup updated the description

@kazdy I'd actually suggest do this after release 0.3 when we have more APIs to be covered, making docs testing more worthy. Right now the APIs are very preliminary.

block this on #141