[WIP] RBAC - Added support for scopes in permissions

In the RBAC resource definition we are adding scope to
differentiate between admin, groups and users
Sample Usage by Approval
x = Insights::API::Common::RBAC::Access.new
my_scopes = x.scopes('workflows','read')
if my_scopes.include?('admin')
    # handle admin scope
    # Worfklows.all
elsif my_scopes.includes?('group')
   # Handle Group Scope
elsif my_scopes.includes?('user')
   # Handle User Scope
else
   # Nothing Accessible
end

Sample Usage by Catalog API
x = Insights::API::Common::RBAC::Access.new('catalog, approval')
my_scopes = x.scopes('portfolios','read')
if my_scopes.include?('admin')
    # handle admin scope
    Portfolios.all
elsif my_scopes.includes?('group')
   # Handle Group Scope
elsif my_scopes.includes?('user')
   # Handle User Scope
else
   # Nothing Accessible
end

# Somewhere else when doing Set Approval
my_scopes = x.scopes('workflows', 'read',  'approval')
my_tags_scopes = x.scopes('taglinks', 'write',  'approval')
if my_scopes.count > 0 && my_tags_scopes.count > 0
    # User can set approval on Portfolio
end

@bzwei @hsong-rh Please review removed old methods and cleaned up specs.

@bzwei
We have a ticket opened with the RBAC team https://projects.engineering.redhat.com/browse/RHCLOUD-5269
Which might give us more clarity on what the app_name filter would look like
'catalog,approval'
'*'
''
or something else

@gmcculloug I am not sure adding an extra parameter helps anything here for a normal use case say for approval which only ever works with only its objects the code would look like
x = Insights::API::Common::RBAC::Access.new
x.accessible?('workflows','read')
x.admin_scope?('workflows','read')

For a case like catalog which needs to get access from catalog and approval and maybe topology down the road
x = Insights::API::Common::RBAC::Access.new('catalog, approval')
x.accessible?('portfolio','read')
x.admin_scope?('portfolio','read')

x.accessible?('workflow','read','approval')

You need to pass in the extra argument only when you are trying to get permission check for objects which are not in your app, When you need to check for permissions in your app you dont have to pass in the extra argument. It couldn't be much simpler than that. Adding extra argument in the initializer has no value since the app name is needed when you make the check. Only when you need to check for permissions for objects not in your own app.

I changed this to WIP temporarily because the caller might see a big performance improvement if it collected all the scopes in a single call and then did some logic locally.
e.g
x = Insights::API::Common::RBAC::Access.new
if x.admin_scope?('workflows', 'update')
   # Do Admin Stuff
else if x.group_scope?('workflows','update')
  # Do Group Stuff
else if x.user_scope?('workflows,'update')
  # Do User Stuff
else
     puts "Not Accessible"
end

versus Collecting all scopes in a single call so you dont have to traverse the array multiple times.
x = Insights::API::Common::RBAC::Access.new
current_scopes = x.scopes('workflows', 'update')
if current_scope.includes?('admin')
   # Do Admin Stuff
else if current_scope.includes?('group')
   # Do Group Stuff
else if current_scope.includes?('user')
   # Do User Stuff
else
   puts "Not Accessible"
end

@hsong-rh @bzwei
Please review the example usages. I have added a new method called scopes since it will make it easier to make a single pass and collect all the scopes for an object.
The use case is
A user can be part of all these groups at the same time

Approval Administrator
Approval Approver
Approval User

Or the user could be part of 2 groups

Approval Administrator
Approval Approver

So the scopes method allows you to collect all the scopes with a single call and then have the caller decide the order of precedence. Admin will be checked first then group and then user.

@mkanoor I like the new approach as it does not require this code to know the scope values (admin, group, user) and the app has more control over how it accesses the data.  👍

@bzwei Please review


Subcircuit Identification with Placement Constraints

@parijatm , I am getting a perplexing pydantic error for a simple order test case: tests/pdk/finfet/test_comparator.py:
{"constraint": "Order", "direction": "left_to_right", "instances": ["mmp7", "mmp8"]} => Pass
{"constraint": "Order", "direction": "left_to_right", "instances": ["mmp7", "mmp9"]} => Fail
You can reproduce by running the test: pytest test_comparator.py --runnightly -v. Could you please take a look?
Error snippet:
  File "/nfs/site/disks/scl.work.50/ash/users/soneryal/sles12/intel_pdks/p1222/ALIGN-public/align/schema/types.py", line 134, in extend
    self.append(item)
  File "pydantic/decorator.py", line 39, in pydantic.decorator.validate_arguments.validate.wrapper_function
  File "pydantic/decorator.py", line 132, in pydantic.decorator.ValidatedFunction.call
  File "pydantic/decorator.py", line 129, in pydantic.decorator.ValidatedFunction.init_model_instance
  File "pydantic/main.py", line 406, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 22 validation errors for Append
constraint -> instances
  One or more constraint instances __root__=['M0'] not found in {'mmp9', 'mmp10'} (type=assertion_error)

@parijatm , this is not a pydantic problem but compiler bug.
@kkunal1408 , see the log below:
2021-06-12 08:10:27 align.compiler.match_graph DEBUG : Reducing ISOMORPHIC sub_block: CMC_PMOS[{'mmp8': 'M0', 'vip_d': 'DA', 'clk': 'G', 'vcc_0p9': 'S', 'mmp7': 'M1', 'vin_d': 'DB'}, {'mmp9': 'M0', 'vin_o': 'DA', 'clk': 'G', 'vcc_0p9': 'S', 'mmp10': 'M1', 'vip_o': 'DB'}]
2021-06-12 08:10:27 align.compiler.match_graph DEBUG : Reduce nodes: mmp9, mmp10
2021-06-12 08:10:27 align.compiler.match_graph DEBUG : Multi node element: CMC_PMOS {'DA': 'vin_o', 'G': 'clk', 'S': 'vcc_0p9', 'DB': 'vip_o'}
2021-06-12 08:10:27 align.compiler.merge_nodes DEBUG : Is input bipartite: True
2021-06-12 08:10:27 align.compiler.merge_nodes DEBUG : removing node: mmp9: attr: {'inst_type': 'pmos', 'real_inst_type': 'p', 'ports': ['vin_o', 'clk', 'vcc_0p9', 'vcc_0p9'], 'edge_weight': [1, 2, 4, 8], 'values': {'w': '360e-9', 'l': '40e-9', 'm': '2', 'nf': '2'}, 'sub_graph': None, 'connection': None}
2021-06-12 08:10:27 align.compiler.merge_nodes DEBUG : removing node: mmp10: attr: {'inst_type': 'pmos', 'real_inst_type': 'p', 'ports': ['vip_o', 'clk', 'vcc_0p9', 'vcc_0p9'], 'edge_weight': [1, 2, 4, 8], 'values': {'w': '360e-9', 'l': '40e-9', 'm': '2', 'nf': '2'}, 'sub_graph': None, 'connection': None}
2021-06-12 08:10:27 align.compiler.merge_nodes DEBUG : creating a super node of: CMC_PMOS type: p
2021-06-12 08:10:27 align.compiler.merge_nodes DEBUG : checking node mmp9 {'inst_type': 'pmos', 'real_inst_type': 'p', 'ports': ['vin_o', 'clk', 'vcc_0p9', 'vcc_0p9'], 'edge_weight': [1, 2, 4, 8], 'values': {'w': 3.6e-07, 'l': 4e-08, 'm': 2.0, 'nf': 2.0}, 'connection': None}
2021-06-12 08:10:27 align.compiler.merge_nodes DEBUG : checking node clk {'inst_type': 'net', 'net_type': 'external'}
2021-06-12 08:10:27 align.compiler.merge_nodes DEBUG : checking node vcc_0p9 {'inst_type': 'net', 'net_type': 'external'}
2021-06-12 08:10:27 align.compiler.merge_nodes DEBUG : checking node vin_o {'inst_type': 'net', 'net_type': 'internal'}
2021-06-12 08:10:27 align.compiler.merge_nodes DEBUG : checking node mmp10 {'inst_type': 'pmos', 'real_inst_type': 'p', 'ports': ['vip_o', 'clk', 'vcc_0p9', 'vcc_0p9'], 'edge_weight': [1, 2, 4, 8], 'values': {'w': 3.6e-07, 'l': 4e-08, 'm': 2.0, 'nf': 2.0}, 'connection': None}
2021-06-12 08:10:27 align.compiler.merge_nodes DEBUG : checking node vip_o {'inst_type': 'net', 'net_type': 'internal'}
2021-06-12 08:10:27 align.compiler.match_graph DEBUG : transfering constraints from top ckt_order2 to bottom CMC_PMOS
2021-06-12 08:10:27 align.compiler.match_graph DEBUG : checking if sub hierarchy instances are in const defined {'mmp9': 'M0', 'vin_o': 'DA', 'clk': 'G', 'vcc_0p9': 'S', 'mmp10': 'M1', 'vip_o': 'DB'} mmp9_mmp10 constraint='order' instances=List[str](__root__=['mmp7', 'mmp9']) direction='left_to_right' abut=False
2021-06-12 08:10:27 align.compiler.match_graph DEBUG : transferred constraint instances {'mmp9': 'M0', 'vin_o': 'DA', 'clk': 'G', 'vcc_0p9': 'S', 'mmp10': 'M1', 'vip_o': 'DB'} from constraint='order' instances=List[str](__root__=['mmp7', 'mmp9']) direction='left_to_right' abut=False to {'direction': 'left_to_right', 'instances': ['M0'], 'constraint': 'order'}
2021-06-12 08:10:27 align.compiler.match_graph DEBUG : updating symmetry block constraints of subcircuit ckt_order2, nodes: ['mmp9', 'mmp10'], new name: mmp9_mmp10
2021-06-12 08:10:27 align.compiler.match_graph DEBUG : update constraints with block in them for hierarchy ckt_order2 ['mmp9', 'mmp10']
2021-06-12 08:10:27 align.compiler.match_graph DEBUG : checking instances in the constraint:__root__=['mmp7', 'mmp9'] {'mmp10', 'mmp9'}
2021-06-12 08:10:27 align.compiler.match_graph DEBUG : updated instances in the constraint:constraint='order' instances=List[str](__root__=['mmp7', 'mmp9_mmp10']) direction='left_to_right' abut=False
2021-06-12 08:10:27 align.compiler.match_graph DEBUG : adding new sub_ckt: CMC_PMOS [{'direction': 'left_to_right', 'instances': ['M0'], 'constraint': 'order'}]

The translation of the constraint below seems to be wrong:
2021-06-12 08:10:27 align.compiler.match_graph DEBUG : adding new sub_ckt: CMC_PMOS [{'direction': 'left_to_right', 'instances': ['M0'], 'constraint': 'order'}]
When there is a constraint on a transistor, is not that supposed to be excluded from subcircuit identification in the first place?

Hi Soner,
When I try to install this branch I get this error. Not able to reproduce it:
conftest.py:2: in
from align.utils.logging import reconfigure_loglevels
align/init.py:3: in
from .utils import logging
align/utils/logging.py:1: in
import logging.config
E   ImportError: No module named config

This branch has no difference than master. Are you able to install master?

When there is a constraint on a transistor, is not that supposed to be excluded from subcircuit identification in the first place?

Constraint generation is a second step during annotation (the first step is subcircuit identification and creation). When you add a user-defined constraint related to placement, it will be used in the second step unless it is an annotation constraint such as a group block.
To stop automatic subcircuit creation for any hierarchy, you can put them as digital block in setup file. If you want something like do_not_touch inst1,inst2 I can add this constraint.

This branch has no significant difference than master. Are you able to install master?

I am facing this issue with the current master also :( .

Constraint generation should be the very first step in the flow in the long term. This provides user-readable/editable constraints.
In the short term, this needs to be resolved. Example: User asks m101 to be symmetric with m102 but the flow interleaves m101 with m103 (matches a known subcircuit). In this case, symmetry constraint may not be satisfiable. We could either i) automatically exclude any transistor that is part of a placement constraint from subcircuit identification or ii) ignore the user constraint completely (i.e. fix translation bug and tell user that the constraint is ignored). I am favoring the exclusion approach rather than ignorance.
Following your suggestion, one possibility is to label such transistors as digital in the code as the first step in annotation. Is there any side effects of labeling a transistor as digital?

