IP Library › Granted Patent US 10,289,406
Granted Patent B2
US 10,289,406 · App. 14/783,477 · Granted May 14, 2019

Dependencies between feature flags

Inventors: Inbar Shani (Yehud, IL); Sharon Lin (Yehud, IL); Yael Oshri (Yehud, IL)
Assignee: ENTIT SOFTWARE LLC
G06F8/70G06F8/60G06F8/71G06F9/38G06F21/71
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,289,406
App. No.
14/783,477
Filed
Oct 9, 2015
Granted
May 14, 2019
Kind
B2
Examiner
CHEN, QING
Art Unit
2191
USPC
717/120
Abstract

An example method for handling dependencies between feature flags can include defining, by a processing resource executing instructions, dependencies between a plurality of feature flags in a process executable by the processing resource. The method can include enforcing, by the processing resource executing instructions, the dependencies during activation of a first feature by a determination of validity of utilization of a feature flag as a switch for a second feature.

Claims (32)

1. A method of handling dependencies between feature flags, comprising:

defining, by a processing resource executing instructions, dependencies between a plurality of feature flags in a process executable by the processing resource; and

enforcing, by the processing resource executing instructions, the dependencies during activation of a first feature by a determination of validity of utilization of a feature flag as a switch for a second feature.

2. The method of claim 1 , wherein enforcing comprises determining dependencies between a first feature flag and a second feature flag to reduce a probability that the activation of the first feature results in a reduction of process functionality.

3. The method of claim 1 , comprising defining and enforcing the dependencies in association with either of continuous delivery and continuous integration of code for the process.

4. The method of claim 1 , wherein defining comprises defining a cyclic dependency between the plurality of feature flags and activating a notification that results in either of removing at least one dependency that causes the cyclic dependency and applying a consolidated feature flag to the plurality of feature flags of the cyclic dependency.

5. The method of claim 1 , comprising presenting the dependencies on a graphic user interface and enforcing the dependencies through the graphic user interface.

6. A non-transitory machine readable medium storing a set of instructions that, when executed, cause a processing resource to:

define, in a feature flags graph, dependencies between a plurality of feature flags in a process executable by the processing resource, wherein the feature flags graph comprises the plurality of feature flags as vertices and the dependencies between the plurality of feature flags as a number of edges;

determine operability of the process via the feature flags graph when the process utilizes a first feature flag as a switch; and

determine, based upon the dependencies in the feature flags graph, whether the first feature flag is utilizable as the switch;

determine, when the first feature flag is to be activated or inactivated, a validity of a change in a feature flag status based upon a determination of dependent and dependent-on vertices by traversing from a vertex corresponding to the first feature flag.

7. The non-transitory machine readable medium of claim 6 , wherein the set of instructions, when executed, cause the processing resource to determine, when the first feature flag is to be activated, the validity of the change in the feature flag status.

8. The non-transitory machine readable medium of claim 7 , wherein the set of instructions, when executed, cause the processing resource to determine whether the dependent and dependent-on vertices have feature flags that are activated.

9. The non-transitory machine readable medium of claim 6 , wherein the set of instructions, when executed, cause the processing resource to determine, when the first feature flag is to be inactivated, the validity of the change in the feature flag status.

10. The non-transitory machine readable medium of claim 9 , wherein the set of instructions, when executed, cause the processing resource to determine whether the dependent and dependent-on vertices have feature flags that are inactivated.

11. The non-transitory machine readable medium of claim 6 , wherein the set of instructions, when executed, cause the processing resource to determine whether an edge is traversable based upon satisfaction of at least one input condition, wherein the at least one input condition is selected from a set that includes environment conditions and user conditions.

12. A system to handle dependencies between feature flags, the system comprising a processing resource in communication with a memory resource, wherein the memory resource includes a set of instructions and wherein the processing resource is designed to carry out the set of instructions to:

define by at least one of a code scanner functionality and a configuration scanner functionality dependencies between a plurality of feature flags in a process executable by the processing resource;

structure the dependencies by a flag definition functionality such that the plurality of feature flags are vertices, the dependencies between the plurality of feature flags are a number of edges, and the structuring allows, when a first feature flag of the plurality of feature flags is to be activated or inactivated, a determination of a validity of a change in a feature flag status based upon a determination of dependent and dependent-on vertices by traversing from a vertex corresponding to the first feature flag; and

store the structured dependencies as accessible by either of a query functionality and a graphic user interface.

13. The system of claim 12 , wherein the processing resource is designed to carry out the set of instructions to structure the dependencies as a directed acyclic graph.

14. The system of claim 12 , wherein the processing resource is designed to carry out the set of instructions to execute at least one of:

mark a first feature flag as either of dependent from and dependent-on a number of other feature flags;

determine either of existence and activation status of the dependent from and the dependent-on feature flags;

determine whether cyclic dependencies exist; and

remove at least one of the dependencies.

15. The system of claim 12 , wherein the processing resource determines whether the dependent and dependent-on vertices have feature flags that are activated.

16. The system of claim 12 , wherein the processing resource determines whether the dependent and dependent-on vertices have feature flags that are inactivated.

17. The system of claim 12 , wherein the processing resource enforces the dependencies through the graphic user interface.

18. The system of claim 12 , wherein the processing resource determines whether an edge of the number of edges is traversable based upon satisfaction of at least one input condition, wherein the at least one input condition is selected from a set that includes environment conditions and user conditions.

19. The system of claim 12 , wherein the dependencies comprise cyclic dependencies.

Assignments (8)
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0577 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC)
Reel/Frame 063560/0001 →
CHANGE OF NAME Recorded Aug 8, 2019
From: ENTIT SOFTWARE LLC
To: MICRO FOCUS LLC
Reel/Frame 050004/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 27, 2019
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 048714/0001 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ENTIT SOFTWARE LLC; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ENTIT SOFTWARE LLC; ARCSIGHT, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0577 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2017
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
To: ENTIT SOFTWARE LLC
Reel/Frame 042746/0130 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 9, 2015
From: SHANI, INBAR; LIN, SHARON; OSHRI, YAEL
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 036763/0490 →
Continuity (1)
Related Publication 20160063282A1 · Mar 3, 2016