russellmcdonell / pyDMNrules

An implementation of DMN (Decision Model Notation) in Python
Other
38 stars 9 forks source link

Instabily in old and new version #4

Closed mattskinosix closed 2 years ago

mattskinosix commented 2 years ago

Hi, Thanks for all your's works We have a problem. We don't have changed anything in excel or code but suddenly pyDMNRule stop working: In particular, it doesn't keep decision or doesn't start. Can you help me??

russellmcdonell commented 2 years ago

Sure. The latest version did tighten up compliance (and broke some of my examples). In particular, it now support Decision Tables with no input columns. The most likely cause is double vertical bars after the Hit Policy/RulesID column. There should be only one set of horizontal bars (under the heading, or under the validation rules if you have validation rules). And one set of vertical bars between the Input columns and the Output columns. If you have no Inputs, then that's between the RuleID and the Output(s). You can have a second set of vertical bars after the Outputs, if you have annotations after the Outputs.

So, what may have happened is you may have had vertical bars after the RulesID, which the previous release didn't look for (that's a bug). If so, then now all your inputs look like outputs and all your outputs look like annotations.

If that explanation doesn't help, then feel free to send me your Excel workbook and I'll track down what's going on.

russell.mcdonell@c-cost.com

russellmcdonell commented 2 years ago

Another option ... I have a Azure website, based upon pyDMNrules, where you can upload your workbook and, it will show you the decision tables in you workbook (after they have been parsed - so you can see what they look like to pyDMNrules). Now it's a Microsoft Azure free website that gets 'archived' frequently, because no body is using it. So don't be surprised if it takes two minutes to come back to life from the dead.

https://russellmcdonell-decisioncentral.azurewebsites.net/

russellmcdonell commented 2 years ago

Matteo, I replied in gitHub, because this got lot in my Inbox - sorry about that. Can you let me know if that response was of any assistance? If not, please send me a copy of any Excel workbook that is giving you a hard time.

Thanks for you interest in pyDMNrules, Russell McDonell

On Thu, 10 Mar 2022 at 04:37, Matteo Greco @.***> wrote:

Hi, Thanks for all your's works We have a problem. We don't have changed anything in excel or code but suddenly pyDMNRule stop working: In particular, it doesn't keep decision or doesn't start. Can you help me??

— Reply to this email directly, view it on GitHub https://github.com/russellmcdonell/pyDMNrules/issues/4, or unsubscribe https://github.com/notifications/unsubscribe-auth/AECWZEXQDH6MTWIFFDWPJRTU7DOVFANCNFSM5QKHMZWA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you are subscribed to this thread.Message ID: @.***>

mattskinosix commented 2 years ago

Hi Russell Your response presupposes an upgrade of the library but we have a fixed version in the requirements.txt file, so we want to ask if you have a process for releasing a new version of the software and how it goes on. I'm asking this to you because we found some regressions in previous versions that were working before. Thank you for all your interests, is very important for me

russellmcdonell commented 2 years ago

Matteo - if you've got a fixed version of requirements.txt then you should be pulling in the older, previous version, which was working. If you are pulling in a newer version, then requirements.txt isn't that 'fixed', and you might as well pull in the latest version. What I suspect you are seeking is some sort of 'branch' with just the specific bug fixed, and not all the other bugs fixed, which is then published as an 'update' to that older version. I'm not particularly skilled in that sort of thing. It's not something I have contemplated or looked into. Do you have the suite of test that you used to lock in the version asserted in 'requirements.txt'. Can you run them against the latest version and get 'requirements.txt' updated?

airscripts commented 2 years ago

I think the issue that @mattskinosix has encountered is the same as the one I've had. I didn't have locked the version of pySFeel and that broke up my dependency chain with an older version that I had of pyDMNrules.

russellmcdonell commented 2 years ago

Good pickup - I hadn't thought of that. To be honest, I wouldn't trust anything before 1.3.1. Before then I had a few 'tests' and I was using it myself, so I was the crash test dummy. However, at 1.3.1 I started using pytest to do regression testing to ensure that nothing I did broke anything that I'd already fixed. And through the process of building test cases I found and fixed lots of things. Some of those were my misunderstandings/misreading the standard. I am concerned about people relying upon something that works with the old version, simply because they have the same misunderstaning that I had when I first created pyDMNrules.

mattskinosix commented 1 year ago

Hi Russell, Thank you got your interest. Yes with your information it work. But I don't understand why, we never changed the version of the library but we still found ourselves with this problem. so I would like to understand the process of releasing new versions so as not to run into the same problem. Thank you so much for your help and interest, it's really precious to me.

Il sab 19 mar 2022, 05:41 Russell McDonell @.***> ha scritto:

Matteo, I replied in gitHub, because this got lot in my Inbox - sorry about that. Can you let me know if that response was of any assistance? If not, please send me a copy of any Excel workbook that is giving you a hard time.

Thanks for you interest in pyDMNrules, Russell McDonell

On Thu, 10 Mar 2022 at 04:37, Matteo Greco @.***> wrote:

Hi, Thanks for all your's works We have a problem. We don't have changed anything in excel or code but suddenly pyDMNRule stop working: In particular, it doesn't keep decision or doesn't start. Can you help me??

— Reply to this email directly, view it on GitHub https://github.com/russellmcdonell/pyDMNrules/issues/4, or unsubscribe < https://github.com/notifications/unsubscribe-auth/AECWZEXQDH6MTWIFFDWPJRTU7DOVFANCNFSM5QKHMZWA

. Triage notifications on the go with GitHub Mobile for iOS < https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675

or Android < https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub .

You are receiving this because you are subscribed to this thread.Message ID: @.***>

— Reply to this email directly, view it on GitHub https://github.com/russellmcdonell/pyDMNrules/issues/4#issuecomment-1072939222, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHGMHS6DBEO6FEDSDNPXTP3VAVLF5ANCNFSM5QKHMZWA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you authored the thread.Message ID: @.***>

russellmcdonell commented 1 year ago

Matteo, if you run "pip list" on every laptop/server where python is installed, you may find different versions of different modules installed. "pip install pyDMNrules" will always install the latest version, but it won't upgrade the current version. So if you have an old version, you will still be running that older version. "pip install --upgrade pyDMNrules" upgrade the installed version to the latest version. So you will always be running the latest version. You can do "pip install pyDMNrules==1.4.4" (note the double equals signs) to install just version 1.4.4, but I know all the bugs I've fixed and I'd would be really worried if anyone was running some of the older versions in production. I do write requirements, so "pip install --upgrade pyDMNrules==1.4.2" should upgrade pyDMNrules and at the same time upgrade pySFeel (the main dependency) to the required version specified at the time that version of pyDMNrules was released. But I've never tried that, so I have no evidence that this actually works.