Skip to content

Releases: regro/regolith

0.9.1

21 Jul 07:33
Compare
Choose a tag to compare

Fixed:

  • incorrectly named test for fs_to_mongo
  • Rearrange Regolith package to new Billingegroup package standards
  • all py files linted with black
  • change name and then fix tests for function that formats awards and honors

0.9.0

01 May 14:11
Compare
Choose a tag to compare

Added:

  • new helper_connect app added that will connect the databases then return back a prompt to input helper commands for
    faster response
  • funds_available to grants schema
  • In annual activity, grants are automatically considered as projects unless specified otherwise

Changed:

  • Grants lister helper now lists funding available when it is available
  • exemplars moved to a json file
  • lists of commands now imported from commands.py

Fixed:

  • Open source title not printed when there are no OSS projects in activity builder
  • gooey install moved to new pip.txt file in requirements since it doesn't install the correct version from conda-forge

0.8.2

13 Nov 22:00
Compare
Choose a tag to compare
Updated CHANGELOG for 0.8.2

0.8.1

13 Nov 21:54
Compare
Choose a tag to compare
Updated CHANGELOG for 0.8.1

0.8.0

13 Nov 21:52
Compare
Choose a tag to compare

Added:

  • the option to specify a different database for the expense and presentation
    items when running a_presentation.
  • scripts (profile_regolith and profile_helper_gui) that run regolith and helper_gui with the python cProfiler. Used for debugging and code development.
  • universally unique IDs added to all tasks, and now listed by todo lister
  • milestone lister now prints the uuids of the milestones
  • additional tests for c+p, annual-activity and grant-report builders
  • repo_info_complete in tools to check the existence of remote repositories before operating on them
  • token_info_complete in tools to check for the existence of the user's private API authentication token
  • create_repo in tools to create a repository in a given remote repository
  • functionality to presentation helper that creates a repo by calling on create_repo function in tools when no_talk_repo box is not checked
  • no_repo box/option added to presentation helper gui
  • no_in_cv option for employment entries that they don't appear in cv's and resumes
  • get_appointments() function
  • effort reporting report shows each person's loadings by grant by month over a fixed period
  • new functionality that allows general kwargs to be passed to builders from the command line
  • Builder for building formal letters with To/From/Subject etc. fields
  • presentation_url field to presentation in presentations
  • functionality to presentation adder to allow the presentation url to be added
  • publist can be built specifying a facility where the measurements were made
  • supplementary_info_urls field to citations and projecta
  • u_milesone now x's out all the unfinished todo items when it "finishes" a milestone
  • u_milestone uses "--milestone_uuid" option to select which milestone to update
  • all milestones now have uuids
  • Add the command "regolith --version" to print the version number.

Changed:

  • default milestone added by a_projectum is now more useful. It duplicates the kickoff meeting

  • added empty notes field and currency type USD to template expenses in
    a_expenses and a_presentation

  • None

  • Better debugging in get_dates() when date information is missing by printing the id of the offending document

  • Order of tests in helper_tests so all the updaters are at the end

  • grants lister prints in columns and is grouped by the unit that administers the grant

  • amounts in attestations are limited to 2-sig-figs

  • Order of CLI args in u_milestone for greater ease of use

  • prum finisher now adds end-dates to all milestones. If they have an end-date
    it leaves the date as is, otherwise it adds the prum end-date

  • Abstract lister now outputs the meeting name and basic information about the meeting of the presentation

  • Abstract lister now lists in date order

  • grant report builder updated to run without needing to specify report
    beginning and ending dates. Default dates are taken as being the start
    date of the grant and today's date if not specified at runtime.

  • prum lister now lists paused projecta as well as current as default behavior.
    selecting --current gives just active prums

  • prum lister now appends the prum status even in non-verbose mode

  • Template prum now has better advice for how to fill it when made by a_projectum

  • reading list builder now builds reading lists from the citations database by
    using the tags field for each paper

  • tests of tex and html files now compare outputs line by line
    and ignore variables paths that have proven to be unstable

  • Standardized CLI option names by replacing the underscore with a hyphen in the
    following: --end_date, --begin_-date, --submitted_date, --no_cal, --due_date,
    --group_members, --other_agencies, --months_academic, --months_summer,
    --assigned_to, --assigned_by, --loc_inst, --kv_filter, --return_fields,
    --helper_help, --school_aka, --school_name, --school-id, --dept_aka, --dept_name,
    --dept_id, --estimated_duration.

  • Reformatted printing of todos to make the order clearer

  • "--projectum_id" has been changed from a required arg to an optional arg

  • u_milestone uses "--projectum_id" option to add a new milestone to a prum

  • Updater helpers now only open the specified database, not all the databases in rc.databases. If they don't find the collection in that database they will report a failure to update.

