T5 M2: Getting the File API Operational - rsanchez-wsu/jfiles GitHub Wiki
Milestone 2 Objectives:
Issues #34 - #39
- Overview
- T5-M2-I1: Finish JFile...........................................................................................................................................(#34)
- T5-M2-I2: Get JFileManager Operational....................................................................................................(#35)
- T5-M2-I3: Integrate Logging Into the File API..........................................................................................(#36)
- T5-M2-I4: Create Integration Comments....................................................................................................(#37)
- T5-M2-I5: Create a Wiki Page Explaining How the File API Works...................................................(#38)
- T5-M2-I6: Get Ant Working for at Least One Team Member..............................................................(#39)
- Plan of Action
Team 5 shall finish creating the methods for JFile and JFileManager, shall continue coordinating with other teams, continue looking into File and Runnable, and continue documentation.
Team 5 shall finish creating the JFile class's core methods and begin work on methods for other teams. In finishing the class, the team shall also work on refining the definition and purpose of the class as well as implementing any methods that other teams have readied for use in the File API. Since the JFile class is way ahead from the last milestone, this class needs to focus on how it is implemented, and consider
The JFile class is at the core of the File API. Everything hinges on how this class works, so how this class works determines how the entire File API will work.
Team 5 shall finish work on the JFileManager class and get it operational. This class will be continually built upon, so it won't necessarily be "finished", but it needs to be operational. This means actually making the methods and either making the methods according to the documentation for what they are supposed to do or changing the documentation to suit evolving concepts about how the class should work.
Team 5 shall integrate the logging software made by team 2 into the JFile API. The team shall have at least one member who focuses on learning how to use it who the team can turn to. This member will work with the team members who are working on specific classes to get the logging software implemented in those classes. Since JFile is mostly finished, that class should be done first.
This will be necessary for both troubleshooting, especially once the API is implemented in the JFiles program, as well as documentation. It is also required to meet the standards of the rest of the teams. Additionally, having one member who knows the logging software very well will undoubtedly prevent many pitfalls in the future.
Team 5 shall communicate with other teams and create comments in the JFile and JFilemanager classes detailing which teams will have methods that need to be integrated into which methods in these classes. An example of this would be networking methods needing to be integrated into copy and pasting methods. This could also be security methods needing to be implemented during any JFileManager operation. These should be regular comments, not part of the java documentation, as these will be for internal use and are thus temporary.
This needs to be done so that Team 5 can keep in mind what teams need to be coordinated with for what methods. This is especially important for methods that have not been made yet so that team 5 does not forget to go back and add in those methods when they are finished. The comments will be removed once the appropriate methods/implementations are added.
This mostly needs to be done so that Team 5 can know what methods in the File API are important to what teams, so that Team 5 can coordinate better later on. This can also be created via a list in the wiki page was well, so that the information can be listed in a quick, easy-to-read manor by both team 5 and other teams.
Team 5 shall create a Wiki page that details how the File API works. At this point in time, this page should only cover the basic concepts. This page must have at least have an introduction to the File API; any information on more detailed functionality can be added in future Milestones, as that functionality comes closer to what it is going to be when it is finished. For this milestone, the wiki page will focus on how the API works in a more broad, general way and emphasize why the team is building the File API the way it is. That is to say, why it is necessary or how it will be useful.
This will be most beneficial to teams that may need to know how the File API functions in making their respective APIs/projects, such as team 4 in their searching algorithms. This eliminates some of the need for face-to-face contact and/or conversations via Slack, which is good. This is good because there may not be any team members online at one particular time, so the other teams can still have access to the information they need. This eliminates availability as a weakness, and will free up team 5 members to continue their work; the team will be spending time now, to gain much more time in the long run.
The most important aspect to this issue is to have the page in existence, have it in the table of contents, and have an introduction on the page. The team has documentation for many of its methods down, but until it finalizes them and ensures that they are going to stay the way they are, it would be irresponsible to include this information.
If the team finishes JFile and JFileManager, it can add pages for those classes respectively.
The hierarchy for the team 5's wikis should follow this structure:
- Team 5
- Milestone Objectives
- Milestone 1
- Milestone 2
- File API
- Introduction
- JFile
- JFileManager
- JFolder
Whether the team adds an introduction page or makes a File API page that is the introduction, is up to the team member who maintains the wiki.
Team 5 must have to have at least one individual capable of checking the File API with Ant. The team doesn't have to check when pushing to team5_dev, but it does have to be able to check before pushing to team5 (main) or master. This individual may also be able to help other team members get Ant working.
Ideally, the team should be able to have all members check their code before even pushing to dev, but as long as the team has one member who can check before pushing to main or master, the team can at least function; there will just be a lot of emphasis on the one individual who can check via Ant.
» John Wintersohle on Slack: #team5 @ 2:51 pm on Oct. 2
Milestone 2 has been made and all of its issues have been created. Issue assignment can now begin. Since I took the previous JFileManager issue, I will continue on this Issue. I will also try take on continuing coordination with other teams.
This leaves three issues. I suggest that Sergio use his research from the previous milestone to help me find methods in File, Runnable. and other Java API classes and interfaces to help with JFileManager. I will also help coordinate with Brand on how I think JFile should work as it relates to JFileManager and other classes, if he wants. If this is so, he can assign me to the appropriate issue when he assigns himself. Also, one of the reasons why I added Sergio to my primary issue, Issue 2, is so that he isn't stuck doing research into Team 2's logging software. I don't want his participation to suffer. Any help he can provide on Issue 2 will be greatly appreciated. If it is too much, though, his primary issue is Issue 3. I will be responsible for Issue 2.
Here's a list of the issues associated with Milestone 2 and my suggestion for who does what:
-
Issue 1: Finish JFile
-
Suggested Members:
-
@brand_allred: Lead
- @jwintersohle: Support
-
@brand_allred: Lead
-
Suggested Members:
-
Issue 2: Get JFileManager Operational
-
Suggested Members:
-
@jwintersohle: Lead
- @srodriguez4: Support
-
@jwintersohle: Lead
-
Suggested Members:
-
Issue 3: Integrate Logging Into the JFile API
-
Suggested Members:
- @srodriguez4: Lead
-
Suggested Members:
-
Issue 4: Create Integration Comments
-
Suggested Members:
- @jwintersohle: Comments in JFileManager
- @brand_allred: Comments in JFile
-
Suggested Members:
-
Issue 5: Create a Wiki Page Explaining How the File API Works
-
Suggested Members:
-
@link78: Lead
- @brand_allred: Support
- @jwintersohle: Support
-
@link78: Lead
-
Suggested Members:
- Issue 6: Get Ant Working for at Least One Team Member
-
Suggested Members:
- @link78 Lead
-
Suggested Members:
These assignments are not set yet, but we need to get started ASAP. I am assigning myself to issues 2 and 4 now. We also need someone, anyone, in our team to get Ant working so that we can push from dev (team5_dev) to main (team5) so that we can push to master when time comes. This can also be made into an issue. If @link78 can get it working, it would be a great asset. We don't have to ensure a clean build before pushing to dev, but we must before pushing to our team main or master.