This branch has no significant difference than master. Are you able to install master?

I am facing this issue with the current master also :( .

Are you working on a new/different system? You could try installing on a clean slate.

This branch has no significant difference than master. Are you able to install master?

I am facing this issue with the current master also :( .

Are you working on a new/different system? You could try installing on a clean slate.

@PDN-BeGAN Can we move this installation problem to a new issue? There are several others that can help.

@soneryaldiz I was able to reproduce it on a different machine. From what I can see is the constraint is an order constraint between m101,m102.  In case m101 got combined with m103, order constraint can still be satisfied (need to be fixed). In case of symmetry constraint, it may (in case m102 gets combined with m104) or may not (when m102 remains individual) be satisfied.
Setting digital block (done for a subcircuit), avoids any automatic annotation and constraint generation.

Apart from the methodology issue, which we can discuss later.
There was also an implementation issue that I resolved and the example should run.

@parijatm , @kkunal1408 and @soneryaldiz met and agreed on implementing Proposal#1:
Example:
.subcircuit top
m1
m2
m3
.end
If annotation identifies m1&m2 as a primitive (interleave->"generate"), how should the flow handle user-specified placement constraints on m1 such as:
1- align m1 and m2
2- align m1 and m3
3- order m1 and m2
4- order m1 and m3
5- sym m1 and m2
6- sym m1 and m3
Proposal#1: If there is a placement constraint on an instance (device):

Exclude instance from subcircuit identification (i.e. don't create hierarchy)

If instance is part of group block, throw error if another instance is not within the same group block. Example:
groupblock m1, m2, m3 (workaround for generate & proximity & lack of schematic hierarchy)
align m1 and m2
Implementation option 1 (Kunal):
Create a virtual hierarchy for the instance
Label this virtual hierarchy as digital
Implementation option 2 (Kunal/Soner):
If instance has a constraint on it, only match to a Switch* primitive

Proposal#2: Pass constraints to the primitive generator
1- align m1 and m2: Pass to generator
2- align m1 and m3: Maybe
3- order m1 and m2: Pass to generator
4- order m1 and m3: Maybe
5- sym m1 and m2: Pass to generator
6- sym m1 and m3: Illegal
Opens:
- Why do we want to pass constraints to a generator? We may want to pass parameters only (if it is a parameterized generator)
- How do we verify a constraint passed to the generator?

@parijatm Can you help me with this Pydantic error. Kind of stuck for a day.
I want to create a DontTouch constraint out of the list of instances across all the user-defined constraints. I created this constraint but I am not able to add it to the constarintDB.

@kkunal1408 , I can look into this as well later Today. Does DontTouch mean exclude a list of instances from subcircuit identification?

@kkunal1408 , I can look into this as well later Today. Does DontTouch mean exclude a list of instances from subcircuit identification?

Yes. I will use this list later to check before subcircuit identification, instead of traversing all constraints every time.

@kkunal1408 , I can look into this as well later Today. Does DontTouch mean exclude a list of instances from subcircuit identification?

Yes. I plan to use this list later to check before subcircuit identification, instead of traversing all constraints every time.

@kkunal1408 , the error is fixed. I need to work more on the test as the constraint is not propagating to checker.py. I think it gets lost during translation. You should be able to continue now.

@kkunal1408 , are you working on this? If not, please let me know and I can continue.

Will update the branch in some time (an hour).

let me know if the feature works as desired for you. I will fix some tests to integrate this update.

@soneryaldiz Testa pass locally but fail on CI

@kkunal1408 , the tests below are failing:
FAILED tests/pnr/test_write_constraint.py::test_group_block_hsc[high_speed_comparator_align]
FAILED tests/pnr/test_write_constraint.py::test_group_block_hsc[high_speed_comparator_multiconnection]
FAILED tests/pnr/test_write_constraint.py::test_group_block_hsc[high_speed_comparator_orderblock]
FAILED tests/pnr/test_write_constraint.py::test_group_block_hsc[high_speed_comparator_portlocation]
FAILED tests/pnr/test_write_constraint.py::test_group_block_hsc[high_speed_comparator_symmblock]
FAILED tests/pnr/test_write_constraint.py::test_group_block_hsc[high_speed_comparator_symmnet]
Why is there do_not_idenfity constraint in these?

@kkunal1408 , the tests below are failing:
FAILED tests/pnr/test_write_constraint.py::test_group_block_hsc[high_speed_comparator_align]
FAILED tests/pnr/test_write_constraint.py::test_group_block_hsc[high_speed_comparator_multiconnection]
FAILED tests/pnr/test_write_constraint.py::test_group_block_hsc[high_speed_comparator_orderblock]
FAILED tests/pnr/test_write_constraint.py::test_group_block_hsc[high_speed_comparator_portlocation]
FAILED tests/pnr/test_write_constraint.py::test_group_block_hsc[high_speed_comparator_symmblock]
FAILED tests/pnr/test_write_constraint.py::test_group_block_hsc[high_speed_comparator_symmnet]
Why is there do_not_idenfity constraint in these?

The do_not_identify constraints are not deleted at end of annotation. We can remove this at the end of annotation. The do_not_identify impacted some hierarchies so still need to update these files.
I will update these files tonight, you can ignore these for now.

@kkunal1408 , the tests below are failing:
FAILED tests/pnr/test_write_constraint.py::test_group_block_hsc[high_speed_comparator_align]
FAILED tests/pnr/test_write_constraint.py::test_group_block_hsc[high_speed_comparator_multiconnection]
FAILED tests/pnr/test_write_constraint.py::test_group_block_hsc[high_speed_comparator_orderblock]
FAILED tests/pnr/test_write_constraint.py::test_group_block_hsc[high_speed_comparator_portlocation]
FAILED tests/pnr/test_write_constraint.py::test_group_block_hsc[high_speed_comparator_symmblock]
FAILED tests/pnr/test_write_constraint.py::test_group_block_hsc[high_speed_comparator_symmnet]
Why is there do_not_idenfity constraint in these?

The do_not_identify constraints are not deleted at end of annotation. We can delete them at the end of annotation. The do_not_identify impacted some hierarchies so still need to update these files.
I will update these files tonight, you can ignore these for now.

Let's not delete these constraints for align/pnr/checker.py to check.

@parijatm , this is ready for review.


filter a table upon creation

Hi there,
Can i filter a table before pushing it into the excel file? ('normal' table, not a pivot table)
currently i filter manually after a file is created.
what i want is the full data set in the table, but to filter base on specific value on a specific column.
My guess would be around: $xlpkg.Workbook.Worksheets["sheet name"].Tables["table name"] - but this is as far as i go :)
Is that possible?

As an example, i want to filter the below table from the script, so when the excel file is opened, this table will be already filtered on specific team or on specific Action

Looks like

If you truly want to apply a filter to a column for output then then you have to do it manually since EPPlus does not natively apply filters.

https://stackoverflow.com/questions/32723483/adding-a-specific-autofilter-on-a-column

Looks Interesting, ill give it a spin.  thanks!

@dfinke
Hi Doug,
In version 6.2.4 it is written: "Creates a table, with filtering"  but i didnt find any further info on that.
Could this be a solution to my question above, and we can now filter a table once created?
if so, could anyone share an example code with me?

@jhoneill @ili101 Could you shed some light on this, I vaguely remember what it was.

It just referring to the fact that AutoFilter is on by default. Not actually creating a filter. Sorry

Yeah, that's what I thought, I'll update the readme


Crash when setting --secure-port=0

From reading the commandline documentation, it seems to say that TLS can be disabled by sett4ing --secure-port=0:
--secure-port int
  The port on which to serve HTTPS with authentication and authorization.
  If 0, don't serve HTTPS at all. (default 443)

However, when I set this flag to 0, it appears to crash on startup:
F1207 12:20:47.179578      10 adapter.go:211] unable to run custom metrics adapter: Genericapiserver.New() called with config.LoopbackClientConfig == nil

Is this expected, or was I doing something wrong?
I was using v0.4.0.

hmm... Does this only happen with --secure-port=0?  I wonder if it's just a weird case in the apiserver library...

Yeah, it only happens when I set --secure-port=0. I was trying to force HTTP traffic at the time. It's not blocking my use of the adapter as I'm using https now, but thought it would be worthwhile to report it.

feel free to close

I was unable to set a different than 6443 in the secure-port param when deploy it using istio. I found this issue and tested with 0 param and I got the same error of @stuartnelson3 . I'm using version 0.5.0.


Button to launch donor portal site

[ ] For donor portal, need to create button to press to officially launch the site.

Thank you @RandilaP getting this done!


Max amount button bugs on Send  page

Closes #732
The address should be validated first before the amount is set
Within the constructTx() function, unsignedTx is required to calculate the tx fee which will be deducted from the total number of coins
One of the arguments of unsignedTx.addSenddestination is destination address
In the light of this, this PR

Adds toast notification "Set destination address" if max button is clicked and amount is not set
Fixes rhe bug that keeps the max button active when amount input is highlighted and cleared

based on the original issue, sometimes when the dcr amount editor is highlighted and cleared the max button is not reset, same goes for the usd amount editor

the corresponding amount editor field should be cleared when one amount editor field is clear


Remove hint to use jsfiddle to test the code

We cannot just copy-paste example from https://github.com/muaz-khan/RTCMultiConnection/blob/master/docs/getting-started.md#getting-started-from-scratch to jsfiddle.net anymore.
First of all, nowadays, you need https to use getUserMedia and second, since jsfiddle uses an iframe, embedded documents cannot access the camera anymore
AudioCapture permission has been blocked because of a Feature Policy applied to the current document. See https://goo.gl/EuHzyv for more details.
VideoCapture permission has been blocked because of a Feature Policy applied to the current document. See https://goo.gl/EuHzyv for more details.

We can not do anything on jsfiddle. You can ask them to add following TAG:
<iframe allow="microphone; camera"></iframe>

i.e. allow="microphone; camera"
Ref: Deprecating Permissions in Cross-Origin Iframes
File sharing or Chat should work on jsfiddle.


Im having trouble with my SQL code not working

I have used some SQL code in one of my projects and I even asked my teacher and she said everything looked right can you please take a look and help figure out whats going on? It is my Kim-tay 8-1 here is a link https://miniature-umbrella-pj77gpw9r74gc779.github.dev/?folder=%2Fworkspaces%2F9780357419748_a-guide-to-sql-40d8ed03-39c8-43f5-abe1-191ca4a20ddf%2Fchapter8%2Fex01%2Fstudent
Version: 1.88.1
Commit: e170252f762678dec6ca2cc69aba1570769a5d39
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36 Edg/<IP_ADDRESS>
Embedder: codespaces

/question

We closed this issue because it is a question about using VS Code rather than an issue or feature request. Please search for help on StackOverflow, where the community has already answered thousands of similar questions. You may find their guide on asking a new question helpful if your question has not already been asked. See also our issue reporting guidelines.
Happy Coding!


global: add custom admin views

As of yet the entry point discovery is only possible for flask_admin.contrib.sqla.ModelView. It should be also possible to define and add flask_admin.base.BaseView
The entry-point interface doesn't need to change, since the loaded object is a dictionary containing keys 'model' and 'modelview' plus some extras ('category' etc.). To register a BaseView, the InvenioAdmin's init code should check for existence of key 'model' and call the corresponding constructor.

Closed via 48be70cc

ping @krzysztof (https://github.com/inveniosoftware/invenio-admin/issues/8#issuecomment-239197990)

Technically it's possible to register a custom view since we have access to the Admin extension, however following is not possible:
# admin.py
from flask_admin import BaseView, expose

class AnalyticsView(BaseView):
    @expose('/')
    def index(self):
        return self.render('analytics_index.html')

analytics = {
    'view_class': AnalyticsView,
    'endpoint': 'analytics',
}

# setup.py
    ...
    entry_points={
        'invenio_admin.views': [
            'analytics = admin:analytics',
        ],
    },
    ...

This is due to:
    def register_view(self, view_class, model_class, session=None, **kwargs):
        view_class = self.view_class_factory(view_class)
        self.admin.add_view(
            view_class(model_class, session or db.session, **kwargs))

    def load_entry_point_group(self, entry_point_group):
        for ep in pkg_resources.iter_entry_points(group=entry_point_group):
            admin_ep = dict(ep.load())
            # ...
            self.register_view(
                admin_ep.pop('modelview'),
                admin_ep.pop('model'),
                **admin_ep)

I think this is still relevant, but not a blocker for release. Also, changing the dict structure at this point I think requires too many changers in other modules, and a new/old dict structure can easily be supported side-by-side.

Fixed in b33149707a80433d2b7a9f6b467418f0837678ca


Adding Demo To Source Code

Would you be open to adding a working demo to the source code? I know demos are available on codepen, however, I wanted to fork the repo and play around with it on a localserver. Thanks!

@martinmoesby
The sort API should be passed a comparison function.
Do you find the following sample useful?
https://codesandbox.io/s/custom-sort-js-znkrh?file=/src/App.jsx
Note
By default, nodes that are droppable are placed before nodes that are non-droppable. To disable this and have them both sorted at the same level, set the insertDroppableFirst property to false.

@martinmoesby The sort API should be passed a comparison function. Do you find the following sample useful?
https://codesandbox.io/s/custom-sort-js-znkrh?file=/src/App.jsx
NOTE: By default, nodes that are droppable are placed before nodes that are non-droppable. To disable this and have them both sorted at the same level, set the insertDroppableFirst property to false.

Thank you - this was just what I needed :)

@martinmoesby Thanks for the bug report!
I checked the code and found that the type definition of the sort callback did not support generic types.
I've just fixed it and published it as an alpha version, so please try it.
npm install @minoru/react-dnd-treeview@alpha

Please let me know if you have any problems.
If there are no problems, I will include it in the next official release.


RFC: Expand the funding section with a list of organizations/foundations

As it is the funding section is a good start but I've been thinking about a detailed list of resources with a short info for them.
For example Mozilla Foundation is likely to only sponsor projects which are related to what they do or somehow used by Mozilla infrastructure.
The section doesn't even mention Google Summer of Code.
Will you accept a detailed list (to be expanded in time) of possible revenue sources ? I am willing to contribute the ones I know about, just let me know what format (where in the source) you would like this to live.

I think list proposals have been discussed before several times (first a quick search turns up is https://github.com/github/opensource.guide/issues/278#issuecomment-280356198) and the thought was that guides aren't a great place for them. I guess section you're referring to is https://github.com/github/opensource.guide/blob/b37d0de7cc8794666f03b45c353f668d1ba1a424/_articles/getting-paid.md#apply-for-grant-funding
Those are examples. If you have an idea for more clearly signaling that, or better examples, please say (or make a PR).
There is a link in that section to https://github.com/nayafia/lemonade-stand which is more listy but looking at it for the first time in awhile, not as list oriented as an awesome list. Maybe there's another link that could complement that.
GSoC isn't primarily a funding program for projects, I suspect is the reason it isn't mentioned there.
Just initial reactions, could be wrong, thanks for writing up the proposal.

<EMAIL_ADDRESS>

Closing, see comments in #1111 and #1121. Thanks!


prepend hardcoded string value to origin.hostname structured data

add configuration variable
prefixOrigin = "myGroup/"
so it becomes
[origin@48577 hostname="myGroup/$hostname/$containerId"]

I'd split these to different entities entirely, more like [origin@48577 group="myGroup" hostname="$hostname" containerId="$containerId"]

origin is already defined and in use, therefore we can not modify the schema. i propose that we add totally new key-value structure for transporting this kind of adhoc information


[1.12.2-1.7.0-114] Enchantment Applicator does not work on already enchanted items

Industrial Foregoing Version: 1.12.2-1.7.0-114
TeslaCoreLib Version: 1.12-1.0.12
In DW20-1.12-1.7.1 modpack via Twitch client, tested in singleplayer.
The Enchantment Applicator would appear to replace the function of the vanilla anvil, but since the recent fix it is unable to apply enchantments from books onto items which already have one or more enchantments on them. This includes combinations that are allowed by the regular anvil such as adding Fortune III to an Efficiency V diamond pickaxe.

There have a way to fix that and not closed without giving any reason??
I need an enchantment applicator working in my modpack, because the Vanilla Anvil is disable by Better With Mods feature and I really want to keep it like that, but now, we are stuck without any way to add an enchant to already enchanted item.
If you don't want for some reson to change that, can I have the reason??
Fireztonez

This was closed through a commit (https://github.com/Buuz135/Industrial-Foregoing/commit/2543bef50cbc10e3d4e3a9b68a5c883e737a4558) which addresses this isue...

Also, this is a 10 month issue... if it doesn't work in your modpack update the mod...

Sorry, I have try yesterday and it look like it doesn't work with already enchanted items, but, I just try again today and it work... I probably try with incompatible enchantments without knowing it or noticing it.
So, i'm sorry for that, this is my bad, everithing work's fine!
Thank's for the reply and I have not notice the Commit number when I have write the message, so, again, my bad...
Sorry again,
Thank's for your good work and your amazing mod :)
Fireztonez


Support JetBrains 2022.1 IDEs

The first EAP (i.e. preview) releases of the 2022.1 JetBrains IDEs were published, https://blog.jetbrains.com/idea/2022/01/intellij-idea-2022-1-eap-1/ Most likely, the final release will be published in April 2022.
@apotterri
The AppLand plugin needs adjustment to be compatible with the new version. Please let me know if I should work on this.

What's the nature of the changes that need to be made?

At least compatibility needs to be declared with 2022.1 and tests need to be updated to run with 2022.1. Needed effort is most likely in the range of ~1 hour. If it turns out that compatibility needs more work, it would be clear after that hour.

Ok. Yes, please go ahead and declare compatibility and update the tests.


Support alias back-and-forth

Hi there,
I found this module is quite interesting and easy to catch up.
Currently, I got into situation where I need to implement some kind of searching, but the search engine is not fully support utf8. So, it's may good for user to be able to convert ❤ => :heart: and back, :heart: => ❤
I'm also done a prototype for these implementation. My repo: https://github.com/liemle3893/emoji/commit/985fe954b73baf6614a2fd99d03779e49e07212d
It's cool if we can add this feature.
Regards.

wait, are these symbols not equal?

for me it looks like this

@quenbyako  oops, my bad. I've updated.
Shoud be: :heart: => ❤  and back, ❤ => :heart:

@liemle3893 why you just don't make reverse map searching? It's really trivial: you just finding key by ranging values 🙃
Also, there is even more simple way: why just not copy emoji.Map() and flip keys and values to your map? I mean, i understand your problem, but it is really simple, and you can can solve it even simpler than you think.
But, even i'm not author or contributor to this project, i appreciate your work, no matter how much there are more solutions of this issue exist

@quenbyako for a single emoji, yeah sure, it is easy to convert :heart: => :heart: but if your input is a text like "I :heart: emoji" then you have to parse the text looking for all emoji, another feature that is not supported by this library so if something like emoji.FindAll(text) is added to allow getting all emoji in text maybe it would be easy to implement, but right now user has to parse text looking for emoji themselves

another option is to use https://github.com/forPelevin/gomoji which allows to replace emojis with their slug, then use this library for the other direction :facepalm: each library support the conversion only in one direction


Display net earnings in Route Finder

jreynolds:

Could you consider displaying the estimated earnings for jobs net of the predictable costs such as Ground Handling and Booking fees with perhaps an estimate for the rental fees where it's a plane rental and whether that's a wet or dry rental? Rental costs would have to be an estimate because you can't know in advance how much ground time a user will spend between jobs, although perhaps you could have a field for the user to estimate their ground time for each leg? I realise you can't easily estimate fuel costs for dry rentals without adding considerable complexity but that is fine.

As you said, it is not so easy to implement, so not a priority right now

As you said, it is not so easy to implement, so not a priority right now

Added in the new v1.4.0 release


Make Reflect safe to implement

Objective
Currently, Reflect is unsafe to implement because of a contract in which any and any_mut must return self, or downcast will cause UB. This PR makes Reflect safe, makes downcast not use unsafe, and eliminates this contract.
Solution
This PR adds two methods to Reflect, those being type_id() and any. It also renames the old any to any_ref.
any now takes a Box<Self> and returns a Box<dyn Any>.

Changelog
Added:

type_id() and any() methods

Changed:

Reflect is now a safe trait
downcast() is now safe
Reflect implementors can now control is() better by overriding type_id() instead of any
The old any is now called any_ref

Migration Guide

Reflect derives should not have to change anything
Manual reflect impls will need to remove the unsafe keyword, add type_id() and any() implementations, and rename the old any to any_ref.
Calls to any must be changed to any_ref

Points of discussion:

Should renaming any be avoided and instead name the new method any_box?
Could there be a performance regression from avoiding the unsafe? I doubt it, but this change does seem to introduce redundant checks.
Could/should is and type_id() be implemented differently? For example, moving is onto Reflect as an fn(&self, TypeId) -> bool

Nice work!

Should renaming any be avoided and instead name the new method any_box?

I think that's fine; this naming scheme is clearer.

Could there be a performance regression from avoiding the unsafe? I doubt it, but this change does seem to introduce redundant checks.

I wouldn't accept this justification to make it unsafe, so I won't block on the answer here.

Could/should is and type_id() be implemented differently? For example, moving is onto Reflect as an fn(&self, TypeId) -> bool

I like the current design quite a bit; I think it's quite clear and should be easy to use.

Should renaming any be avoided and instead name the new method any_box?

I agree with the name change. Although, it should be noted that it goes against the convention we've established thus far (DynamicTuple::insert_boxed, DynamicStruct::push_box, etc.)

Could/should is and type_id() be implemented differently? For example, moving is onto Reflect as an fn(&self, TypeId) -> bool

I think it makes sense to move is to Reflect if it's given a default implementation. Otherwise, it's probably fine to just to reflect_value.type_id() == other_type_id.

I don't remember the conclusion: do we care about implementing Reflect for non-Rust types? If so, we should either split off type_id or have it return an Option.

Just a comment on the wording: To be consistent with the Rust API guidelines, I'd suggest calling the methods into_any(Box<Self>) -> Box<dyn Any>, as_any(&self) -> &dyn Any, and as_mut_any(&mut self) -> &mut dyn Any.
(That also allows you to deprecate the previous any method and add a blanket impl for a short transition period if that is at all needed.)

This PR is more or less blocked on the Unique Reflect RFC; that might wildly change what is necessary here/possibly obsolete this PR.

This PR is more or less blocked on the Unique Reflect RFC; that might wildly change what is necessary here/possibly obsolete this PR.

IMO we should move forward with this first and then refactor. This is a solid clarity win regardless, and reducing unsafe code is important enough that I don't want to want.

I'd be comfortable waiting for Unique Reflect for this, but if anyone else (@MrGVSV?) would also like to see this move forward first then I'll give this another pass and resolve my issues with it.

Yeah I think it makes sense to get this merged even before the RFC.

Mainly I want to redo is, type_id, and downcast to be clearer as to what they mean, probably reusing terminology from the Unique Reflect RFC. In fact I'll probably want to split them roughly like this:

I don't think these changes should be part of this PR. They add new functionality that isn't directly in attempts to make Reflect safe.

represents: is but for checking if this represents the given type (probably via repr_type_name comparison)
is: Add documentation clarifying that this refers to the underlying type, and what that means.

I really like the idea to include a represents method.

That's fair; I suppose fixing the API is what Unique Reflect is for. I'll start working on this soon.


Update swagger for microsoft.quota group quota

ARM (Control Plane) API Specification Update Pull Request

[!TIP]
Overwhelmed by all this guidance? See the Getting help section at the bottom of this PR description.

PR review workflow diagram
Please understand this diagram before proceeding. It explains how to get your PR approved & merged.

Purpose of this PR
What's the purpose of this PR? Check the specific option that applies. This is mandatory!

[ ] New resource provider.
[x] New API version for an existing resource provider. (If API spec is not defined in TypeSpec, the PR should have been created in adherence to OpenAPI specs PR creation guidance).
[ ] Update existing version for a new feature. (This is applicable only when you are revising a private preview API version.)
[ ] Update existing version to fix OpenAPI spec quality issues in S360.
[ ] Convert existing OpenAPI spec to TypeSpec spec (do not combine this with implementing changes for a new API version).
[ ] Other, please clarify:

edit this with your clarification

Due diligence checklist
To merge this PR, you must go through the following checklist and confirm you understood
and followed the instructions by checking all the boxes:

[x] I confirm this PR is modifying Azure Resource Manager (ARM) related specifications, and not data plane related specifications.
[x] I have reviewed following Resource Provider guidelines, including
ARM resource provider contract and
REST guidelines (estimated time: 4 hours).
I understand this is required before I can proceed to the diagram Step 2, "ARM API changes review", for this PR.

Additional information

 Viewing API changes
For convenient view of the API changes made by this PR, refer to the URLs provided in the table
in the Generated ApiView comment added to this PR. You can use ApiView to show API versions diff.

Suppressing failures
If one or multiple validation error/warning suppression(s) is detected in your PR, please follow the
suppressions guide to get approval.

Getting help

First, please carefully read through this PR description, from top to bottom. Please fill out the Purpose of this PR and Due diligence checklist.
If you don't have permissions to remove or add labels to the PR, request write access per aka.ms/azsdk/access#request-access-to-rest-api-or-sdk-repositories
To understand what you must do next to merge this PR, see the Next Steps to Merge comment. It will appear within few minutes of submitting this PR and will continue to be up-to-date with current PR state.
For guidance on fixing this PR CI check failures, see the hyperlinks provided in given failure
and https://aka.ms/ci-fix.
For help with ARM review (PR workflow diagram Step 2), see https://aka.ms/azsdk/pr-arm-review.
If the PR CI checks appear to be stuck in queued state, please add a comment with contents /azp run.
This should result in a new comment denoting a PR validation pipeline has started and the checks should be updated after few minutes.
If the help provided by the previous points is not enough, post to https://aka.ms/azsdk/support/specreview-channel and link to this PR.

Hi msyyc tadelesh do you mind taking a look at this pr? thanks!

Hi msyyc tadelesh do you mind taking a look at this pr? thanks!

Hi msyyc tadelesh, just FYI this PR in the private repo was signed off: https://github.com/Azure/azure-rest-api-specs-pr/pull/19705

Hi msyyc tadelesh do you mind taking a look at this pr? thanks!

Hi msyyc tadelesh, just FYI this PR in the private repo was signed off: Azure/azure-rest-api-specs-pr#19705

We are SDK owners. Since the PR is not marked with SDK breaking label, you need our approval to merge this PR.

Swaggers matched to that of approved one in  private repo.

Hi msyyc tadelesh do you mind taking a look at this pr? thanks!

Hi msyyc tadelesh, just FYI this PR in the private repo was signed off: Azure/azure-rest-api-specs-pr#19705

We are SDK owners. Since the PR is not marked with SDK breaking label, you need our approval to merge this PR.

thanks! just to confirm do you mean this pr NOT need your approval to merge?


gl cann't surpport chinese

after type gl

The current visual range implementation doesn't handle non-ascii characters. Visual surround with emphasis/bold/strikethrough also doesn't work for all characters. I'll look into fixing this.

@PhoenixPtt The current visual range implementation doesn't handle non-ascii characters. Visual surround with emphasis/bold/strikethrough also doesn't work for all characters. I'll look into fixing this.

thanks for your reply!


views for multiple envs

I use multiple environments for different trials and modifications of my model trainings.
Usually I run in the 'main' environment, fork it when it is complete and start a new training in the 'main' environment. This way, I only define views in the main environment and once I fork the environment, the currently selected view becomes the 'only' view for the fork.
While this setup works quite fine, I do feel the current way of handling views is quite limiting:

If I accidently drag one of the panels, distorting the view in one of my environments, I lost that view on the data. As these forked environments do not have the same saved views, I have to recreate it.
If you plot directly in different environments, but want to have the same views for different envs, the only possible way as of now is to recreate your view in each environment.

I feel there are 2 ways you could go about fixing this:

Implement something like global views, that work for any environment.
While this might seem weird at first, because not every environment has the same panels, it does have the merit of being useful when comparing 2 environments. The global views could namely be created when comparing env A with env B, saved, and then reused at a later stage when comparing env C with env D.
Implement a way to copy over views from one environment to another. This is probably easier to implement, but would not help when comparing environments.

Hi @0phoff - I definitely see where you're coming from with this one. While I see the merit of having global views, I feel it becomes a UX issue either clouding an environment's view list with a bunch of views unrelated to that environment or it requires coming up with a design that allows one to easily mark a view as global to be shared.
Thus I feel like a copy view function would probably be the better approach. How would you suggest trying to fit the old view into the new environment? Are you using the same window ids? The same chart titles?
To solve the latter issue with the copy approach, I feel it would be simplest to just allow a user to use the union of the views of the environments being compared. Would that improve the workflow?

I use the same window IDs, as it is just the same script running with eg. different parameters or different input data, so copying views would indeed be easy here.
You could check which windows are actually in the new env when copying over a view, but that would be somewhat limiting as you could not copy over the view before all the panels are created. (eg. I run tests every few epochs, so the testing panels are not yet created upon startup)
I think the best approach would be to just copy over the view with all existing panel IDs, and leave it up to the user to integrate new panels into that view etc.
With union of the views you mean that all the views of the envs being compared can be selected from the dropdown? That would indeed solve most use cases I can see, without being too complicated to implement!

I think this issue can be split up in 2 parts:

[ ] Allow a user to copy over views from one env to another
[ ] When comparing envs, allow the user to select any of the views from the different envs that are being compared.

If you manage to implement these 2 things, that would solve my issues and I would be an extremely happy user! :yellow_heart:

@JackUrb This feature is achievable by exposing the fork functionality to the visdom python client API.
We could have a env where we keep some windows placeholders, with the right window positions, let's call it A.
If we fork env A to env B, the latter would keep the windows positions. We would be limited to have the same windows id to have everything ordered but I think that's fine. In a perspective where I need to trace data and I want to present the data nicely this would solve my problem by having a env where the view is already configured.
Would you guys accept a MR to expose the UI fork functionality in a python method?

Hi @ricardofbarros - I'm open to accepting a feature exposing the fork to the python backend, but ultimately I don't think that covers the real requirements of this feature. The views would ultimately be copies, and changes to one will not apply to the other. Plus you would still only be copying the current view on a copy, rather than all views for an environment. All of this points to needing higher level control over the views dict to cover the full functionality.
That being said I see there being value to forking envs from the API regardless.

@JackUrb I see, yeah this would only work for the selected view for a given env. And yes the view wouldn't be "global". But this is a first step and enables somewhat this feature intended.
I'll try tackle exposing the fork on the python backend and creating the client method.

Forking a view from your code would actually completely solve my particular issue/annoyance with visdom.
I understand that it is not completely the same as what I was describing above, but if that is too difficult to achieve, feel free to close this once forking is implemented! :)


robosense_simulator: 1.0.0-1 in 'melodic/distribution.yaml' [bloom]

Increasing version of package(s) in repository robosense_simulator to 1.0.0-1:

upstream repository: https://github.com/tomlogan501/robosense_simulator.git
release repository: https://github.com/tomlogan501/robosense_simulator_release.git
distro file: melodic/distribution.yaml
bloom version: 0.9.3
previous version for package: null

CI failed here because the source entry version has to be a branch, not a tag.

Also, how does this relate to #24293 ?  They look to be the same package.  If that's the case, please close one in favor of the other.


Put snockets & io-manager in a seprate package

This will be useful for the benchmarking team.

Thank you, @coot !


New feature for Dropdown: keyboard navigation for accessibility compatibility

New accessibility features for Dropdown

when open, pressing up/down arrow keys will allow users to select menu items;
Esc key now closes last open nested dropdown menu;
while open, pressing up/down arrows the component will prevent the default scroll behavior
opening the dropdown, the browser will focus the first menu item (if any) OR the first focusable element when something like a form is inside the menu
closing the dropdown, the browser will focus the triggering element (element with data-toggle="dropdown" attribute)

Please test latest master both V3/V4 and report any issue.

Update, the Esc does not close the form dropdown. Working on a fix.

Fixed the issue, I will wait for some confirmation before we go forward with the next release tag.

Great work, @thednp
I just checked out master and really like those changes except

opening the dropdown, the browser will focus the first menu item (if any) OR the menu itself when something like a form is inside the menu

I dislike first menu item having focus after opening (navbar) dropdown for me. It's mainly a styling issue which doesn't fit my taste tbh.
How about first menu item gets (accessibility) focus with a single key "down" press?
Looking forward to others joining the conversation as well :)

@midzer, you don't have to use focus styling for your menu items on @media all, you can use them only for screen readers.

Well let me join this discussion.
First of all I like this new feature, thanks @thednp for improving this library each time!
I you ask me I would say focussing the first dropdown item is not a good idea. I don't like the styling either and I think it is confusing for the user and for me as well. Altough there is a differnce, I'm in doubt the first item is active or just focussed.
But, when I take the example dropdowns of the homepage, I like the automatically focus on the input email using the form Dropdown

@Vuurvlieg & @midzer I found that when the Enter key is pressed, browsers will automatically focus first menu item, seems to be the default behavior, so we only need to focus an INPUT if any. If you open the dropdown with click, it will only focus the first input if any, but if it's a regular menu, it will only allow to go up and down with arrow keys.
Please test the latest master.

Interesting find about browser behaviour on those dropdowns. Got to keep this one in my mind.
Latest changes LGTM :+1:

Latest changes does work for me, thanks!

Sorry to bring this up again.
But for me Keydown is not working any more after opening Dropdown with Enter key.
Only Tab seems to work.
Do we have a regression here?
Cheers
midzer

@midzer, after pressing Enter on a dropdown you need to Tab inside, then use arrows to navigate up/down. We don't change how browsers behave in regards to focus except when we have a form inside the dropdown-menu. So we're not doing anything special here.

Okay. If this behaviour is intended then no problem.
I just had a review for accessability of a website by a person who uses a screenreader.
He argued, having the possibility to navigate down after Enter key would be better for him.
But there is no standard for this i guess.

That was our initial code design, but many devs here argued against it, because w3c standards leave open to users to navigate at will the dropdown.

I'm just learning to improve accessibility on my sites.
Please check out https://inclusive-components.design/menus-menu-buttons/#keyboardandfocusbehavior
Maybe we can start a new discussion with the community about it.

That looks to me like a great idea for out component, but it's still an opinion. My concern born with this thread is that we code a new behavior, w3c changes the expected behavior, Chrome and Firefox will quickly follow and we're stuck in the swamp.


[PF-2478] Only run checks when PR targets default branch

Only run PR checks when the PR targets primary/default branch
currently, all PRs (irrespective of the branch they target) automatically trigger PR checks. This is unnecessary and may cause the checks to be queued up on GitHub runner.
ref -

https://github.com/DataBiosphere/terra-workspace-manager/pull/1061
https://broadworkbench.atlassian.net/browse/PF-2478

Skipping this to minimize unintended impact on repos mostly worked on by Broad team


Support for nested feature branches

As a user working on a feature that depends on another feature currently under review
I want to be able to cut feature branches off other feature branches and sync them properly
So that my development pace is not slowed down by having to wait until the features that my new features depend on ship.

[ ] git hack my-feature dependent-feature cuts the my-feature branch off the dependent-feature branch, not the main branch
[ ] git sync dependent-feature first merges the main branch into the dependent-feature branch, then the dependent-feature branch into the my-feature branch.
[ ] git ship dependent-feature ships the given branch, then adjusts all dependent branches like my-feature to be cut directly off the main branch
[ ] git rename-branch dependent-feature properly updates the branch name in the dependency list
[ ] git new-pull-request sets the branch to merge into to dependent-feature instead of main
[ ] git-prune-branches doesn't prune branches that other branches depend on

We want to provide a robust and safe solution for our branching model:

don't allow shipping branches which depend on unshipped branches
when shipping a branch that has dependent branches, update the dependent branches to be dependent on main now.
sync branches in the order in which they were cut

In order to achieve that, we need to know the exact hierarchy of branches.

Preliminary research indicates that Git treats all branches as equal: branch A can be seen as cut from branch B, or vice versa. In our branching model feature branches are not equal. If feature branch B is cut from feature branch A, this relationship is not reciprocal, i.e. feature branch A shouldn't be seen as cut from feature branch B.
git reflog -g <branch-name> | grep 'branch: Created from' | cut -d ' ' -f 6 sometimes prints the name of the branch from which the given branch was cut. Sometimes it just prints HEAD though, which isn't helpful.
Also, the reflog seems only available on the local machine, and it only spans a certain number of days before it gets garbage collected.
Git does therefore not reliably provide the needed exact and reliable hierarchy of branches.
Achieving this seems only possible if we keep a dedicated log of that information on our side.

Currently, the branch hierarchy list needs to answer the following questions:

what is the parent for branch X?
what are the dependents branches for branch X?

We have discussed two ways to implement our branch hierarchy list:

create a new orphaned branch called gt-data (or something similar) that contains files which describe the branch hierarchy list.

can answer all questions
is flexible and extensible
can be added/removed at any time
can be augmented with information queried from the user
format can be changed over time
but introduces a new branch, which pollutes branch lists

create intermediate commits that encode this information in their name

Git resolves all hierarchy information for us
can not answer easily which branches depend on the given branch
if there is ever a single non-squash commit, the commit history on main is forever tainted with an old commit
impossible to update the storage format for older entries

(2) seems to have too many shortcomings, so (1) seems the way to go.

After talking more about this:

we are building a cache of information about which branch has which other branch as a parent. In the case that branches f1 and f2 are cut from main, and f3 is cut from f2, this cache would look like:
f1: main
f2: main
f3: f2

Querying this cache can be done through grepping for <branchname>: for branches that were cut from our branch, and : .* <branchname> for the branch that our branch was cut from.

the cache is automatically populated through git hack <branchname> <parent-branchname>

if cache information isn't available, we query the user for the branch hierarchy. We can do an number of analytics to infer the "most likely correct" branch setup, but the user should confirm it.

This would be very useful!
What do you think of when running git sync dependent-feature having my-feature not change? Then running git sync my-feature will sync my-feature with dependent-feature. It might make more sense if another developer also has a branch cut from dependent-feature and also deeper trees of dependencies.
I think the cache design will also be good for storing the configuration including the main branch and perennial branches. Maybe configuring git town would simply be creating the orphan branch and putting the configuration there.

This feature is implemented.


redeploy container with destroing

Very need option which perfom full redeploy of the service.
At this moment when i press restart what's going on: stop service, start service from OLD image
But i need a button for full restart, with destoying old container and starting new one.
The closest analogue is "redeploy" button on Tutum or Docker.cloud.
See pic.

Restart is restart; containers are not created or destroyed.  It sounds like you want the Upgrade action.

@vincent99 maybe you are right. I just need a button with full-cycle redeploy/upgrade like in docker.cloud.
At this moment i have around 25 containers with services: webui, 3 databases, backends, frontends, backend workers, rpm builders, etc.
From time to time i commit changes into the code and i need full redeploy of the service, e.g:

stop container
pull new image
remove stopped
run new

What i'm doing now, when i need full redeploy:

remove old image by hands
clone container
stop. delete. purge old container
start cloned

Again, upgrade:

Thanks you!
It was not obvious!


update LibEBC

Closing this one as LibEBC is no longer used https://github.com/mull-project/mull/pull/984


Dependencies menu includes dev-dependencies

Hi!
I don't know if its intended, but it seems that the dependencies section includes dev-dependencies as well. It is a bit confusing in the sense that one might expect all of these dependencies being pulled in into their project even if thats not the case.
I'd vote to either have two sections (dependencies and dev dependencies) or just to show the regular dependencies in that section. Or maybe add a small "dev" flag to the dev ones?

I agree that this is confusing.
For example, it makes it look like byteorder 1.0.0 is depending on unstable 0.x crates, even though those are just dev-dependencies.

Triage: This could be fairly easy to do, maybe something to think about as part of #740

dev dependencies are flagged:


Installer detects Delphi XE7 as XE8

Wrong detection of Delphi XE7 as XE8 version and may be some others.
This particular registry path \Software\Embarcadero\BDS\13.0 is not used and there is no such version as XE9, because 10 Seattle is right after XE8.
So XE paths in uDelphiInstallationCheck.pas should be like that
XE    '\Software\Embarcadero\BDS\8.0',
XE2    '\Software\Embarcadero\BDS\9.0',
XE3    '\Software\Embarcadero\BDS\10.0',
XE4    '\Software\Embarcadero\BDS\11.0',
XE5    '\Software\Embarcadero\BDS\12.0',
XE6    '\Software\Embarcadero\BDS\14.0'
XE7    '\Software\Embarcadero\BDS\15.0',
XE8    '\Software\Embarcadero\BDS\16.0',
10 Seattle    '\Software\Embarcadero\BDS\17.0'

Thank you, fixed.

Sorry, Installer.exe is still not fixed and I can't just build it because of #16.


IOS (Xcode) does not compile

Godot version
3.4 Beta 3 [EDIT]: Mono (using c# only)
System information
Mac Mini M1 -> IOS
Issue description
When trying to compile and deploy to a device, Xcode will not compile, and lists 100+ errors.

Steps to reproduce
Export a project to iOS from Godot 3,4 beta 3, on Mac M1.
Try to deploy to device ( iPhone or iPad)

Minimal reproduction project
No response

Did you export a project that uses Mono?

Did you export a project with a Mono-enabled editor?
Also, can you reproduce this on 3.3.2 or 3.4beta2?

Beta 2 works, (besides other unrelated there are other errors)
I Export from the Official Godot 3.4 Beta 3, I don't think I understand the editor question.

I Export from the Official Godot 3.4 Beta 3, I don't think I understand the editor question.

Godot has non-Mono and Mono editor builds. Non-Mono builds can only use GDScript and GDNative, whereas Mono builds can use GDScript, C# and GDNative.
If your project doesn't use any C# scripts, you should use a non-Mono build.

I Export from the Official Godot 3.4 Beta 3, I don't think I understand the editor question.

Godot has non-Mono and Mono editor builds. Non-Mono builds can only use GDScript and GDNative, whereas Mono builds can use GDScript, C# and GDNative.
If your project doesn't use any C# scripts, you should use a non-Mono build.

Sorry for not being clear. It's the mono build, I use only c# scripts.
(I am trying to get on the beta, because of linker errors in the stable 3.3 that creates crashes on Ad Hoc IOS builds)

It seems to happen for both MsBuild and Dotnet cli
The exports are unusually fast (compared tostable and 3.4 beta 2) , maybe indicating that something is not being built/exported?

Additional information:
in 3.4 beta 3 mono :
When I choose the build method, I do not see the names of the build tools, I see numbers. (see image)
By trial and error I found that
0 is MsBuild
3 is dotnet cli
I also uninstalled all dotnet sdk's and installed only 5.0.
Dotnet still build and run my Godot projects from the editor in editor, but exports are missing the *.xcframework files.

When I choose the build method, I do not see the names of the build tools, I see numbers. (see image)

This happens when editor can't load core mono libs (nothing Mono related will work in this case), what's in the editor logs (it should have errors on editor startup).

When I choose the build method, I do not see the names of the build tools, I see numbers. (see image)

This happens when editor can't load core mono libs (nothing Mono related will work in this case), what's in the editor logs (it should have errors on editor startup).

Ok, but all the c# scripts compile and run fine from the editor, so some parts are working.

Ok, but all the c# scripts compile and run fine from the editor, so some parts are working.

That's strange, maybe it's only Mono editor plugin fails.
Editor config is in ~/Library/Application Support/Godot/editor-settings-3.tres, also try removing .import and .mono hidden folder from your project, maybe something from the previous beta is causing issues.
Mono logs are in ~/Library/Application Support/Godot/mono/mono_logs, and try running editor from the terminal, instead of using .app (./Godot.app/Contents/MacOS/Godot --path path_to_your_project --editor) it might print something useful.
3.4 beta 3 seems to be running fine on my M1 MacBook Air.

3.4 beta 3 seems to be running fine on my M1 MacBook Air.
Export and run and device from Xcode too?

(I'm trying the above tips now)

Export and run and device from Xcode too?

I have tested, with official beta 3 editor and templates:

Exporting project with C# scripts (I have .NET 6.0.100-preview.5.21302.13 installed and "dotnet CLI" selected in the Godot editor).
Building for the iOS device. I don't to have any device on hand to test if it's running.
Building and running iOS app on macOS.

All frameworks seem to be in place.

Exported test project contents for the reference.
.
├── MonoTest
│   ├── Images.xcassets
│   │   ├── AppIcon.appiconset
│   │   │   ├── Contents.json
│   │   │   ├── Icon-1024.png
│   │   │   ├── Icon-120.png
│   │   │   ├── Icon-76.png
│   │   │   └── sizes
│   │   └── LaunchImage.launchimage
│   │       ├── Contents.json
│   │       ├──<EMAIL_ADDRESS>│   │       ├──<EMAIL_ADDRESS>│   │       ├──<EMAIL_ADDRESS>│   │       ├──<EMAIL_ADDRESS>│   │       ├── Default-Landscape-X.png
│   │       ├── Default-Landscape.png
│   │       ├──<EMAIL_ADDRESS>│   │       ├──<EMAIL_ADDRESS>│   │       ├── Default-Portrait-X.png
│   │       ├── Default-Portrait.png
│   │       └──<EMAIL_ADDRESS>│   ├── MonoTest-Info.plist
│   ├── MonoTest.entitlements
│   ├── dummy.cpp
│   ├── dylibs
│   │   └── empty
│   ├── en.lproj
│   │   └── InfoPlist.strings
│   └── export_options.plist
├── MonoTest.pck
├── MonoTest.xcframework
│   ├── Info.plist
│   ├── ios-arm64
│   │   └── libgodot.a
│   └── ios-arm64_x86_64-simulator
│       └── libgodot.a
├── MonoTest.xcodeproj
│   ├── project.pbxproj
│   ├── project.xcworkspace
│   │   ├── contents.xcworkspacedata
│   │   ├── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── xcuserdata
│   │       └── bruv.xcuserdatad
│   │           └── UserInterfaceState.xcuserstate
│   └── xcshareddata
│       └── xcschemes
│           └── MonoTest.xcscheme
├── lib-aot-MonoTest.xcframework
│   ├── Info.plist
│   ├── ios-arm64
│   │   └── lib-aot-MonoTest.a
│   └── ios-arm64_x86_64-simulator
│       └── lib-aot-MonoTest.a
├── libmono-ee-interp.xcframework
│   ├── Info.plist
│   ├── ios-arm64
│   │   ├── empty
│   │   └── libmono-ee-interp.a
│   └── ios-arm64_x86_64-simulator
│       ├── empty
│       └── libmono-ee-interp.a
├── libmono-icall-table.xcframework
│   ├── Info.plist
│   ├── ios-arm64
│   │   ├── empty
│   │   └── libmono-icall-table.a
│   └── ios-arm64_x86_64-simulator
│       ├── empty
│       └── libmono-icall-table.a
├── libmono-ilgen.xcframework
│   ├── Info.plist
│   ├── ios-arm64
│   │   ├── empty
│   │   └── libmono-ilgen.a
│   └── ios-arm64_x86_64-simulator
│       ├── empty
│       └── libmono-ilgen.a
├── libmono-native.xcframework
│   ├── Info.plist
│   ├── ios-arm64
│   │   ├── empty
│   │   └── libmono-native.a
│   └── ios-arm64_x86_64-simulator
│       ├── empty
│       └── libmono-native.a
└── libmonosgen-2.0.xcframework
    ├── Info.plist
    ├── ios-arm64
    │   ├── empty
    │   └── libmonosgen.a
    └── ios-arm64_x86_64-simulator
        ├── empty
        └── libmonosgen.a

34 directories, 60 files

Export and run and device from Xcode too?

I have tested, with official beta 3 editor and templates:

Exporting project with C# scripts (I have .NET 6.0.100-preview.5.21302.13 installed and "dotnet CLI" selected in the Godot editor).
Building for the iOS device. I don't to have any device on hand to test if it's running.
Building and running iOS app on macOS.

All frameworks seem to be in place.
Exported test project contents for the reference.

You obviously get the missing frameworks such as  lib-aot-MonoTest.xcframework.
I uninstalled mono and then reinstalled it , but the editor still shows numbers, not names, and export does not include the frameworks ( except the project framework), so I'm unsure of what to try next.

Run the Godot editor from the terminal:

... and try running editor from the terminal, instead of using .app (./Godot.app/Contents/MacOS/Godot --path path_to_your_project --editor) it might print something useful.

Export the game and once it's finished, copy and paste the full terminal output here.

Solved! Thank you very much for guiding me to diagnosing the problem.
The log showed problems with creating directories, so thinking it was a file access problem, I deleted Godot, downloaded again, and got a prompt when starting it to open it even though it was downloaded. Export now works fine.
The problems with the Ad Hoc IOS builds, has not gone away. As far as I can tell, my problem lies with using signals with parameters, but I need to do some more testing.
Stable 3.3 Ad Hoc builds has a bug, that crashes IOS when using certain c# features (Random async etc. ) but Signals (without parameters) was ok. I will dig up the relevant bug report, but I am unsure of witch one I shall pick:
https://github.com/godotengine/godot/pull/49248
https://github.com/godotengine/godot/issues/48701
https://github.com/godotengine/godot/issues/40757
Current path: /
ERROR: Could not create directory: user://logs
   at: make_dir_recursive (core/os/dir_access.cpp:176)
Godot Engine v3.4.beta3.mono.official.8db0bd442 - https://godotengine.org
OpenGL ES 3.0 Renderer: Apple M1
OpenGL ES Batching: ON
ERROR: Could not create directory: res://.mono

In the Xcode project, I notice some files marked in red, it this important?
App runs on device, but crashes in Ad Hoc mode

How was this solved?

How was this solved?

As described above in https://github.com/godotengine/godot/issues/51526#issuecomment-899031658
I don't know what went wrong with the initial install.


Combined with LLM in a flash

https://arxiv.org/abs/2312.11514
Recently, LLM in a Flash was proposed, a method to use Flash memory to run models that exceed DRAM.
If I'm right, I think we can apply these technologies simultaneously.
If that were possible, I think it would make running very large models easier.

Yes, this is in our plan. Thank you for your attention. :)

Can we see the task in the roadmap such as https://github.com/orgs/SJTU-IPADS/projects/2/views/3?
Unfortunately, I could not find a related task. ;(

Hello, although LLM in a flash is not currently in Roadmap, we are indeed working on it. Please stay tuned. At present, our plan is to release it together with relu-mistral-7B.

Can we see the task in the roadmap such as https://github.com/orgs/SJTU-IPADS/projects/2/views/3? Unfortunately, I could not find a related task. ;(

I found a paper and a GitHub address that can be reasonable even if there is no high-performance GPU (e.g. V100, A100, H100) using Mistral-7B. This paper was uploaded to ARXIV on January 13, 2024 by the Yandex Institute. The title is "FAST INFERERENCE OF MIXTURE-OF-EXPERTS Language Models with OFFLOADING". However, this paper deals with the model transmission environment between Dram-to-GDDR, not Flash-to-DRAM. However, I am thinking about Active Neuron, which is a common factor technology. For example, we use MoE (MIXTURE-OF-EXPERTS), a model architecture type that only activates a part of the model layer for a given input.

Paper – https://arxiv.org/abs/2312.17238
Code – https://github.com/dvmazur/mixtral-offloading

Please stay tuned. At present, our plan is to release it together with relu-mistral-7B.


Remove some additional lyft references to fix end2end tests

Signed-off-by: Katrina Rogan<EMAIL_ADDRESS>TL;DR
Remove some additional lyft references to fix end2end tests
Type

[x] Bug Fix
[ ] Feature
[ ] Plugin

Are all requirements met?

[ ] Code completed
[x] Smoke tested
[ ] Unit tests added
[ ] Code documentation added
[ ] Any pending items have an associated Issue

Complete description
How did you fix the bug, make the feature etc. Link to any design docs etc
Tracking Issue
https://github.com/flyteorg/flyte/issues/844
Follow-up issue
NA

mind re-approving @kumare3 @EngHabu


Support customized header fields

support customized header fields

Thanks!

How do you add the headers to the download request. I have tried a few ways and then have all ended in the server not seeing the headers I assigned.

@oscartbeaumont should like this
var Downloader = require('mt-files-downloader')
var downloader = new Downloader()
downloader.setOptions({headers: [key: value]})
As this PR is few months ago and I already forgot so if it is not working please check the source in this library. Thanks


Add missing district offices

Added missing district offices for Senators Scott and Padilla, sourced from their website footers.
Ran geocoder to get lat/lon
Resolves #792

@JoshData is there anything else I should do to get this ready for merging?

Thanks. I deleted the stray file alternate_formats/legislators-district-offices.json before merging.


Add performance tips documentation.

This adds documentation of the most common flags associated with
achieving higher levels of performance from Numba compiled code.

Ready to merge, pending #2748


Implement OnyxPagination classic mode

Open questions:

[ ] @jannick-ux For bigger numbers, is it okay for the buttons to not be square anymore
[ ] @jannick-ux Is the amount of shown page buttons dynamic? And if yes, how does it behave?
[ ] @jannick-ux What is the use-case of the "classic" mode vs the "modern" mode
[ ] @jannick-ux How can you jump large gaps, e.g., having 200 pages: how to go from 1 to 100?

Why?
Pagination is used to navigate through multiple pages of data.
This is the implementation ticket for the classic mode of the OnyxPagination.
Design
Figma
Acceptance criteria

[ ] Create OnyxPagination base component

[ ] The modelValue prop is mandatory, when the component is not in skeleton mode

[ ] Arrow buttons are disabled, if clicking them wouldn't change the selected page

[ ] Based on the available width and the given page count, the page buttons are rendered

[ ] When there is not enough space, one or more "…" (more pages in between) indicators (non-interactive) are shown

the first and last page number button should always be shown
the current page is always in the middle, like in CoreUI:

the min width fits five segments: < 1 ... 6 ... 99 >

[ ] Arrow Keys can be used to move focus inside the group

[ ] Arrow Buttons trigger a page change => current page plus/minus 1

[ ] only click, not focus changes page selection

[ ] The accessibility true should look like the following:

A group, labelled "Pagination":

a list with listitems:

a button, labelled "Previous page"
buttons, labelled "Page X"
a text "…" (visually-hidden: "More pages in between")
a button, labelled "Next page"

Definition of Done

The following component requirements are implemented:

[ ] skeleton
[ ] density
[ ] example usage added to apps/demo-app/src/views/HomeView.vue

[ ] covered by component tests
[ ] screenshot tests are updated
[ ] follow-up tickets were created if necessary
[ ] updated version + documentation is deployed
[ ] Storybook can show the feature
[ ] Storybook code snippet of new/changed examples are checked that they are generated correctly
[ ] Namings are aligned with Figma

Approval

Storybook
Deployed Docs
[ ] approved by designer @jannick-ux
[ ] approved by dev

Implementation details
There are two types: modern and classic.
The two Pagination types are implemented as individual support components and are "proxied" by the actual OnyxPagination.
export type OnyxPaginationProps = {
  /**
   * The different style variants of the pagination:
   * `classic`: A pagination with many numbered page buttons surrounded by arrow buttons to navigate to pages.
   * `modern`: A less space consuming pagination, which provides a dropdown and arrow keys for the page selection.
   */
   type: 'modern' | 'classic';
   /**
    *  The maximum number of pages
    */
   pages: number;
   /**
    *  The currently selected, zero-based page index
    */
   modelValue?: number;
}

Reference implementations

https://design-system.w3.org/components/pagination.html
https://www.telerik.com/kendo-vue-ui/components/grid/paging/#toc-pager-types
https://core-ui.schwarz/components/scu-pagination

Applicable ARIA Pattern

no pattern available, but a similar component exists at https://design-system.w3.org/components/pagination.html

@mj-hof @jannick-ux We need some more input from you before we feel confident estimating and starting this story.


mgmt-sqlvirtualmachine don't work with DefaultAzureCredential()

Package Name: azure-mgmt-sqlvirtualmachine
Package Version: 0.5.0
Operating System: Windows 10 and Fedora 37
Python Version: 3.11.2

Describe the bug
The package can't use DefaultAzureCredential() logged in with az-cli. If trying to run the way it's shown in the examples it's raising an exception.
AttributeError: 'DefaultAzureCredential' object has no attribute 'signed_session'
Other clients like ComputeManagementClient, ResourceManagementClient and NetworkManagementClient work with this authentication.
To Reproduce

Log in with 'az login'
Run code shown below

from azure.identity import DefaultAzureCredential
from azure.mgmt.sqlvirtualmachine import SqlVirtualMachineManagementClient

client = SqlVirtualMachineManagementClient(
        credentials=DefaultAzureCredential(),
        subscription_id="MY_AZ_SUBSCRIPTION",
   )

response = client.sql_virtual_machines.list()
    for item in response:
        print(item)

Expected behavior
List sql virtual machines from subscription.

Thanks for reaching out.
Yes. azure-mgmt-sqlvirtualmachine 0.5.0 does not work with azure-identity library.
Please use the latest one 1.0.0b5 instead.


[bug]: open channel tx never reached mempool, but sats in limbo, i used abandon channel and funds arent back

Background
running umbrel node, i opened a channel as normal, but it was offline straight away, never went online, so i tried to force close it but i wasnt getting a blocks till maturity as i normally do, so i checked the tx id's and they never reached the mempool, not the channel point nor the closing tx, so i decided to abandon channel because the tx was never broadcast, however the funds are not back in my wallet, nor are they now in the pending channels list, are they lost?
Your environment

version of lnd 0.16.4
which operating system (umbrel node 0.5.4)

view of waiting channels before abandon
"waiting_close_channels": [
{
"channel": {
"remote_node_pub": "03382704812aca55bf853b353ecd3edef7e16a9420d7beb7e7d6b6c7fe2082252a",
"channel_point": "06bb248c173064e4f14cd0ec4b08697a588f9f8ad6c1c86c81b10ffda93a7992:1",
"capacity": "2000000",
"local_balance": "1996530",
"remote_balance": "0",
"local_chan_reserve_sat": "20000",
"remote_chan_reserve_sat": "20000",
"initiator": "INITIATOR_LOCAL",
"commitment_type": "ANCHORS",
"num_forwarding_packages": "0",
"chan_status_flags": "ChanStatusBorked|ChanStatusCommitBroadcasted|ChanStatusLocalCloseInitiator",
"private": false
},
"limbo_balance": "1996530",
"commitments": {
"local_txid": "31c7a985cbf0726c91d45cff64929b77dc7c5d064e10f65c4c2d6d7f3f4e3d10",
"remote_txid": "8da987cb92383c8274f00f1edea02fd8ec9f3a781a0f101f5ad82c9c095d08ed",
"remote_pending_txid": "",
"local_commit_fee_sat": "2810",
"remote_commit_fee_sat": "2810",
"remote_pending_commit_fee_sat": "0"
},
"closing_txid": "31c7a985cbf0726c91d45cff64929b77dc7c5d064e10f65c4c2d6d7f3f4e3d10"
}
Steps to reproduce
open channel to node, channel point tx never broadcasts, attempt to force close channel, abandon channel
Expected behaviour
channel shouldnt show up in the first place and funds shouldnt be in limbo, if channel showing then force close should remove channel and put funds back in wallet
Actual behaviour
funds nowhere to be found

Hi @bedair81, thank you for raising this issue. I have some questions:

Do you know if the initial channel opening transaction was confirmed on chain? If so could you provide the transaction id?
What does lncli pendingchannels show now?
Did abandoning the channel succeed, meaning, did you provide any specific flags to abandon channel?
If you want you could also provide your lnd.log file here so we can take a look at it.

Hi man, thanks for getting back to me.

As far as I am aware, the opening tx was never confirmed on chain, in fact it was never broadcast on chain at all, I do not see any tx coming out of my wallet for the 2 million sat amount to that channel. The tx id that the channel thought belonged to it is this: 06bb248c173064e4f14cd0ec4b08697a588f9f8ad6c1c86c81b10ffda93a7992, however this is not on any mempools, including my own.
This is what my pendingchannels command shows, however this is a different channel which I force closed, you can see there blocks till maturity is populated and I should have access to this 2million sat payment in 4/5 days, the other one the channel never opened in the first place, which is the main problem.

{
"total_limbo_balance": "1998002",

"pending_open_channels": [

],

"pending_closing_channels": [

],

"pending_force_closing_channels": [

    {

        "channel": {

            "remote_node_pub": "020d1617e27ac022395352f2b3774969593d3d6ddff6fb117d820a9dda8da45217",

            "channel_point": "de7e9273bc94b168b4d41a9ec7b2c8337b3618ebb3a0cba6b07d10add62d3108:0",

            "capacity": "2000000",

            "local_balance": "1998002",

            "remote_balance": "0",

            "local_chan_reserve_sat": "0",

            "remote_chan_reserve_sat": "0",

            "initiator": "INITIATOR_LOCAL",

            "commitment_type": "STATIC_REMOTE_KEY",

            "num_forwarding_packages": "0",

            "chan_status_flags": "",

            "private": false

        },

        "closing_txid": "90dc639f592116c0520c2d969a6faae55e580786a18964cc5a4d8a0fa6dea77d",

        "limbo_balance": "1998002",

        "maturity_height": 805091,

        "blocks_til_maturity": 892,

        "recovered_balance": "0",

        "pending_htlcs": [

        ],

        "anchor": "LIMBO"

    }

],

"waiting_close_channels": [

]

}

Abandoning the channel did succeed, I provided the I know what im doing flag to get it to go through since the tx hasn’t been broadcast, but the funds didn’t come back automatically, before I called the abandonchannel command the pending channels command above showed the total limbo balance as double what it is now, so the funds were in limbo before I abandoned it.
See attached, that’s as far back as it goes im afraid

Thanks for taking the time to help me out, I hope we can get the funds back :)
From: Slyghtning @.>
Date: Monday, 21 August 2023 at 10:06
To: lightningnetwork/lnd @.>
Cc: Ahmed Bedair @.>, Mention @.>
Subject: Re: [lightningnetwork/lnd] [bug]: open channel tx never reached mempool, but sats in limbo, i used abandon channel and funds arent back (Issue #7901)
Hi @bedair81https://github.com/bedair81, thank you for raising this issue. I have some questions:

Do you know if the initial channel opening transaction was confirmed on chain? If so could you provide the transaction id?
What does lncli pendingchannels show now?
Did abandoning the channel succeed, meaning, did you provide any specific flags to abandon channel?
If you want you could also provide your lnd.log file here so we can take a look at it.

—
Reply to this email directly, view it on GitHubhttps://github.com/lightningnetwork/lnd/issues/7901#issuecomment-1685941147, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A3K7BQABUFGJXJD3M655J23XWMQKPANCNFSM6AAAAAA3XSGTBA.
You are receiving this because you were mentioned.Message ID: @.***>

I think the log file upload failed. Could you try to drag-n-drop the file here?

Weird it looked fine on my end , I’ve attached it again here. If it doesn’t work again I’ll send it from my other email
From: Slyghtning @.>
Date: Monday, 21 August 2023 at 10:43
To: lightningnetwork/lnd @.>
Cc: Ahmed Bedair @.>, Mention @.>
Subject: Re: [lightningnetwork/lnd] [bug]: open channel tx never reached mempool, but sats in limbo, i used abandon channel and funds arent back (Issue #7901)
I think the log file upload failed. Could you try to drag-n-drop the file here?
—
Reply to this email directly, view it on GitHubhttps://github.com/lightningnetwork/lnd/issues/7901#issuecomment-1685998366, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A3K7BQEESHQI2DH5QJ64R73XWMUSZANCNFSM6AAAAAA3XSGTBA.
You are receiving this because you were mentioned.Message ID: @.***>

Sorry, I still don't see it. Are email attachments working here? Could you try to drag and drop the log file into the text box here?

 Could you check in the log directory if there are also older compressed logs ending in .gz. Could you send those as well?

lnd.log.3.gz
lnd.log.4.gz
lnd.log.5.gz
should be attached now, can you see them?

To me it appears that the funds you used to open the channel 06bb248c173064e4f14cd0ec4b08697a588f9f8ad6c1c86c81b10ffda93a7992:1 are already spent by you on a different channel: https://mempool.space/tx/dd70bb5cf7fcae24ac70271289ec7ef5ff3b284c4ed6a572d7aa888aee440173 - so the funds should appear in the sum of your on-chain and off-chain balances.
To provide more details, lnd.log.5.gz contains the following:
2023-08-19 11:01:18.830 [INF] FNDG: Generated ChannelPoint(06bb248c173064e4f14cd0ec4b08697a588f9f8ad6c1c86c81b10ffda93a7992:1) for pending_id(5d77abd09a2e4a5fdaac5610966bd37b335c0b53b390bd8495e94bcf37fc7e15)
2023-08-19 11:01:20.696 [INF] FNDG: Broadcasting funding tx for ChannelPoint(06bb248c173064e4f14cd0ec4b08697a588f9f8ad6c1c86c81b10ffda93a7992:1):<PHONE_NUMBER>0102c0d1702a8a8cfbe1a96c1061f8dbd22b9daf5be5cd91403f671585629232772b0000000000000000007f43cac21832410913be8df8bdb1a6dbf3b0edfc450b69afc53bf1c592309a2d00000000000000000002bc470200000000002251204e9da536d86df26b04467297b02d0b610f77630e9f7b33414f2b9bd7427f043c80841e0000000000220020942d296e3cf2dc216ca7c6b01a5dca633e0d5ed0a4ebc4ee15a2cdcb5e757c35014003f691c5decaa8c1b5189cdea0209737f7284bce2d43219ce41948382af4c3a1d2f3388d99a7a7dc12dd24ccad491592b6c5591cb3bad1b1781c44b785ff93e80140d89224ba38379ea91cb56f33e869a3c14fe925e7595e9e3b644ac539fdd059cc7d876ca969f44ec5fd1923009bff6bcc9dd9c90b7831b88ca4e1d193d2e184ff00000000

We can decode the funding transaction from the long hex string at the bottom with bitcoin-cli decoderawtransaction hex_string, which gives us:
{
  "txid": "06bb248c173064e4f14cd0ec4b08697a588f9f8ad6c1c86c81b10ffda93a7992",
  "hash": "b195663639c4b6ec23da524b5ed6c0898c6f7f7e5bcc8b98ec3d6f7fcf41a743",
  "version": 2,
  "size": 312,
  "vsize": 212,
  "weight": 846,
  "locktime": 0,
  "vin": [
    {
      "txid": "2b773292628515673f4091cde55baf9d2bd2dbf861106ca9e1fb8c8a2a70d1c0",
      "vout": 0,
      "scriptSig": {
        "asm": "",
        "hex": ""
      },
      "txinwitness": [
        "03f691c5decaa8c1b5189cdea0209737f7284bce2d43219ce41948382af4c3a1d2f3388d99a7a7dc12dd24ccad491592b6c5591cb3bad1b1781c44b785ff93e8"
      ],
      "sequence": 0
    },
    {
      "txid": "2d9a3092c5f13bc5af690b45fcedb0f3dba6b1bdf88dbe1309413218c2ca437f",
      "vout": 0,
      "scriptSig": {
        "asm": "",
        "hex": ""
      },
      "txinwitness": [
        "d89224ba38379ea91cb56f33e869a3c14fe925e7595e9e3b644ac539fdd059cc7d876ca969f44ec5fd1923009bff6bcc9dd9c90b7831b88ca4e1d193d2e184ff"
      ],
      "sequence": 0
    }
  ],
  "vout": [
    {
      "value": 0.00149436,
      "n": 0,
      "scriptPubKey": {
        "asm": "1 4e9da536d86df26b04467297b02d0b610f77630e9f7b33414f2b9bd7427f043c",
        "desc": "addr(bc1pf6w62dkcdhexkpzxw2tmqtgtvy8hwccwnaanxs209wdawsnlqs7q8c42mn)#vln6u5dg",
        "hex": "51204e9da536d86df26b04467297b02d0b610f77630e9f7b33414f2b9bd7427f043c",
        "address": "bc1pf6w62dkcdhexkpzxw2tmqtgtvy8hwccwnaanxs209wdawsnlqs7q8c42mn",
        "type": "witness_v1_taproot"
      }
    },
    {
      "value": 0.02000000,
      "n": 1,
      "scriptPubKey": {
        "asm": "0 942d296e3cf2dc216ca7c6b01a5dca633e0d5ed0a4ebc4ee15a2cdcb5e757c35",
        "desc": "addr(bc1qjskjjm3u7twzzm98c6cp5hw2vvlq6hks5n4ufms45txukhn40s6s0hpmlk)#gam9vtt2",
        "hex": "0020942d296e3cf2dc216ca7c6b01a5dca633e0d5ed0a4ebc4ee15a2cdcb5e757c35",
        "address": "bc1qjskjjm3u7twzzm98c6cp5hw2vvlq6hks5n4ufms45txukhn40s6s0hpmlk",
        "type": "witness_v0_scripthash"
      }
    }
  ]
}

If you check the two vins you see that they've been double-spent into the channel I posted further up.

Interesting, I've just added up all my tx amounts roughly and I think you might be right. What could have caused lnd to double spend the same utxo's for 2 different channels then?
Trying to understand whether its a bug or a mistake that I should be careful not to repeat again.
Also thank you very much for helping me out!! Send me an invoice and I'll gladly tip you :)

Thanks, I am glad I could help. You could donate the tip to the HRF which is supporting various Bitcoin projects. They accept lightning payments: https://hrf.org/btc


Anvil fork on ethers-rs failed

Component
Anvil
Have you ensured that all of these are up to date?

[ ] Foundry
[X] Foundryup

What version of Foundry are you on?
forge 0.2.0 (44f3a4b 2022-07-18T00:10:06.735136619Z)
What command(s) is the bug in?
No response
Operating System
Linux
Describe the bug
use ethers::utils::Anvil;
use eyre::Result;

#[tokio::main]
async fn main() -> Result<()> {
    let anvil = Anvil::new()
        .fork("https://mainnet.infura.io/v3/c60b0bb42f8a4c6481ecd229eddaca27")
        .spawn();

    Ok(())
}

return error
thread 'main' panicked at 'Timed out waiting for anvil to start. Is anvil installed?', /home/siew/.cargo/registry/src/github.com-1ecc6299db9ec823/ethers-core-0.13.0/src/utils/anvil.rs:180:17
But if run on terminal with anvil
anvil -f https://mainnet.infura.io/v3/c60b0bb42f8a4c6481ecd229eddaca27
without issue.
Infura RPC URL copy from https://github.com/gakonst/ethers-rs/blob/master/examples/ens.rs

This should be reported in the ethers-rs repository, not here


App crashes on loading the page second time with AirPlayRoutePickerView() Widget

Hi,
First of all thanks a lot for creating this package (turned out to be exactly what I wanted to finish my project) however I am having this issue where when I load the page with AirPlayRoutePickerView() Widget the first time it shows up but if I pop back and try to open the page again, app crashes, it happen every time.
Also the app crashes when the Widget is added by itself, I mean I had to put a boolean and do setState by putting Delay & checking if the player is initialized and playing OR I used your example code to check Platform Exception. But still it just the first time it shows up whenever I pop back and load the page again app would crash.
Any help would be appreciated.
Thank you
Jigar Kotak

I probably would have found a workaround but you can find a proper solution to it, I was going through the code and using breakpoints realized that the first time I build AirPlayRoutePickerView() Widget it builds it properly and when I try to build it second time it was trying to build FlutterAVPlayer() Widget instead and it was null so the app was crashing. So in the below file you see
if viewId == 1 it build the AirPlayRoutePickerView() else it would build FlutterAVPlayer() Widget and when I try to load the page second time the viewId is incremented, for now I have changed it to if viewId >= 1 and it works for my purpose but you can implement a proper fix for it.
Thank you
Jigar Kotak
//
//  SharePlatformViewFactory.swift
//  flutter_to_airplay
//
//  Created by Junaid Rehmat on 22/08/2020.
//
import Foundation
import Flutter
class SharePlatformViewFactory: NSObject, FlutterPlatformViewFactory {
var _messenger : FlutterBinaryMessenger
init(messenger: FlutterBinaryMessenger & NSObjectProtocol) {
    _messenger = messenger
}

func create(withFrame frame: CGRect, viewIdentifier viewId: Int64, arguments args: Any?) -> FlutterPlatformView {
    if viewId == 1 {
        let pickerView = FlutterRoutePickerView(frame: frame, viewIdentifier: viewId, arguments: args as! Dictionary<String, Any>, binaryMessenger: _messenger)
        return pickerView
    }
    else
    {
        let pickerView = FlutterAVPlayer(frame: frame, viewIdentifier: viewId, arguments: args as! Dictionary<String, Any>, binaryMessenger: _messenger)
        return pickerView
    }
}

func createArgsCodec() -> FlutterMessageCodec & NSObjectProtocol {
    return FlutterStandardMessageCodec.sharedInstance()
}

}

Thank you @JigarKotak7, for using my package and appreciating my efforts. You also really cut short my effort by debugging and identifying the issue with viewId. I have pushed a permanent fix and publishing an update to pub.dev as well. Please confirm when you can so that I can close this issue.


Add Checkbox and attempt at bootstrap toggle

I rule and have completed some work on Case Manager that's ready for review!
Added a checkbox to the patient_information partial and had a go at trying to replace the checkboxes with bootstrap toggle
This pull request makes the following changes:

Adds checkbox to patient_information
Mocks up potential code for replacing bootstrap checkboxes with bootstrap toggles on the patient information and search pages.

It relates to the following issue #s:

Fixes #365

Thanks for this @sco-bo ! I'll put the nail in the coffin this weekend.

Sounds good @colinxfleming. Looking forward to learning the best way to to approach this


Updating React version

Resolve issue #81

Sorry but this doesn't fix that. Please see the issue instructions :)

#90 fixed this.


ERROR: failed to solve: failed to compute cache key: failed to calculate checksum "/src/w64devkit.ini": not found

When running docker build -t w64devkit ., the following error shows up:
ERROR: failed to solve: failed to compute cache key: failed to calculate checksum of ref 76b4246f-5533-4f81-bb8c-192e65c3094a::jcdnanu2d8rzw0lxfj2xffw6m: "/src/w64devkit.ini": not found

Solution to fix:
Move the w64devkit.ini file from the top-most directory into ./src.

I had the same issue. I downloaded https://github.com/skeeto/w64devkit/releases/download/v1.20.0/w64devkit-1.20.0.zip, extracted the zip archive, entered the extracted archive and tried to run "sudo docker build -t w64devkit ."

When I open the ZIP archive you see, that w64devkit.ini is not in the right place.

Thanks, that clears things up: You're running Docker for no reason. That's
just a temporary, disposable build environment, but you've downloaded a
completed build. Just use it. No Docker necessary. If you want to build
from source, use the repository. I include all the necessary pieces to
rebuild from an existing build, mainly as a kind of documentation, but
that's not the intended use.


[Snyk] Fix for 1 vulnerabilities

Snyk has created this PR to fix 1 vulnerabilities in the npm dependencies of this project.
Snyk changed the following file(s):

package.json
package-lock.json

Vulnerabilities that will be fixed with an upgrade:

Issue
Score

Regular Expression Denial of Service (ReDoS) SNYK-JS-CROSSSPAWN-8303230
  828

[!IMPORTANT]

Check the changes in this PR to ensure they won't cause issues with your project.
Max score is 1000. Note that the real score may have changed since the PR was raised.
This PR was automatically created by Snyk using the credentials of a real user.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:
🧐 View latest project report
📜 Customise PR templates
🛠 Adjust project settings
📚 Read about Snyk's upgrade logic

Learn how to fix vulnerabilities with free interactive lessons:
🦉 Regular Expression Denial of Service (ReDoS)

👷 Deploy Preview for remarkable-meerkat-3bf7d4 processing.

Name
Link

🔨 Latest commit
3ab803c661969c54f30a145bfeff8a4d9a02b99f

🔍 Latest deploy log
https://app.netlify.com/sites/remarkable-meerkat-3bf7d4/deploys/672f00302d0d4e00087dd124