Deprecated:

  • None

Removed:

  • None
  • todo lister no longer lists milestones from projecta. this will be handled differently moving forward
  • the u_milestone functionality that lists a prum's milestones has been removed
  • "--index", "--verbose", and "--current" optional args have been removed

Fixed:

  • load all collections bug introduced accidentally when working on mongo backend
  • None
  • monthly loadings now handles edge cases better
  • broken error message for missing institution in dereference_institution function
  • dereference_institutions will always return a department now
  • fixed typo in postdoc advisee getter
  • date handling for end-dates of current students/postdocs
  • updated to raw strings places where they should be to propagate escaped special
    characters, e.g., latex_safe
  • fixed formatting UserWarnings in makeappointments helper
  • remove bug that wrong list item taken from calendar.daterange() was being
    used in l_currentappointments helper
  • manuscript review new correctly prints freewrite field
  • prum lister now correctly finds due_date
  • bug in adder that builds reading lists from tags in citations making duplicate entries
  • Changed how the reading-list builder fetches the references from Crossref so that it only fetches each needed reference once.
  • xonsh input_hooks now explicitly has execer=None instead of blank parens to satisfy xonsh deprecation warning
  • publist builder now produces bib files before filtering so we don't accidentally build a publist with an incomplete
    bib file

Security:

  • None

0.7.2

21 Feb 17:53
Compare
Choose a tag to compare
Updated CHANGELOG for 0.7.2

0.7.1

21 Feb 17:49
Compare
Choose a tag to compare

Added:

  • Ability to utilize multiple backend clients (namely filesystem and mongo) for a single database
  • an adder helper to add new expenses to the expenses collection
  • adder helper for new reading list based on tags in the group citation database
  • an adder helper to add presentations to the presentations collection
  • an adder helper for adding a new projectum to the projecta collection.
    projecta are small bite-sized project quanta that typically will result in
    one manuscript.
  • adder helper to add a new proposal to the proposals collection.
  • adder helper that adds a new to-do task to the todos in people collection.
  • Helper for listing grants
    • New function in dates.py to determine is something is current
  • a builder for annual appraisals modelled on columbia SEAS appraisal
  • a tool in tools in tools.py that will merge two collections, similar to chainDB but they collections are not public/private versions of the same collection but collections of different names. Intitiall intended for proposals and grants so that when a proposal gets funded its info doesn't have to be copied over to the grant but can be dereferenced
  • a convenience tool to tools.py that gets all the date items (begin_day, end_year, month, etc.) from an entry and returns them as a dict
  • a bunch of bespoke filters to tools.py that return different things from different collections
  • a function that takes regolith dates and returns the beginning and ending date from a document
  • tests for functions in regolith.dates
  • due date as command line arg for projecta adder helper
  • A new builder for the experiment plan of beamtime based on the beamplan and beamtime database
  • Add pandas in the required packages
  • bio_long field to people schema for longer bio's that are
    needed for cv's but not necessarily websites
  • add --checklist functionality to the projecta adder that will create a checklist
    projectum for manuscript submissions.
  • a new function collect_appts in tools that collects all appointments in a people database satisfying certain
    conditions or lying in a given period of time
  • filter allowing user to list just current milestones in u_milestone
  • publist builder now builds versions where the author is not bolded and a
    version where the acknowledgement is printed as well for DOE reporting purposes
  • todo items in todo lists can now have tags added and be sorted by tags
  • helper that marks a task as finished in todos of people collection.
  • The --filter flag can now recursively search through a top level target attribute, which can be an object or a list, in order to more effectively search a record
  • a helper for finishing projecta in the projecta collection.
  • Flags to l_projecta to get projecta that finished within a date range
  • New function in tools, fragment_retrieval, that returns a list of documents from a collection where the specified fragment is found in any of the given fields (similar to fuzzy_retrieval)
  • a helper for listing filtered data from collections in the database.
  • The get_dates function in tools.py can now take a prefix string when searching for dates
  • a function grant_burn in tools.py that retrieves the burn of a grant given a collection of appointments
    for a given interval of time
  • New flag to l_projecta called --grp_by_lead that groups all projectums by their leads
  • to tools a function to find all group members in a people db
  • A finish argument to finish milestone and record the end datetime.
  • Multiple indices can be specified for the u_milestone helper.
  • A new helper command for helpers which are like lightweight builders but do
    more than just build
  • new function is_fully_appointed in tools.py (with tests in test_tools.py) that takes in a person dict and retrieves the person's appointments to check is the person is fully appointed for a given interval of time
  • helper that lists all contacts corresponding to a name, institution, date, or note fragment
  • milestones now handle a notes field in schema and all relevant helpers
  • helper that lists all upcoming milestones from projecta
  • function to dates.py that fetches due_date from a dict and returns it as a
    datetime.date object
  • a helper that lists progress by person from their projecta
  • Helper that lists all the to-do tasks. Tasks are gathered from todos of people.yml and milestones.
  • linkedin_url to schema of people
  • a helper makeappointments that helps manage appointments on grants and study the burn of grants over time
  • A validator called v_meetings that makes sure contents of previous group meetings are not empty
  • A lister for the names of members of the group, either current or ever.
  • The "regolith mongo-to-fs" command can now be used to port local and remote mongo backends to the filesystem
  • Validation on all updates and insertion to mongo databases due to potential for lack of PR review
  • get_dates function that will find years, months and days and/or dates in a document and
    return them as datetime date objects
  • Add test for internalhtmlbuilder in test_builder.py
  • functionality to l_projecta to find prums that either have no lead (lead is
    tbd) or are assigned to inactive people
  • progress field in milestones in projecta collection
  • schema for the projecta collection
  • release definition to the delivery milestone in the database
  • publist builder will now build for a single group member if the ID is
    specified at the CLI
  • tests for proposal and manual review builders
  • All listers now support searching with the --filter and --keys flags
  • reading list builder
  • function to tools that gets a reference from Crossref
  • tutorial to allowed types in presentation schema
  • a helper to build reading lists from a citations collection using tags
  • an contact helper for adding/updating contacts to the contacts collection.
  • a helper for adding/updating institutions to the institutions collection.
  • An updater helper for updating log_urls of projectum
    in the projecta collection.
  • a milestones helper for adding/updating milestones to the projecta collection.
  • helper that updates a task in todos of people collection.
  • properties to the schemas for the expenses, meeting, and projecta collections
    Regolith mongo client can transfer database from filesystem and load data from mongo database. Regolith
    builders can run on mongo backend.
  • Add the command "regolith --version" to print the version number.
  • presentation lister now handles webinars
  • a_presentation helper now handles webinars
  • get_person_contact() a new tool in tools.py will return a person by looking
    in the people collection and the contacts collection
  • 'webinar' as a boolean available. True if the presentation was a webinar.

Changed:

  • cv now separates service and honors

  • small tweaks to cv format to make it more appropriate for longer cvs as will
    as shorter ones.

  • added presentations and former students to cv

  • Beamplanbuilder includes the scan plan code in the report.

  • Scanplan schemas changes from string to list of strings.

  • Sample information is demonstrated in a list instead of a comma separated line.

  • get_formatted_crossref_reference() in tools.py now returns None if the doi passed can't
    be found

  • internalhtmlbuilder now resolves and then prints the Journal Club DOI's

  • is_current, is_before, is_after, has_started, has_finished, and is_between functions now use datetime objects

  • u_contact now only requires institution when adding, but not when updating

  • u_contact can take an id as an optional argument

  • get_dates now tolerates 'tbd' in a date field

  • get_dates now returns None for all dates if it can't find any dates

  • group_by_lead flag in l_projecta can now be used with other flags

  • makeappointments helper will not look for an end-date when employment
    attribute 'permanent' is set to true

  • Key value pair filter is now integrated with the other flags for listers

  • l_members now prints emails of members in verbose mode

  • The -v flag in l_projecta now produces a verbose output

  • edited print message in is_fully_appointed function in tools.py

    • edited edge case logic in is_fully_appointed function in tools.py
    • removed superfluous help message from returned list in grant_burn function in tools.py
  • merge_collections_all returns all of two collections, where items dererenced
    are merged

  • merge_collections_intersect returns just merged items that are dereferenced

  • merge_collections_superior returns all except the non-dereferenced items in
    the inferior collection. e.g., if we are merging grants and proposals and we
    want all grants, augmented by information in the proposals that led to those
    grants, we use this.

  • Cleaned code in l_projecta for more readable filtering

  • a_projectum so that it doesn't automatically prepend a year to the id of new
    projecta.

  • updated schema so it doesn't model id pattern with prepended date

  • publist builder now makes a version of the publication list without the main
    author appearing in bold (_nobold), a version that is pandoc friendly (_pandoc)
    so it can be converted to MS word and other formats, and a version that also
    prints the acknowledgement statement along with the reference (in a slightly
    clunky fashion, _ackno) as well as the previously produced publication list.

  • proposal review builder now accepts lists of institutions for multiple authors

  • yaml-to-json now serializes datetime datetime and date objects

  • reading list items are now sorted by date in reverse chronological order

  • milestone lister updated so that it filters by person and based on milestone
    status

Removed:

  • Old date functions from tools.py
  • from preslist builder the method to find all group members in a people db
  • old is_fully_loaded function in tools.py, which is replaced by the new is_fully_appointed function.
  • removed mdy function from reimbursement builder, now using strftime() method.
  • removed mdy function from coab...
Read more

0.5.1

01 Mar 18:02
Compare
Choose a tag to compare

Added:

  • code to give more feedback to the user when the builder fails due to a database error
  • regolith classlist can now read csv files in Columbia University format
  • classlist register now checks whether a given file actually exists
  • merge_collections to tools.py. merges two collections
  • tests for manuscript review builder
  • function for finding gaps and overlaps in lists of date-ranges
  • utf8 support in all current latex builder templates
  • function to dates that returns months as strings with leading zero where required
  • function to dates that returns days as strings with leading zero where required
  • ability to build publists with specified date ranges and filtered by grant
  • tbd is now a valid month, returning 1 as an integer
  • begin and end day now allowed in employment and education

Changed:

  • unsegregated expense can now tolerate "tbd". This allows users to put a
    placeholder entry when the exact amount is not known, and then find it easily
    later. Code flags all tbd entries at build time, but doesn't crash.
  • removed remote.rc logic from database.xsh
  • current and pending builder extended to build c+p from merged proposal and grants collections
  • added filter for cppflag so you can have current grants that don't appear in the current and pending form by setting cppflag to false in the db
  • add needed_dbs statement for quicker building
  • moved has_started, has_finished and is_current to tools.py
  • Load only dbs needed for builder, if builder declares which dbs it needs
  • reimbursement builder requires a person to be specified on the command line
    to run due to the extreme slowness of openpyxl
  • User supplied schemas now handles new keys in regolith validate.

Fixed:

  • valueschema -> valuesrules in schema as valueschema deprecated in cerberus
  • cpbuilder does name comparison on fuzzy-searched name for standardization
  • cpbuilder includes initials when it is a multi-pi grant
  • filter_grants in tools.py bug fixed that incorrectly reassigns team members
  • updated docstring on filter_grants to make it clearer
  • fix indenting of the editor eyes only block
  • import from collections.abc not collections
  • months can now be expressed as ints or strings as per the schema
  • fix bug introduced in Jinja2 v2.11 that doesn't recognize conditional text
    in the import
  • bug so that needed_dbs results in only selected collections to be opened
  • publist will now build even if person email and employment are missing

0.5.0

29 Jul 15:32
Compare
Choose a tag to compare

Added:

  • builders can now take --from and --to command-line args to specify date range

  • added banner to groups schema, which is an image for website banner
    None

  • Google profile URL to people schema

  • Research Focus Areas to people schema

  • status to employment which will be selected from a list for sorting on the
    website

  • filters in regolith.tools that return true if a given date is since or before or
    between other dates

  • Add phone and address to CV and Resume if available

  • builder for post-doc ad
  • a builder for proposal reviews. Currently tuned for doe-bes and nsf-dmr
  • builder for writing referee reports on manuscripts
  • Make bib for entire group
  • contacts to schema.py, a lighter type of person

Changed:

  • builder now takes grant from grant field in expense and not by recursing
    into project
  • if payee is direct_billed, builder will not build a reimbursement form
  • all_documents now defaults to a deepcopy to prevent unintended mutation
  • institutions schema to add street and make conditionals work better
  • All months can now be integers or strings in the schemas
  • Make a .bat file in scripts, which should help on windows
  • now builds just accepted talks by default, not declined or pending
  • proposals schema in schema.py to include fields for building current and
    pending report forms
  • Use xonsh.lib.os.rmtree in conftest.py rather that building our own.
    The xonsh version is expected to do a better job on windows.

Removed:

None

  • MTN: removed unused block from fuzzy_logic
  • MTN: nicer handling of non-list objects in fuzzy_logic

Fixed:

  • BUG: total amount now reproduces correctly in grants section
  • BUG: account numbers not showing up in built reimbursement form
  • Made the example current grant go to 2025 rather than 2018
  • FIX: tests to run on windows OS by removing
    removed directory paths
  • Makes sure some URLs in CV builder are also latex safe.
  • correct spacing after date when it is a single day event
  • Don't want to use latex_safe when we need the latex formatting
  • Cast to string on way into latex_safe
  • BUG: ints now handled the same as strings (appended) in fuzzy_logic
  • BUG: now passes gtx as a list to fuzzy_logic not as a generator

0.4.0

04 Sep 15:38
Compare
Choose a tag to compare

Added:

  • Optional static_source key in the rc for the html build.

Changed:

  • institution dereference is done by regolith.tools.dereference_institution function
  • HTML pages dereference institutions
  • person.html allows for authors or editors and hides publications in details
  • root_index.html allows for banner to be speced in groups collection
  • regolith.builders.CVBuilder now dereferences institutions/organizations
    for employers and education
  • regolith.builders.CVBuilder deepcopies each person so we don't modify
    the records during dereference
  • regolith.tools.latex_safe wraps URLs in \url{}
  • regolith.builders.basebuilder.LatexBuilderBase runs pdflatex last
    if running on windows, rather than latex then dvipdf
  • Order yaml collections by key before dump for deterministic changes in collection order (make git more sane)

Fixed:

  • Properly handle authors and editors set in regolith.tools.filter_publications
  • regolith.tools.fuzzy_retrieval properly handles null values
  • education and employment subschemas for people are now just lists
  • regolith.builders.BuilderBase uses latex_safe from regolith.tools
  • wrap dbdir in @() so xonsh does the right thing